1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-04-11 20:37:40 +00:00

Implemented identification & elimination of complex constant if()s

This commit is contained in:
jespergravgaard 2018-04-21 21:38:30 +02:00
parent 5e3cbe1f3a
commit 8a7f5bde39
110 changed files with 27715 additions and 27392 deletions
src
main/java/dk/camelot64/kickc
test/java/dk/camelot64/kickc/test

@ -181,11 +181,12 @@ public class Compiler {
optimizations.add(new Pass2ConditionalJumpSimplification(program));
optimizations.add(new Pass2ConstantIdentification(program));
optimizations.add(new Pass2ConstantAdditionElimination(program));
optimizations.add(new Pass2ConstantIfs(program));
optimizations.add(new Pass2FixInlineConstructors(program));
optimizations.add(new Pass2TypeInference(program));
optimizations.add(new PassNEliminateUnusedVars(program));
optimizations.add(new Pass2NopCastElimination(program));
optimizations.add(new Pass2ConstantIfs(program));
//optimizations.add(new Pass2ConstantIfs(program));
optimizations.add(new Pass2EliminateUnusedBlocks(program));
pass2OptimizeSSA(optimizations);

@ -1,8 +1,10 @@
package dk.camelot64.kickc.fragment;
import dk.camelot64.kickc.model.*;
import dk.camelot64.kickc.model.ControlFlowBlock;
import dk.camelot64.kickc.model.ControlFlowGraph;
import dk.camelot64.kickc.model.Program;
import dk.camelot64.kickc.model.Registers;
import dk.camelot64.kickc.model.operators.Operator;
import dk.camelot64.kickc.model.values.*;
import dk.camelot64.kickc.model.statements.Statement;
import dk.camelot64.kickc.model.statements.StatementAssignment;
import dk.camelot64.kickc.model.statements.StatementConditionalJump;
@ -13,6 +15,7 @@ import dk.camelot64.kickc.model.symbols.Variable;
import dk.camelot64.kickc.model.types.SymbolType;
import dk.camelot64.kickc.model.types.SymbolTypeInference;
import dk.camelot64.kickc.model.types.SymbolTypePointer;
import dk.camelot64.kickc.model.values.*;
import java.util.LinkedHashMap;
import java.util.Map;
@ -294,6 +297,8 @@ public class AsmFragmentInstanceSpec {
return "vds";
} else if(SymbolType.STRING.equals(type)) {
return "pbu";
} else if(SymbolType.BOOLEAN.equals(type)) {
return "vbo";
} else if(type instanceof SymbolTypePointer) {
SymbolType elementType = ((SymbolTypePointer) type).getElementType();
if(SymbolType.isByte(elementType)) {
@ -320,7 +325,12 @@ public class AsmFragmentInstanceSpec {
* @return The register part of the binding name.
*/
private String getRegisterName(Registers.Register register) {
if(Registers.RegisterType.ZP_BYTE.equals(register.getType()) || Registers.RegisterType.ZP_WORD.equals(register.getType())|| Registers.RegisterType.ZP_DWORD.equals(register.getType())) {
if(
Registers.RegisterType.ZP_BYTE.equals(register.getType()) ||
Registers.RegisterType.ZP_WORD.equals(register.getType()) ||
Registers.RegisterType.ZP_DWORD.equals(register.getType()) ||
Registers.RegisterType.ZP_BOOL.equals(register.getType())
) {
// Examine if the ZP register is already bound
Registers.RegisterZp registerZp = (Registers.RegisterZp) register;
String zpNameIdx = null;

@ -392,7 +392,7 @@ class AsmFragmentTemplateSynthesisRule {
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_neq_(.*)_then_(.*)", null, null, "$2_neq_$1_then_$3", null, null));
// Swap parameters on commutative operators
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_(band|bor|bxor|plus)_(.*)", null, null, "$1=$4_$3_$2", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_(band|bor|bxor|plus|and|or)_(.*)", null, null, "$1=$4_$3_$2", null, null));
// Swap parameters on commutative comparators
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_(eq|neq)_(.*)_then_(.*)", null, null, "$3_$2_$1_then_$4", null, null));

@ -0,0 +1,5 @@
cmp #0
beq !+
lda #$ff
!:
eor #$ff

@ -0,0 +1,5 @@
cmp #0
beq !+
lda #$ff
!:
and {z1}

@ -0,0 +1,6 @@
sec
sbc #{c1}
beq !+
lda #$ff
!:
eor #$ff

@ -0,0 +1,4 @@
cmp #{c1}
lda #0
rol
eor #1

@ -0,0 +1,4 @@
cpx #{c1}
lda #0
rol
eor #1

@ -0,0 +1,4 @@
cpy #{c1}
lda #0
rol
eor #1

@ -0,0 +1,2 @@
cmp #0
bne {la1}

@ -1,3 +0,0 @@
lda #{c1}
cmp #{c2}
bcs {la1}

@ -0,0 +1,2 @@
cpy #{c1}
beq {la1}

@ -20,10 +20,6 @@ public class RegisterCombination {
allocation.put(equivalenceClass, register);
}
public Registers.Register getRegister(LiveRangeEquivalenceClass equivalenceClass) {
return allocation.get(equivalenceClass);
}
/**
* Allocate the registers of the combination into the programs register allocation
* (does not update the allocation in the equivalence classes).

@ -248,32 +248,36 @@ public class Pass0GenerateStatementSequence extends KickCBaseVisitor<Object> {
@Override
public Void visitStmtIfElse(KickCParser.StmtIfElseContext ctx) {
KickCParser.StmtContext ifStmt = ctx.stmt(0);
KickCParser.StmtContext elseStmt = ctx.stmt(1);
PrePostModifierHandler.addPreModifiers(this, ctx.expr());
RValue rValue = (RValue) this.visit(ctx.expr());
VariableRef notExprVar = getCurrentSymbols().addVariableIntermediate().getRef();
sequence.addStatement(new StatementAssignment(notExprVar, null, Operators.LOGIC_NOT, rValue));
PrePostModifierHandler.addPostModifiers(this, ctx.expr());
Label elseJumpLabel = getCurrentSymbols().addLabelIntermediate();
Statement ifJmpStmt = new StatementConditionalJump(notExprVar, elseJumpLabel.getRef());
sequence.addStatement(ifJmpStmt);
this.visit(ctx.stmt(0));
KickCParser.StmtContext elseStmt = ctx.stmt(1);
if(elseStmt != null) {
// There is an else statement - add the else part and any needed labels/jumps
if(elseStmt==null) {
// If without else - skip the entire section if condition not met
VariableRef notExprVar = getCurrentSymbols().addVariableIntermediate().getRef();
sequence.addStatement(new StatementAssignment(notExprVar, null, Operators.LOGIC_NOT, rValue));
PrePostModifierHandler.addPostModifiers(this, ctx.expr());
Label endJumpLabel = getCurrentSymbols().addLabelIntermediate();
Statement endJmpStmt = new StatementJump(endJumpLabel.getRef());
sequence.addStatement(endJmpStmt);
StatementLabel elseJumpTarget = new StatementLabel(elseJumpLabel.getRef());
sequence.addStatement(elseJumpTarget);
sequence.addStatement(new StatementConditionalJump(notExprVar, endJumpLabel.getRef()));
this.visit(ifStmt);
// No else statement - just add the label
sequence.addStatement(new StatementLabel(endJumpLabel.getRef()));
} else {
// If with else - jump to if section if condition met - fall into else otherwise.
PrePostModifierHandler.addPostModifiers(this, ctx.expr());
Label ifJumpLabel = getCurrentSymbols().addLabelIntermediate();
sequence.addStatement(new StatementConditionalJump(rValue, ifJumpLabel.getRef()));
// Add else body
this.visit(elseStmt);
// There is an else statement - add the if part and any needed labels/jumps
Label endJumpLabel = getCurrentSymbols().addLabelIntermediate();
sequence.addStatement(new StatementJump(endJumpLabel.getRef()));
sequence.addStatement(new StatementLabel(ifJumpLabel.getRef()));
this.visit(ifStmt);
StatementLabel endJumpTarget = new StatementLabel(endJumpLabel.getRef());
sequence.addStatement(endJumpTarget);
} else {
// No else statement - just add the label
StatementLabel elseJumpTarget = new StatementLabel(elseJumpLabel.getRef());
sequence.addStatement(elseJumpTarget);
}
return null;
}

@ -106,6 +106,8 @@ public class Pass1GenerateSingleStaticAssignmentForm extends Pass1Base {
for(Statement statement : block.getStatements()) {
if(statement instanceof StatementReturn) {
execute(new ValueReplacer.ReplaceableReturn((StatementReturn) statement), blockVersions, blockNewPhis);
} else if(statement instanceof StatementConditionalJump) {
execute(new ValueReplacer.ReplaceableCondRValue2((StatementConditionalJump) statement), blockVersions, blockNewPhis);
} else if(statement instanceof StatementAssignment) {
StatementAssignment assignment = (StatementAssignment) statement;
execute(new ValueReplacer.ReplaceableRValue1(assignment), blockVersions, blockNewPhis);

@ -1,19 +1,22 @@
package dk.camelot64.kickc.passes;
import dk.camelot64.kickc.model.*;
import dk.camelot64.kickc.model.CompileError;
import dk.camelot64.kickc.model.ControlFlowBlock;
import dk.camelot64.kickc.model.Program;
import dk.camelot64.kickc.model.operators.OperatorBinary;
import dk.camelot64.kickc.model.operators.OperatorUnary;
import dk.camelot64.kickc.model.operators.Operators;
import dk.camelot64.kickc.model.values.*;
import dk.camelot64.kickc.model.statements.Statement;
import dk.camelot64.kickc.model.statements.StatementAssignment;
import dk.camelot64.kickc.model.statements.StatementPhiBlock;
import dk.camelot64.kickc.model.symbols.ConstantVar;
import dk.camelot64.kickc.model.symbols.ProgramScope;
import dk.camelot64.kickc.model.symbols.Scope;
import dk.camelot64.kickc.model.symbols.Variable;
import dk.camelot64.kickc.model.types.SymbolType;
import dk.camelot64.kickc.model.types.SymbolTypeArray;
import dk.camelot64.kickc.model.types.SymbolTypeInference;
import dk.camelot64.kickc.model.values.*;
import java.util.*;
@ -92,106 +95,112 @@ public class Pass2ConstantIdentification extends Pass2SsaOptimization {
*/
private Map<VariableRef, ConstantValue> findConstantVariables() {
final Map<VariableRef, ConstantValue> constants = new LinkedHashMap<>();
ControlFlowGraphBaseVisitor<Void> visitor = new ControlFlowGraphBaseVisitor<Void>() {
@Override
public Void visitAssignment(StatementAssignment assignment) {
LValue lValue = assignment.getlValue();
if(lValue instanceof VariableRef) {
VariableRef variable = (VariableRef) lValue;
if(assignment.getrValue1() == null && getConstant(assignment.getrValue2()) != null) {
if(assignment.getOperator() == null) {
// Constant assignment
ConstantValue constant = getConstant(assignment.getrValue2());
constants.put(variable, constant);
} else {
// Constant unary expression
ConstantValue constant = createUnary(
(OperatorUnary) assignment.getOperator(),
getConstant(assignment.getrValue2())
);
if(constant != null) {
constants.put(variable, constant);
}
}
} else if(getConstant(assignment.getrValue1()) != null && getConstant(assignment.getrValue2()) != null) {
// Constant binary expression
ConstantValue constant = createBinary(
getConstant(assignment.getrValue1()),
(OperatorBinary) assignment.getOperator(),
getConstant(assignment.getrValue2()));
if(constant != null) {
for(ControlFlowBlock block : getGraph().getAllBlocks()) {
for(Statement statement : block.getStatements()) {
if(statement instanceof StatementAssignment) {
StatementAssignment assignment = (StatementAssignment) statement;
findConstantsAssignment(constants, assignment);
} else if( statement instanceof StatementPhiBlock) {
StatementPhiBlock phi = (StatementPhiBlock) statement;
findConstantsPhi(constants, phi);
}
}
}
constants.put(variable, constant);
}
} else if(assignment.getrValue2() instanceof ValueList && assignment.getOperator() == null && assignment.getrValue1() == null) {
if(lValue instanceof VariableRef) {
Variable lVariable = getScope().getVariable((VariableRef) lValue);
if(lVariable.getType() instanceof SymbolTypeArray) {
ValueList valueList = (ValueList) assignment.getrValue2();
List<RValue> values = valueList.getList();
boolean allConstant = true;
// Type of the elements of the list (deducted from the type of all elements)
SymbolType listType = null;
List<ConstantValue> elements = new ArrayList<>();
for(RValue elmValue : values) {
if(elmValue instanceof ConstantValue) {
ConstantValue constantValue = (ConstantValue) elmValue;
SymbolType elmType = constantValue.getType(getScope());
if(listType == null) {
listType = elmType;
} else {
if(!SymbolTypeInference.typeMatch(listType, elmType)) {
SymbolType intersectType = SymbolTypeInference.intersectTypes(listType, elmType);
if(intersectType==null) {
// No overlap between list type and element type
throw new RuntimeException("Array type " + listType + " does not match element type" + elmType + ". Array: " + valueList.toString(getProgram()));
} else {
listType = intersectType;
}
}
}
elements.add(constantValue);
return constants;
}
private void findConstantsPhi(Map<VariableRef, ConstantValue> constants, StatementPhiBlock phi) {
for(StatementPhiBlock.PhiVariable phiVariable : phi.getPhiVariables()) {
if(phiVariable.getValues().size() == 1) {
StatementPhiBlock.PhiRValue phiRValue = phiVariable.getValues().get(0);
if(getConstant(phiRValue.getrValue()) != null) {
VariableRef variable = phiVariable.getVariable();
ConstantValue constant = getConstant(phiRValue.getrValue());
constants.put(variable, constant);
}
}
}
}
private void findConstantsAssignment(Map<VariableRef, ConstantValue> constants, StatementAssignment assignment) {
LValue lValue = assignment.getlValue();
if(lValue instanceof VariableRef) {
VariableRef variable = (VariableRef) lValue;
if(assignment.getrValue1() == null && getConstant(assignment.getrValue2()) != null) {
if(assignment.getOperator() == null) {
// Constant assignment
ConstantValue constant = getConstant(assignment.getrValue2());
constants.put(variable, constant);
} else {
// Constant unary expression
ConstantValue constant = createUnary(
(OperatorUnary) assignment.getOperator(),
getConstant(assignment.getrValue2())
);
if(constant != null) {
constants.put(variable, constant);
}
}
} else if(getConstant(assignment.getrValue1()) != null && getConstant(assignment.getrValue2()) != null) {
// Constant binary expression
ConstantValue constant = createBinary(
getConstant(assignment.getrValue1()),
(OperatorBinary) assignment.getOperator(),
getConstant(assignment.getrValue2()),
getScope());
if(constant != null) {
constants.put(variable, constant);
}
} else if(assignment.getrValue2() instanceof ValueList && assignment.getOperator() == null && assignment.getrValue1() == null) {
// A candidate for a constant list - examine to confirm
Variable lVariable = getScope().getVariable((VariableRef) lValue);
if(lVariable.getType() instanceof SymbolTypeArray) {
ValueList valueList = (ValueList) assignment.getrValue2();
List<RValue> values = valueList.getList();
boolean allConstant = true;
// Type of the elements of the list (deducted from the type of all elements)
SymbolType listType = null;
List<ConstantValue> elements = new ArrayList<>();
for(RValue elmValue : values) {
if(elmValue instanceof ConstantValue) {
ConstantValue constantValue = (ConstantValue) elmValue;
SymbolType elmType = constantValue.getType(getScope());
if(listType == null) {
listType = elmType;
} else {
if(!SymbolTypeInference.typeMatch(listType, elmType)) {
SymbolType intersectType = SymbolTypeInference.intersectTypes(listType, elmType);
if(intersectType==null) {
// No overlap between list type and element type
throw new RuntimeException("Array type " + listType + " does not match element type" + elmType + ". Array: " + valueList.toString(getProgram()));
} else {
allConstant = false;
listType = null;
break;
listType = intersectType;
}
}
if(allConstant && listType != null) {
ConstantValue constant = new ConstantArrayList(elements, listType);
constants.put(variable, constant);
}
}
}
} else if(Operators.ADDRESS_OF.equals(assignment.getOperator()) && assignment.getrValue1()==null) {
if(assignment.getrValue2() instanceof VariableRef) {
ConstantVarPointer constantVarPointer = new ConstantVarPointer((VariableRef) assignment.getrValue2());
constants.put(variable, constantVarPointer);
elements.add(constantValue);
} else {
allConstant = false;
listType = null;
break;
}
}
}
return null;
}
@Override
public Void visitPhiBlock(StatementPhiBlock phi) {
for(StatementPhiBlock.PhiVariable phiVariable : phi.getPhiVariables()) {
if(phiVariable.getValues().size() == 1) {
StatementPhiBlock.PhiRValue phiRValue = phiVariable.getValues().get(0);
if(getConstant(phiRValue.getrValue()) != null) {
VariableRef variable = phiVariable.getVariable();
ConstantValue constant = getConstant(phiRValue.getrValue());
constants.put(variable, constant);
}
if(allConstant && listType != null) {
// Constant list confirmed!
ConstantValue constant = new ConstantArrayList(elements, listType);
constants.put(variable, constant);
}
}
return null;
} else if(Operators.ADDRESS_OF.equals(assignment.getOperator()) && assignment.getrValue1()==null) {
// Constant address-of variable
if(assignment.getrValue2() instanceof VariableRef) {
ConstantVarPointer constantVarPointer = new ConstantVarPointer((VariableRef) assignment.getrValue2());
constants.put(variable, constantVarPointer);
}
}
};
visitor.visitGraph(getGraph());
return constants;
}
}
/**
@ -200,7 +209,7 @@ public class Pass2ConstantIdentification extends Pass2SsaOptimization {
* @param rValue The rValue to examine
* @return The constant value. null is the rValue is not a known constant.
*/
private ConstantValue getConstant(RValue rValue) {
public static ConstantValue getConstant(RValue rValue) {
if(rValue instanceof ConstantValue) {
return (ConstantValue) rValue;
} else if(rValue instanceof ConstantVar) {
@ -236,16 +245,16 @@ public class Pass2ConstantIdentification extends Pass2SsaOptimization {
}
}
ConstantValue createBinary(ConstantValue c1, OperatorBinary operator, ConstantValue c2) {
static ConstantValue createBinary(ConstantValue c1, OperatorBinary operator, ConstantValue c2, ProgramScope programScope) {
switch(operator.getOperator()) {
case "-":
case "+":
if(SymbolType.STRING.equals(c1.getType(getScope()))) {
if(SymbolType.STRING.equals(c1.getType(programScope))) {
if(c1 instanceof ConstantRef) {
c1 = getScope().getConstant((ConstantRef) c1).getValue();
c1 = programScope.getConstant((ConstantRef) c1).getValue();
}
if(c2 instanceof ConstantRef) {
c2 = getScope().getConstant((ConstantRef) c2).getValue();
c2 = programScope.getConstant((ConstantRef) c2).getValue();
}
return new ConstantBinary(c1, operator, c2);
}

@ -2,52 +2,74 @@ package dk.camelot64.kickc.passes;
import dk.camelot64.kickc.model.ControlFlowBlock;
import dk.camelot64.kickc.model.Program;
import dk.camelot64.kickc.model.operators.Operator;
import dk.camelot64.kickc.model.operators.OperatorBinary;
import dk.camelot64.kickc.model.operators.OperatorUnary;
import dk.camelot64.kickc.model.statements.Statement;
import dk.camelot64.kickc.model.statements.StatementConditionalJump;
import dk.camelot64.kickc.model.values.ConstantBool;
import dk.camelot64.kickc.model.values.ConstantLiteral;
import dk.camelot64.kickc.model.values.ConstantValue;
import dk.camelot64.kickc.model.values.LabelRef;
import java.util.ListIterator;
/** Pass that eliminates constant if's - they are either removed (if false) or replaces the default successor (if true). */
/**
* Compiler Pass identifying constant if() conditions
*/
public class Pass2ConstantIfs extends Pass2SsaOptimization {
public Pass2ConstantIfs(Program program) {
super(program);
}
/**
* Identify constant conditions in if()'s
*
* @return true optimization was performed. false if no optimization was possible.
*/
@Override
public boolean step() {
boolean modified = false;
for(ControlFlowBlock block : getGraph().getAllBlocks()) {
ListIterator<Statement> statementsIt = block.getStatements().listIterator();
while(statementsIt.hasNext()) {
Statement statement = statementsIt.next();
ListIterator<Statement> stmtIt = block.getStatements().listIterator();
while(stmtIt.hasNext()) {
Statement statement = stmtIt.next();
if(statement instanceof StatementConditionalJump) {
StatementConditionalJump conditionalJump = (StatementConditionalJump) statement;
if(conditionalJump.getrValue1() == null && conditionalJump.getOperator() == null && conditionalJump.getrValue2() instanceof ConstantValue) {
// The if()-value is constant
ConstantValue constValue = (ConstantValue) conditionalJump.getrValue2();
ConstantLiteral literal = constValue.calculateLiteral(getScope());
if(literal instanceof ConstantBool) {
if(((ConstantBool) literal).getBool()) {
// if()-value always true - remove if and replace destination
getLog().append("if() condition always true - replacing block destination "+statement.toString(getProgram(), false));
Pass2EliminateUnusedBlocks.removePhiRValues(block.getLabel(), getGraph().getDefaultSuccessor(block), getLog());
block.setDefaultSuccessor(conditionalJump.getDestination());
statementsIt.remove();
block.setConditionalSuccessor(null);
modified = true;
} else {
// if()-value always false - remove if()
getLog().append("if() condition always false - eliminating if "+statement.toString(getProgram(), false));
Pass2EliminateUnusedBlocks.removePhiRValues(block.getLabel(), getGraph().getConditionalSuccessor(block), getLog());
statementsIt.remove();
block.setConditionalSuccessor(null);
modified = true;
}
ConstantLiteral literal = null;
StatementConditionalJump conditional = (StatementConditionalJump) statement;
ConstantValue constValue1 = Pass2ConstantIdentification.getConstant(conditional.getrValue1());
Operator operator = conditional.getOperator();
ConstantValue constValue2 = Pass2ConstantIdentification.getConstant(conditional.getrValue2());
if(conditional.getrValue1() == null && operator == null && constValue2 != null) {
// Constant condition
literal = constValue2.calculateLiteral(getScope());
} else if(conditional.getrValue1() == null && operator != null && constValue2 != null) {
// Constant unary condition
ConstantValue constVal = Pass2ConstantIdentification.createUnary((OperatorUnary) operator, constValue2);
literal = constVal.calculateLiteral(getScope());
} else if(constValue1 != null && operator != null && constValue2 != null) {
// Constant binary condition
ConstantValue constVal = Pass2ConstantIdentification.createBinary( constValue1, (OperatorBinary) operator, constValue2, getScope());
literal = constVal.calculateLiteral(getScope());
}
if(literal!=null && literal instanceof ConstantBool) {
// Condition is a constant boolean
if(((ConstantBool) literal).getBool()) {
// Always true - replace default successor and drop conditional jump
Pass2EliminateUnusedBlocks.removePhiRValues(block.getLabel(), getGraph().getDefaultSuccessor(block), getLog());
block.setDefaultSuccessor(conditional.getDestination());
getLog().append("if() condition always true - replacing block destination " + conditional.toString(getProgram(), false));
stmtIt.remove();
block.setConditionalSuccessor(null);
modified = true;
} else {
// Always false - drop the conditional jump
Pass2EliminateUnusedBlocks.removePhiRValues(block.getLabel(), getGraph().getConditionalSuccessor(block), getLog());
getLog().append("if() condition always false - eliminating " + conditional.toString(getProgram(), false));
stmtIt.remove();
block.setConditionalSuccessor(null);
modified = true;
}
}
}

@ -53,6 +53,9 @@ public class Pass4RegisterUpliftPotentialInitialize extends Pass2Base {
potentials.add(Registers.getRegisterX());
potentials.add(Registers.getRegisterY());
}
if(registerType.equals(Registers.RegisterType.ZP_BOOL) && !varRefExtracted(equivalenceClass)) {
potentials.add(Registers.getRegisterA());
}
registerPotentials.setPotentialRegisters(equivalenceClass, potentials);
}
}

@ -50,12 +50,22 @@ public class TestPrograms {
compileAndCompare("emptyblock-error");
}
@Test
public void testConstCondition() throws IOException, URISyntaxException {
compileAndCompare("const-condition");
}
@Test
public void testBoolConst() throws IOException, URISyntaxException {
compileAndCompare("bool-const");
}
@Test
public void testBoolVars() throws IOException, URISyntaxException {
compileAndCompare("bool-vars");
}
@Test
public void testInlineString3() throws IOException, URISyntaxException {
try {

@ -1,6 +1,4 @@
// A Minimal test of boolean variables.
// Boolean variables are bytes under the hood
// 0: false, !=0 : true
// A Minimal test of boolean constants.
const byte* SCREEN = $400;

@ -0,0 +1,18 @@
// A Minimal test of boolean variables.
// Boolean variables are bytes under the hood
// 0: false, !=0 : true
const byte* screen = $400;
void main() {
for( byte i : 0..20) {
boolean o1 = i<10;
boolean o2 = (i&1)==0;
if( o1 && o2 ) {
screen[i] = '*';
} else {
screen[i] = ' ';
}
}
}

@ -213,9 +213,8 @@ void apply_preset(byte idx) {
preset = preset_stdchar;
}
// Copy preset values into the fields
byte* values = form_fields_val;
for( byte i=0; i != form_fields_cnt; i++) {
*values++ = *preset++;
form_fields_val[i] = preset[i];
}
}

@ -0,0 +1,11 @@
// Ensure that if()'s with constant comparisons are identified and eliminated
void main() {
const byte* SCREEN = $0400;
if(7<4) {
SCREEN[0] = '*';
} else {
SCREEN[0] = '!';
}
}

@ -49,132 +49,135 @@ lines: {
rts
}
bitmap_line: {
.label xd = 3
.label yd = 4
.label x0 = 7
.label xd = 4
.label yd = 3
.label x0 = 5
.label x1 = 8
.label y0 = 5
.label y0 = 6
lda x0
cmp x1
bcs b1
lda x1
bcc b1
sec
sbc x0
sbc x1
sta xd
lda y0
sty $ff
cmp $ff
bcs b2
tya
sec
sbc y0
sta yd
cmp xd
bcs b3
ldx x0
lda x1
sta bitmap_line_xdyi.x1
jsr bitmap_line_xdyi
breturn:
rts
b3:
lda y0
sta bitmap_line_ydxi.y
ldx x0
sty bitmap_line_ydxi.y1
jsr bitmap_line_ydxi
jmp breturn
b2:
cmp y0
beq !+
bcs b2
!:
tya
eor #$ff
sec
adc y0
sta yd
cmp xd
bcs b6
ldx x0
jsr bitmap_line_xdyd
jmp breturn
b6:
sty bitmap_line_ydxd.y
bcc b3
sty bitmap_line_ydxi.y
ldx x1
jsr bitmap_line_ydxd
jsr bitmap_line_ydxi
breturn:
rts
b3:
ldx x1
sty bitmap_line_xdyi.y
jsr bitmap_line_xdyi
jmp breturn
b1:
lda x0
sec
sbc x1
sta xd
lda y0
sty $ff
cmp $ff
bcs b9
b2:
tya
sec
sbc y0
sta yd
cmp xd
bcs b10
ldx x1
sty bitmap_line_xdyd.y
lda x0
sta bitmap_line_xdyd.x1
jsr bitmap_line_xdyd
jmp breturn
b10:
bcc b6
lda y0
sta bitmap_line_ydxd.y
ldx x0
sty bitmap_line_ydxd.y1
jsr bitmap_line_ydxd
jmp breturn
b9:
b6:
ldx x1
sty bitmap_line_xdyd.y
lda x0
sta bitmap_line_xdyd.x1
jsr bitmap_line_xdyd
jmp breturn
b1:
lda x1
sec
sbc x0
sta xd
tya
cmp y0
beq !+
bcs b9
!:
tya
eor #$ff
sec
adc y0
sta yd
cmp xd
bcs b13
bcc b10
sty bitmap_line_ydxd.y
ldx x1
sty bitmap_line_xdyi.y
jsr bitmap_line_xdyi
jsr bitmap_line_ydxd
jmp breturn
b13:
sty bitmap_line_ydxi.y
ldx x1
b10:
ldx x0
jsr bitmap_line_xdyd
jmp breturn
b9:
tya
sec
sbc y0
sta yd
cmp xd
bcc b13
lda y0
sta bitmap_line_ydxi.y
ldx x0
sty bitmap_line_ydxi.y1
jsr bitmap_line_ydxi
jmp breturn
b13:
ldx x0
lda x1
sta bitmap_line_xdyi.x1
jsr bitmap_line_xdyi
jmp breturn
}
bitmap_line_ydxi: {
bitmap_line_xdyi: {
.label _6 = 8
.label y = 6
.label y1 = 5
.label yd = 4
.label xd = 3
.label x1 = 5
.label xd = 4
.label yd = 3
.label e = 7
lda xd
lda yd
lsr
sta e
b1:
ldy y
jsr bitmap_plot
inc y
lda e
clc
adc xd
sta e
lda yd
cmp e
bcs b2
inx
lda e
clc
adc yd
sta e
lda xd
cmp e
bcs b2
inc y
lda e
sec
sbc yd
sbc xd
sta e
b2:
ldy y1
ldy x1
iny
cpy y
sty _6
cpx _6
bne b1
rts
}
@ -203,46 +206,12 @@ bitmap_plot: {
sta (_0),y
rts
}
bitmap_line_xdyi: {
.label _6 = 8
.label y = 5
.label x1 = 7
.label xd = 3
.label yd = 4
.label e = 6
lda yd
lsr
sta e
b1:
ldy y
jsr bitmap_plot
inx
lda e
clc
adc yd
sta e
lda xd
cmp e
bcs b2
inc y
lda e
sec
sbc xd
sta e
b2:
ldy x1
iny
sty _6
cpx _6
bne b1
rts
}
bitmap_line_ydxd: {
.label y = 6
.label y1 = 5
.label yd = 4
.label xd = 3
.label e = 7
bitmap_line_ydxi: {
.label y = 7
.label y1 = 6
.label yd = 3
.label xd = 4
.label e = 5
lda xd
lsr
sta e
@ -257,7 +226,7 @@ bitmap_line_ydxd: {
lda yd
cmp e
bcs b2
dex
inx
lda e
sec
sbc yd
@ -271,11 +240,11 @@ bitmap_line_ydxd: {
}
bitmap_line_xdyd: {
.label _6 = 7
.label y = 5
.label y = 6
.label x1 = 8
.label xd = 3
.label yd = 4
.label e = 6
.label xd = 4
.label yd = 3
.label e = 5
lda yd
lsr
sta e
@ -303,6 +272,38 @@ bitmap_line_xdyd: {
bne b1
rts
}
bitmap_line_ydxd: {
.label y = 7
.label y1 = 6
.label yd = 3
.label xd = 4
.label e = 5
lda xd
lsr
sta e
b1:
ldy y
jsr bitmap_plot
inc y
lda e
clc
adc xd
sta e
lda yd
cmp e
bcs b2
dex
lda e
sec
sbc yd
sta e
b2:
ldy y1
iny
cpy y
bne b1
rts
}
init_screen: {
.label c = 9
lda #<SCREEN

@ -45,246 +45,246 @@ lines::@return: scope:[lines] from lines::@3
[24] return [ ] ( main:2::lines:14 [ ] )
to:@return
bitmap_line: scope:[bitmap_line] from lines::@1
[25] if((byte) bitmap_line::x0#0>=(byte) bitmap_line::x1#0) goto bitmap_line::@1 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 ] )
[25] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 ] )
to:bitmap_line::@15
bitmap_line::@15: scope:[bitmap_line] from bitmap_line
[26] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x1#0 - (byte) bitmap_line::x0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] )
[27] if((byte) bitmap_line::y0#0>=(byte) bitmap_line::y1#0) goto bitmap_line::@2 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] )
[26] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x0#0 - (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] )
[27] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@2 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] )
to:bitmap_line::@16
bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@15
[28] (byte) bitmap_line::yd#1 ← (byte) bitmap_line::y1#0 - (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] )
[29] if((byte) bitmap_line::yd#1>=(byte) bitmap_line::xd#1) goto bitmap_line::@3 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] )
[28] (byte) bitmap_line::yd#1 ← (byte) bitmap_line::y0#0 - (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] )
[29] if((byte) bitmap_line::yd#1<(byte) bitmap_line::xd#1) goto bitmap_line::@3 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] )
to:bitmap_line::@17
bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@16
[30] (byte) bitmap_line_xdyi::x#0 ← (byte) bitmap_line::x0#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 ] )
[31] (byte) bitmap_line_xdyi::y#0 ← (byte) bitmap_line::y0#0 [ bitmap_line::x1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 ] )
[32] (byte) bitmap_line_xdyi::x1#0 ← (byte) bitmap_line::x1#0 [ bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 ] )
[33] (byte) bitmap_line_xdyi::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 ] )
[34] (byte) bitmap_line_xdyi::yd#0 ← (byte) bitmap_line::yd#1 [ bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::yd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::yd#0 ] )
[35] call bitmap_line_xdyi param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
[30] (byte) bitmap_line_ydxi::y#0 ← (byte) bitmap_line::y1#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 ] )
[31] (byte) bitmap_line_ydxi::x#0 ← (byte) bitmap_line::x1#0 [ bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 ] )
[32] (byte) bitmap_line_ydxi::y1#0 ← (byte) bitmap_line::y0#0 [ bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 ] )
[33] (byte) bitmap_line_ydxi::yd#0 ← (byte) bitmap_line::yd#1 [ bitmap_line::xd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 ] )
[34] (byte) bitmap_line_ydxi::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::xd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::xd#0 ] )
[35] call bitmap_line_ydxi param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
to:bitmap_line::@return
bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@13 bitmap_line::@17 bitmap_line::@20 bitmap_line::@24 bitmap_line::@27 bitmap_line::@3 bitmap_line::@6
[36] return [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
to:@return
bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@16
[37] (byte) bitmap_line_ydxi::y#0 ← (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 ] )
[38] (byte) bitmap_line_ydxi::x#0 ← (byte) bitmap_line::x0#0 [ bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 ] )
[39] (byte) bitmap_line_ydxi::y1#0 ← (byte) bitmap_line::y1#0 [ bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 ] )
[40] (byte) bitmap_line_ydxi::yd#0 ← (byte) bitmap_line::yd#1 [ bitmap_line::xd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 ] )
[41] (byte) bitmap_line_ydxi::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::xd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::xd#0 ] )
[42] call bitmap_line_ydxi param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
[37] (byte) bitmap_line_xdyi::x#0 ← (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 ] )
[38] (byte) bitmap_line_xdyi::y#0 ← (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 ] )
[39] (byte) bitmap_line_xdyi::x1#0 ← (byte) bitmap_line::x0#0 [ bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 ] )
[40] (byte) bitmap_line_xdyi::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 ] )
[41] (byte) bitmap_line_xdyi::yd#0 ← (byte) bitmap_line::yd#1 [ bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::yd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::yd#0 ] )
[42] call bitmap_line_xdyi param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
to:bitmap_line::@return
bitmap_line::@2: scope:[bitmap_line] from bitmap_line::@15
[43] (byte) bitmap_line::yd#0 ← (byte) bitmap_line::y0#0 - (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] )
[44] if((byte) bitmap_line::yd#0>=(byte) bitmap_line::xd#1) goto bitmap_line::@6 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] )
[43] (byte) bitmap_line::yd#0 ← (byte) bitmap_line::y1#0 - (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] )
[44] if((byte) bitmap_line::yd#0<(byte) bitmap_line::xd#1) goto bitmap_line::@6 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] )
to:bitmap_line::@20
bitmap_line::@20: scope:[bitmap_line] from bitmap_line::@2
[45] (byte) bitmap_line_xdyd::x#0 ← (byte) bitmap_line::x0#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 ] )
[46] (byte) bitmap_line_xdyd::y#0 ← (byte) bitmap_line::y0#0 [ bitmap_line::x1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 ] )
[47] (byte) bitmap_line_xdyd::x1#0 ← (byte) bitmap_line::x1#0 [ bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 ] )
[48] (byte) bitmap_line_xdyd::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 ] )
[49] (byte) bitmap_line_xdyd::yd#0 ← (byte) bitmap_line::yd#0 [ bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::yd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::yd#0 ] )
[50] call bitmap_line_xdyd param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
[45] (byte) bitmap_line_ydxd::y#0 ← (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 ] )
[46] (byte) bitmap_line_ydxd::x#0 ← (byte) bitmap_line::x0#0 [ bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 ] )
[47] (byte) bitmap_line_ydxd::y1#0 ← (byte) bitmap_line::y1#0 [ bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 ] )
[48] (byte) bitmap_line_ydxd::yd#0 ← (byte) bitmap_line::yd#0 [ bitmap_line::xd#1 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#1 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 ] )
[49] (byte) bitmap_line_ydxd::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::xd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::xd#0 ] )
[50] call bitmap_line_ydxd param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
to:bitmap_line::@return
bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@2
[51] (byte) bitmap_line_ydxd::y#0 ← (byte) bitmap_line::y1#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 ] )
[52] (byte) bitmap_line_ydxd::x#0 ← (byte) bitmap_line::x1#0 [ bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 ] )
[53] (byte) bitmap_line_ydxd::y1#0 ← (byte) bitmap_line::y0#0 [ bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 ] )
[54] (byte) bitmap_line_ydxd::yd#0 ← (byte) bitmap_line::yd#0 [ bitmap_line::xd#1 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#1 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 ] )
[55] (byte) bitmap_line_ydxd::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::xd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::xd#0 ] )
[56] call bitmap_line_ydxd param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
[51] (byte) bitmap_line_xdyd::x#0 ← (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 ] )
[52] (byte) bitmap_line_xdyd::y#0 ← (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 ] )
[53] (byte) bitmap_line_xdyd::x1#0 ← (byte) bitmap_line::x0#0 [ bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 ] )
[54] (byte) bitmap_line_xdyd::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 ] )
[55] (byte) bitmap_line_xdyd::yd#0 ← (byte) bitmap_line::yd#0 [ bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::yd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::yd#0 ] )
[56] call bitmap_line_xdyd param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
to:bitmap_line::@return
bitmap_line::@1: scope:[bitmap_line] from bitmap_line
[57] (byte) bitmap_line::xd#0 ← (byte) bitmap_line::x0#0 - (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] )
[58] if((byte) bitmap_line::y0#0>=(byte) bitmap_line::y1#0) goto bitmap_line::@9 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] )
[57] (byte) bitmap_line::xd#0 ← (byte) bitmap_line::x1#0 - (byte) bitmap_line::x0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] )
[58] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@9 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] )
to:bitmap_line::@23
bitmap_line::@23: scope:[bitmap_line] from bitmap_line::@1
[59] (byte) bitmap_line::yd#3 ← (byte) bitmap_line::y1#0 - (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] )
[60] if((byte) bitmap_line::yd#3>=(byte) bitmap_line::xd#0) goto bitmap_line::@10 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] )
[59] (byte) bitmap_line::yd#3 ← (byte) bitmap_line::y0#0 - (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] )
[60] if((byte) bitmap_line::yd#3<(byte) bitmap_line::xd#0) goto bitmap_line::@10 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] )
to:bitmap_line::@24
bitmap_line::@24: scope:[bitmap_line] from bitmap_line::@23
[61] (byte) bitmap_line_xdyd::x#1 ← (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 ] )
[62] (byte) bitmap_line_xdyd::y#1 ← (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 ] )
[63] (byte) bitmap_line_xdyd::x1#1 ← (byte) bitmap_line::x0#0 [ bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 ] )
[64] (byte) bitmap_line_xdyd::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 ] )
[65] (byte) bitmap_line_xdyd::yd#1 ← (byte) bitmap_line::yd#3 [ bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::yd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::yd#1 ] )
[66] call bitmap_line_xdyd param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
[61] (byte) bitmap_line_ydxd::y#1 ← (byte) bitmap_line::y1#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 ] )
[62] (byte) bitmap_line_ydxd::x#1 ← (byte) bitmap_line::x1#0 [ bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 ] )
[63] (byte) bitmap_line_ydxd::y1#1 ← (byte) bitmap_line::y0#0 [ bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 ] )
[64] (byte) bitmap_line_ydxd::yd#1 ← (byte) bitmap_line::yd#3 [ bitmap_line::xd#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 ] )
[65] (byte) bitmap_line_ydxd::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 bitmap_line_ydxd::xd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 bitmap_line_ydxd::xd#1 ] )
[66] call bitmap_line_ydxd param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
to:bitmap_line::@return
bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@23
[67] (byte) bitmap_line_ydxd::y#1 ← (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 ] )
[68] (byte) bitmap_line_ydxd::x#1 ← (byte) bitmap_line::x0#0 [ bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 ] )
[69] (byte) bitmap_line_ydxd::y1#1 ← (byte) bitmap_line::y1#0 [ bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 ] )
[70] (byte) bitmap_line_ydxd::yd#1 ← (byte) bitmap_line::yd#3 [ bitmap_line::xd#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 ] )
[71] (byte) bitmap_line_ydxd::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 bitmap_line_ydxd::xd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 bitmap_line_ydxd::xd#1 ] )
[72] call bitmap_line_ydxd param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
[67] (byte) bitmap_line_xdyd::x#1 ← (byte) bitmap_line::x0#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 ] )
[68] (byte) bitmap_line_xdyd::y#1 ← (byte) bitmap_line::y0#0 [ bitmap_line::x1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 ] )
[69] (byte) bitmap_line_xdyd::x1#1 ← (byte) bitmap_line::x1#0 [ bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 ] )
[70] (byte) bitmap_line_xdyd::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 ] )
[71] (byte) bitmap_line_xdyd::yd#1 ← (byte) bitmap_line::yd#3 [ bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::yd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::yd#1 ] )
[72] call bitmap_line_xdyd param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
to:bitmap_line::@return
bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@1
[73] (byte) bitmap_line::yd#10 ← (byte) bitmap_line::y0#0 - (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] )
[74] if((byte) bitmap_line::yd#10>=(byte) bitmap_line::xd#0) goto bitmap_line::@13 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] )
[73] (byte) bitmap_line::yd#10 ← (byte) bitmap_line::y1#0 - (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] )
[74] if((byte) bitmap_line::yd#10<(byte) bitmap_line::xd#0) goto bitmap_line::@13 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] )
to:bitmap_line::@27
bitmap_line::@27: scope:[bitmap_line] from bitmap_line::@9
[75] (byte) bitmap_line_xdyi::x#1 ← (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 ] )
[76] (byte) bitmap_line_xdyi::y#1 ← (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 ] )
[77] (byte) bitmap_line_xdyi::x1#1 ← (byte) bitmap_line::x0#0 [ bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 ] )
[78] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 ] )
[79] (byte) bitmap_line_xdyi::yd#1 ← (byte) bitmap_line::yd#10 [ bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::yd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::yd#1 ] )
[80] call bitmap_line_xdyi param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
[75] (byte) bitmap_line_ydxi::y#1 ← (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 ] )
[76] (byte) bitmap_line_ydxi::x#1 ← (byte) bitmap_line::x0#0 [ bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 ] )
[77] (byte) bitmap_line_ydxi::y1#1 ← (byte) bitmap_line::y1#0 [ bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 ] )
[78] (byte) bitmap_line_ydxi::yd#1 ← (byte) bitmap_line::yd#10 [ bitmap_line::xd#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 ] )
[79] (byte) bitmap_line_ydxi::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::xd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::xd#1 ] )
[80] call bitmap_line_ydxi param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
to:bitmap_line::@return
bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@9
[81] (byte) bitmap_line_ydxi::y#1 ← (byte) bitmap_line::y1#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 ] )
[82] (byte) bitmap_line_ydxi::x#1 ← (byte) bitmap_line::x1#0 [ bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 ] )
[83] (byte) bitmap_line_ydxi::y1#1 ← (byte) bitmap_line::y0#0 [ bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 ] )
[84] (byte) bitmap_line_ydxi::yd#1 ← (byte) bitmap_line::yd#10 [ bitmap_line::xd#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 ] )
[85] (byte) bitmap_line_ydxi::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::xd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::xd#1 ] )
[86] call bitmap_line_ydxi param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
[81] (byte) bitmap_line_xdyi::x#1 ← (byte) bitmap_line::x0#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 ] )
[82] (byte) bitmap_line_xdyi::y#1 ← (byte) bitmap_line::y0#0 [ bitmap_line::x1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::x1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 ] )
[83] (byte) bitmap_line_xdyi::x1#1 ← (byte) bitmap_line::x1#0 [ bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 ] )
[84] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 ] )
[85] (byte) bitmap_line_xdyi::yd#1 ← (byte) bitmap_line::yd#10 [ bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::yd#1 ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::yd#1 ] )
[86] call bitmap_line_xdyi param-assignment [ ] ( main:2::lines:14::bitmap_line:21 [ lines::l#2 ] )
to:bitmap_line::@return
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@13 bitmap_line::@3
[87] (byte) bitmap_line_ydxi::y1#6 ← phi( bitmap_line::@13/(byte) bitmap_line_ydxi::y1#1 bitmap_line::@3/(byte) bitmap_line_ydxi::y1#0 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[87] (byte) bitmap_line_ydxi::yd#5 ← phi( bitmap_line::@13/(byte) bitmap_line_ydxi::yd#1 bitmap_line::@3/(byte) bitmap_line_ydxi::yd#0 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[87] (byte) bitmap_line_ydxi::y#6 ← phi( bitmap_line::@13/(byte) bitmap_line_ydxi::y#1 bitmap_line::@3/(byte) bitmap_line_ydxi::y#0 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[87] (byte) bitmap_line_ydxi::x#5 ← phi( bitmap_line::@13/(byte) bitmap_line_ydxi::x#1 bitmap_line::@3/(byte) bitmap_line_ydxi::x#0 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[87] (byte) bitmap_line_ydxi::xd#2 ← phi( bitmap_line::@13/(byte) bitmap_line_ydxi::xd#1 bitmap_line::@3/(byte) bitmap_line_ydxi::xd#0 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[88] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] )
to:bitmap_line_ydxi::@1
bitmap_line_ydxi::@1: scope:[bitmap_line_ydxi] from bitmap_line_ydxi bitmap_line_ydxi::@2
[89] (byte) bitmap_line_ydxi::e#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::e#0 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::e#6 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[89] (byte) bitmap_line_ydxi::y#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::y#6 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::y#2 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[89] (byte) bitmap_line_ydxi::x#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::x#5 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::x#6 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[90] (byte) bitmap_plot::x#2 ← (byte) bitmap_line_ydxi::x#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] )
[91] (byte) bitmap_plot::y#2 ← (byte) bitmap_line_ydxi::y#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] )
[92] call bitmap_plot param-assignment [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
to:bitmap_line_ydxi::@5
bitmap_line_ydxi::@5: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@1
[93] (byte) bitmap_line_ydxi::y#2 ← ++ (byte) bitmap_line_ydxi::y#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::e#3 bitmap_line_ydxi::y#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::e#3 bitmap_line_ydxi::y#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::e#3 bitmap_line_ydxi::y#2 ] )
[94] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] )
[95] if((byte) bitmap_line_ydxi::yd#5>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] )
to:bitmap_line_ydxi::@3
bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@5
[96] (byte) bitmap_line_ydxi::x#2 ← ++ (byte) bitmap_line_ydxi::x#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 bitmap_line_ydxi::x#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 bitmap_line_ydxi::x#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 bitmap_line_ydxi::x#2 ] )
[97] (byte) bitmap_line_ydxi::e#2 ← (byte) bitmap_line_ydxi::e#1 - (byte) bitmap_line_ydxi::yd#5 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] )
to:bitmap_line_ydxi::@2
bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap_line_ydxi::@5
[98] (byte) bitmap_line_ydxi::e#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::e#2 bitmap_line_ydxi::@5/(byte) bitmap_line_ydxi::e#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] )
[98] (byte) bitmap_line_ydxi::x#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::x#2 bitmap_line_ydxi::@5/(byte) bitmap_line_ydxi::x#3 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] )
[99] (byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6 ← (byte) bitmap_line_ydxi::y1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] )
[100] if((byte) bitmap_line_ydxi::y#2!=(byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] )
to:bitmap_line_ydxi::@return
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
[101] return [ ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42 [ lines::l#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86 [ lines::l#2 ] )
to:@return
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
[102] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 ) [ bitmap_plot::x#4 bitmap_plot::y#4 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] )
[102] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 ) [ bitmap_plot::x#4 bitmap_plot::y#4 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] )
[103] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] )
[104] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] )
[105] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::$0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] )
[106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] )
[107] *((byte*)(word~) bitmap_plot::$0) ← (byte~) bitmap_plot::$1 [ ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[108] return [ ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
to:@return
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@17 bitmap_line::@27
[109] (byte) bitmap_line_xdyi::x1#6 ← phi( bitmap_line::@17/(byte) bitmap_line_xdyi::x1#0 bitmap_line::@27/(byte) bitmap_line_xdyi::x1#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[109] (byte) bitmap_line_xdyi::xd#5 ← phi( bitmap_line::@17/(byte) bitmap_line_xdyi::xd#0 bitmap_line::@27/(byte) bitmap_line_xdyi::xd#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[109] (byte) bitmap_line_xdyi::y#5 ← phi( bitmap_line::@17/(byte) bitmap_line_xdyi::y#0 bitmap_line::@27/(byte) bitmap_line_xdyi::y#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[109] (byte) bitmap_line_xdyi::x#6 ← phi( bitmap_line::@17/(byte) bitmap_line_xdyi::x#0 bitmap_line::@27/(byte) bitmap_line_xdyi::x#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[109] (byte) bitmap_line_xdyi::yd#2 ← phi( bitmap_line::@17/(byte) bitmap_line_xdyi::yd#0 bitmap_line::@27/(byte) bitmap_line_xdyi::yd#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[110] (byte) bitmap_line_xdyi::e#0 ← (byte) bitmap_line_xdyi::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] )
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@13 bitmap_line::@3
[87] (byte) bitmap_line_xdyi::x1#6 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::x1#1 bitmap_line::@3/(byte) bitmap_line_xdyi::x1#0 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[87] (byte) bitmap_line_xdyi::xd#5 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::xd#1 bitmap_line::@3/(byte) bitmap_line_xdyi::xd#0 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[87] (byte) bitmap_line_xdyi::y#5 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::y#1 bitmap_line::@3/(byte) bitmap_line_xdyi::y#0 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[87] (byte) bitmap_line_xdyi::x#6 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::x#1 bitmap_line::@3/(byte) bitmap_line_xdyi::x#0 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[87] (byte) bitmap_line_xdyi::yd#2 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::yd#1 bitmap_line::@3/(byte) bitmap_line_xdyi::yd#0 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[88] (byte) bitmap_line_xdyi::e#0 ← (byte) bitmap_line_xdyi::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] )
to:bitmap_line_xdyi::@1
bitmap_line_xdyi::@1: scope:[bitmap_line_xdyi] from bitmap_line_xdyi bitmap_line_xdyi::@2
[111] (byte) bitmap_line_xdyi::e#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::e#0 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::e#6 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[111] (byte) bitmap_line_xdyi::y#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::y#5 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::y#6 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[111] (byte) bitmap_line_xdyi::x#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::x#6 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::x#2 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[112] (byte) bitmap_plot::x#0 ← (byte) bitmap_line_xdyi::x#3 [ bitmap_plot::x#0 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_plot::x#0 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_plot::x#0 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[113] (byte) bitmap_plot::y#0 ← (byte) bitmap_line_xdyi::y#3 [ bitmap_plot::x#0 bitmap_plot::y#0 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_plot::x#0 bitmap_plot::y#0 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_plot::x#0 bitmap_plot::y#0 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[114] call bitmap_plot param-assignment [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[89] (byte) bitmap_line_xdyi::e#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::e#0 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::e#6 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[89] (byte) bitmap_line_xdyi::y#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::y#5 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::y#6 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[89] (byte) bitmap_line_xdyi::x#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::x#6 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::x#2 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[90] (byte) bitmap_plot::x#0 ← (byte) bitmap_line_xdyi::x#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] )
[91] (byte) bitmap_plot::y#0 ← (byte) bitmap_line_xdyi::y#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] )
[92] call bitmap_plot param-assignment [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
to:bitmap_line_xdyi::@5
bitmap_line_xdyi::@5: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@1
[115] (byte) bitmap_line_xdyi::x#2 ← ++ (byte) bitmap_line_xdyi::x#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_line_xdyi::x#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_line_xdyi::x#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_line_xdyi::x#2 ] )
[116] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (byte) bitmap_line_xdyi::yd#2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] )
[117] if((byte) bitmap_line_xdyi::xd#5>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] )
[93] (byte) bitmap_line_xdyi::x#2 ← ++ (byte) bitmap_line_xdyi::x#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_line_xdyi::x#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_line_xdyi::x#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_line_xdyi::x#2 ] )
[94] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (byte) bitmap_line_xdyi::yd#2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] )
[95] if((byte) bitmap_line_xdyi::xd#5>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] )
to:bitmap_line_xdyi::@3
bitmap_line_xdyi::@3: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@5
[118] (byte) bitmap_line_xdyi::y#2 ← ++ (byte) bitmap_line_xdyi::y#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 bitmap_line_xdyi::y#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 bitmap_line_xdyi::y#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 bitmap_line_xdyi::y#2 ] )
[119] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#5 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] )
[96] (byte) bitmap_line_xdyi::y#2 ← ++ (byte) bitmap_line_xdyi::y#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 bitmap_line_xdyi::y#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 bitmap_line_xdyi::y#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 bitmap_line_xdyi::y#2 ] )
[97] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#5 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] )
to:bitmap_line_xdyi::@2
bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap_line_xdyi::@5
[120] (byte) bitmap_line_xdyi::e#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::e#2 bitmap_line_xdyi::@5/(byte) bitmap_line_xdyi::e#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] )
[120] (byte) bitmap_line_xdyi::y#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::y#2 bitmap_line_xdyi::@5/(byte) bitmap_line_xdyi::y#3 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] )
[121] (byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] )
[122] if((byte) bitmap_line_xdyi::x#2!=(byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] )
[98] (byte) bitmap_line_xdyi::e#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::e#2 bitmap_line_xdyi::@5/(byte) bitmap_line_xdyi::e#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] )
[98] (byte) bitmap_line_xdyi::y#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::y#2 bitmap_line_xdyi::@5/(byte) bitmap_line_xdyi::y#3 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] )
[99] (byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] )
[100] if((byte) bitmap_line_xdyi::x#2!=(byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] )
to:bitmap_line_xdyi::@return
bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2
[123] return [ ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:35 [ lines::l#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:80 [ lines::l#2 ] )
[101] return [ ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42 [ lines::l#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86 [ lines::l#2 ] )
to:@return
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@10 bitmap_line::@6
[124] (byte) bitmap_line_ydxd::y1#6 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::y1#1 bitmap_line::@6/(byte) bitmap_line_ydxd::y1#0 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[124] (byte) bitmap_line_ydxd::yd#5 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::yd#1 bitmap_line::@6/(byte) bitmap_line_ydxd::yd#0 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[124] (byte) bitmap_line_ydxd::y#7 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::y#1 bitmap_line::@6/(byte) bitmap_line_ydxd::y#0 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[124] (byte) bitmap_line_ydxd::x#5 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::x#1 bitmap_line::@6/(byte) bitmap_line_ydxd::x#0 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[124] (byte) bitmap_line_ydxd::xd#2 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::xd#1 bitmap_line::@6/(byte) bitmap_line_ydxd::xd#0 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[125] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] )
to:bitmap_line_ydxd::@1
bitmap_line_ydxd::@1: scope:[bitmap_line_ydxd] from bitmap_line_ydxd bitmap_line_ydxd::@2
[126] (byte) bitmap_line_ydxd::e#3 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::e#0 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::e#6 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[126] (byte) bitmap_line_ydxd::y#2 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::y#7 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::y#3 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[126] (byte) bitmap_line_ydxd::x#3 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::x#5 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::x#6 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[127] (byte) bitmap_plot::x#3 ← (byte) bitmap_line_ydxd::x#3 [ bitmap_plot::x#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_plot::x#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_plot::x#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[128] (byte) bitmap_plot::y#3 ← (byte) bitmap_line_ydxd::y#2 [ bitmap_plot::x#3 bitmap_plot::y#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_plot::x#3 bitmap_plot::y#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_plot::x#3 bitmap_plot::y#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[129] call bitmap_plot param-assignment [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
to:bitmap_line_ydxd::@5
bitmap_line_ydxd::@5: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@1
[130] (byte) bitmap_line_ydxd::y#3 ← ++ (byte) bitmap_line_ydxd::y#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::e#3 bitmap_line_ydxd::y#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::e#3 bitmap_line_ydxd::y#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::e#3 bitmap_line_ydxd::y#3 ] )
[131] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] )
[132] if((byte) bitmap_line_ydxd::yd#5>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] )
to:bitmap_line_ydxd::@3
bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@5
[133] (byte) bitmap_line_ydxd::x#2 ← -- (byte) bitmap_line_ydxd::x#3 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] )
[134] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (byte) bitmap_line_ydxd::yd#5 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] )
to:bitmap_line_ydxd::@2
bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap_line_ydxd::@5
[135] (byte) bitmap_line_ydxd::e#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::e#2 bitmap_line_ydxd::@5/(byte) bitmap_line_ydxd::e#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] )
[135] (byte) bitmap_line_ydxd::x#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::x#2 bitmap_line_ydxd::@5/(byte) bitmap_line_ydxd::x#3 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] )
[136] (byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6 ← (byte) bitmap_line_ydxd::y1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] )
[137] if((byte) bitmap_line_ydxd::y#3!=(byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] )
to:bitmap_line_ydxd::@return
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
[138] return [ ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:56 [ lines::l#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:72 [ lines::l#2 ] )
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
[102] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 ) [ bitmap_plot::x#4 bitmap_plot::y#4 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] )
[102] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 ) [ bitmap_plot::x#4 bitmap_plot::y#4 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] )
[103] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] )
[104] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] )
[105] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::$0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] )
[106] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] )
[107] *((byte*)(word~) bitmap_plot::$0) ← (byte~) bitmap_plot::$1 [ ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[108] return [ ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:42::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyi:86::bitmap_plot:92 [ lines::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80::bitmap_plot:114 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72::bitmap_plot:129 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66::bitmap_plot:144 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
to:@return
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@20 bitmap_line::@24
[139] (byte) bitmap_line_xdyd::x1#6 ← phi( bitmap_line::@20/(byte) bitmap_line_xdyd::x1#0 bitmap_line::@24/(byte) bitmap_line_xdyd::x1#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[139] (byte) bitmap_line_xdyd::xd#5 ← phi( bitmap_line::@20/(byte) bitmap_line_xdyd::xd#0 bitmap_line::@24/(byte) bitmap_line_xdyd::xd#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[139] (byte) bitmap_line_xdyd::y#5 ← phi( bitmap_line::@20/(byte) bitmap_line_xdyd::y#0 bitmap_line::@24/(byte) bitmap_line_xdyd::y#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[139] (byte) bitmap_line_xdyd::x#6 ← phi( bitmap_line::@20/(byte) bitmap_line_xdyd::x#0 bitmap_line::@24/(byte) bitmap_line_xdyd::x#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[139] (byte) bitmap_line_xdyd::yd#2 ← phi( bitmap_line::@20/(byte) bitmap_line_xdyd::yd#0 bitmap_line::@24/(byte) bitmap_line_xdyd::yd#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[140] (byte) bitmap_line_xdyd::e#0 ← (byte) bitmap_line_xdyd::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] )
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@17 bitmap_line::@27
[109] (byte) bitmap_line_ydxi::y1#6 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxi::y1#0 bitmap_line::@27/(byte) bitmap_line_ydxi::y1#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[109] (byte) bitmap_line_ydxi::yd#5 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxi::yd#0 bitmap_line::@27/(byte) bitmap_line_ydxi::yd#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[109] (byte) bitmap_line_ydxi::y#6 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxi::y#0 bitmap_line::@27/(byte) bitmap_line_ydxi::y#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[109] (byte) bitmap_line_ydxi::x#5 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxi::x#0 bitmap_line::@27/(byte) bitmap_line_ydxi::x#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[109] (byte) bitmap_line_ydxi::xd#2 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxi::xd#0 bitmap_line::@27/(byte) bitmap_line_ydxi::xd#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[110] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] )
to:bitmap_line_ydxi::@1
bitmap_line_ydxi::@1: scope:[bitmap_line_ydxi] from bitmap_line_ydxi bitmap_line_ydxi::@2
[111] (byte) bitmap_line_ydxi::e#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::e#0 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::e#6 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[111] (byte) bitmap_line_ydxi::y#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::y#6 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::y#2 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[111] (byte) bitmap_line_ydxi::x#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::x#5 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::x#6 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[112] (byte) bitmap_plot::x#2 ← (byte) bitmap_line_ydxi::x#3 [ bitmap_plot::x#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_plot::x#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_plot::x#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[113] (byte) bitmap_plot::y#2 ← (byte) bitmap_line_ydxi::y#3 [ bitmap_plot::x#2 bitmap_plot::y#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_plot::x#2 bitmap_plot::y#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_plot::x#2 bitmap_plot::y#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[114] call bitmap_plot param-assignment [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
to:bitmap_line_ydxi::@5
bitmap_line_ydxi::@5: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@1
[115] (byte) bitmap_line_ydxi::y#2 ← ++ (byte) bitmap_line_ydxi::y#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::e#3 bitmap_line_ydxi::y#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::e#3 bitmap_line_ydxi::y#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::e#3 bitmap_line_ydxi::y#2 ] )
[116] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] )
[117] if((byte) bitmap_line_ydxi::yd#5>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] )
to:bitmap_line_ydxi::@3
bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@5
[118] (byte) bitmap_line_ydxi::x#2 ← ++ (byte) bitmap_line_ydxi::x#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 bitmap_line_ydxi::x#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 bitmap_line_ydxi::x#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 bitmap_line_ydxi::x#2 ] )
[119] (byte) bitmap_line_ydxi::e#2 ← (byte) bitmap_line_ydxi::e#1 - (byte) bitmap_line_ydxi::yd#5 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] )
to:bitmap_line_ydxi::@2
bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap_line_ydxi::@5
[120] (byte) bitmap_line_ydxi::e#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::e#2 bitmap_line_ydxi::@5/(byte) bitmap_line_ydxi::e#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] )
[120] (byte) bitmap_line_ydxi::x#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::x#2 bitmap_line_ydxi::@5/(byte) bitmap_line_ydxi::x#3 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] )
[121] (byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6 ← (byte) bitmap_line_ydxi::y1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] )
[122] if((byte) bitmap_line_ydxi::y#2!=(byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] )
to:bitmap_line_ydxi::@return
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
[123] return [ ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:35 [ lines::l#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxi:80 [ lines::l#2 ] )
to:@return
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@10 bitmap_line::@6
[124] (byte) bitmap_line_xdyd::x1#6 ← phi( bitmap_line::@10/(byte) bitmap_line_xdyd::x1#1 bitmap_line::@6/(byte) bitmap_line_xdyd::x1#0 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[124] (byte) bitmap_line_xdyd::xd#5 ← phi( bitmap_line::@10/(byte) bitmap_line_xdyd::xd#1 bitmap_line::@6/(byte) bitmap_line_xdyd::xd#0 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[124] (byte) bitmap_line_xdyd::y#5 ← phi( bitmap_line::@10/(byte) bitmap_line_xdyd::y#1 bitmap_line::@6/(byte) bitmap_line_xdyd::y#0 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[124] (byte) bitmap_line_xdyd::x#6 ← phi( bitmap_line::@10/(byte) bitmap_line_xdyd::x#1 bitmap_line::@6/(byte) bitmap_line_xdyd::x#0 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[124] (byte) bitmap_line_xdyd::yd#2 ← phi( bitmap_line::@10/(byte) bitmap_line_xdyd::yd#1 bitmap_line::@6/(byte) bitmap_line_xdyd::yd#0 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[125] (byte) bitmap_line_xdyd::e#0 ← (byte) bitmap_line_xdyd::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] )
to:bitmap_line_xdyd::@1
bitmap_line_xdyd::@1: scope:[bitmap_line_xdyd] from bitmap_line_xdyd bitmap_line_xdyd::@2
[141] (byte) bitmap_line_xdyd::e#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::e#0 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::e#6 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[141] (byte) bitmap_line_xdyd::y#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::y#5 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::y#6 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[141] (byte) bitmap_line_xdyd::x#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::x#6 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::x#2 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[142] (byte) bitmap_plot::x#1 ← (byte) bitmap_line_xdyd::x#3 [ bitmap_plot::x#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_plot::x#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_plot::x#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[143] (byte) bitmap_plot::y#1 ← (byte) bitmap_line_xdyd::y#3 [ bitmap_plot::x#1 bitmap_plot::y#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_plot::x#1 bitmap_plot::y#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_plot::x#1 bitmap_plot::y#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[144] call bitmap_plot param-assignment [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[126] (byte) bitmap_line_xdyd::e#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::e#0 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::e#6 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[126] (byte) bitmap_line_xdyd::y#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::y#5 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::y#6 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[126] (byte) bitmap_line_xdyd::x#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::x#6 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::x#2 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[127] (byte) bitmap_plot::x#1 ← (byte) bitmap_line_xdyd::x#3 [ bitmap_plot::x#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_plot::x#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_plot::x#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[128] (byte) bitmap_plot::y#1 ← (byte) bitmap_line_xdyd::y#3 [ bitmap_plot::x#1 bitmap_plot::y#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_plot::x#1 bitmap_plot::y#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_plot::x#1 bitmap_plot::y#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[129] call bitmap_plot param-assignment [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
to:bitmap_line_xdyd::@5
bitmap_line_xdyd::@5: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@1
[145] (byte) bitmap_line_xdyd::x#2 ← ++ (byte) bitmap_line_xdyd::x#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::x#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::x#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::x#2 ] )
[146] (byte) bitmap_line_xdyd::e#1 ← (byte) bitmap_line_xdyd::e#3 + (byte) bitmap_line_xdyd::yd#2 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] )
[147] if((byte) bitmap_line_xdyd::xd#5>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] )
[130] (byte) bitmap_line_xdyd::x#2 ← ++ (byte) bitmap_line_xdyd::x#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::x#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::x#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::x#2 ] )
[131] (byte) bitmap_line_xdyd::e#1 ← (byte) bitmap_line_xdyd::e#3 + (byte) bitmap_line_xdyd::yd#2 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] )
[132] if((byte) bitmap_line_xdyd::xd#5>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] )
to:bitmap_line_xdyd::@3
bitmap_line_xdyd::@3: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@5
[148] (byte) bitmap_line_xdyd::y#2 ← -- (byte) bitmap_line_xdyd::y#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] )
[149] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - (byte) bitmap_line_xdyd::xd#5 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] )
[133] (byte) bitmap_line_xdyd::y#2 ← -- (byte) bitmap_line_xdyd::y#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] )
[134] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - (byte) bitmap_line_xdyd::xd#5 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] )
to:bitmap_line_xdyd::@2
bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap_line_xdyd::@5
[150] (byte) bitmap_line_xdyd::e#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::e#2 bitmap_line_xdyd::@5/(byte) bitmap_line_xdyd::e#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] )
[150] (byte) bitmap_line_xdyd::y#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::y#2 bitmap_line_xdyd::@5/(byte) bitmap_line_xdyd::y#3 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] )
[151] (byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6 ← (byte) bitmap_line_xdyd::x1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] )
[152] if((byte) bitmap_line_xdyd::x#2!=(byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] )
[135] (byte) bitmap_line_xdyd::e#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::e#2 bitmap_line_xdyd::@5/(byte) bitmap_line_xdyd::e#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] )
[135] (byte) bitmap_line_xdyd::y#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::y#2 bitmap_line_xdyd::@5/(byte) bitmap_line_xdyd::y#3 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] )
[136] (byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6 ← (byte) bitmap_line_xdyd::x1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] )
[137] if((byte) bitmap_line_xdyd::x#2!=(byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] )
to:bitmap_line_xdyd::@return
bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2
[153] return [ ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:50 [ lines::l#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:66 [ lines::l#2 ] )
[138] return [ ] ( main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:56 [ lines::l#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_xdyd:72 [ lines::l#2 ] )
to:@return
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@20 bitmap_line::@24
[139] (byte) bitmap_line_ydxd::y1#6 ← phi( bitmap_line::@20/(byte) bitmap_line_ydxd::y1#0 bitmap_line::@24/(byte) bitmap_line_ydxd::y1#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[139] (byte) bitmap_line_ydxd::yd#5 ← phi( bitmap_line::@20/(byte) bitmap_line_ydxd::yd#0 bitmap_line::@24/(byte) bitmap_line_ydxd::yd#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[139] (byte) bitmap_line_ydxd::y#7 ← phi( bitmap_line::@20/(byte) bitmap_line_ydxd::y#0 bitmap_line::@24/(byte) bitmap_line_ydxd::y#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[139] (byte) bitmap_line_ydxd::x#5 ← phi( bitmap_line::@20/(byte) bitmap_line_ydxd::x#0 bitmap_line::@24/(byte) bitmap_line_ydxd::x#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[139] (byte) bitmap_line_ydxd::xd#2 ← phi( bitmap_line::@20/(byte) bitmap_line_ydxd::xd#0 bitmap_line::@24/(byte) bitmap_line_ydxd::xd#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[140] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] )
to:bitmap_line_ydxd::@1
bitmap_line_ydxd::@1: scope:[bitmap_line_ydxd] from bitmap_line_ydxd bitmap_line_ydxd::@2
[141] (byte) bitmap_line_ydxd::e#3 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::e#0 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::e#6 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[141] (byte) bitmap_line_ydxd::y#2 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::y#7 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::y#3 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[141] (byte) bitmap_line_ydxd::x#3 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::x#5 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::x#6 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[142] (byte) bitmap_plot::x#3 ← (byte) bitmap_line_ydxd::x#3 [ bitmap_plot::x#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_plot::x#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_plot::x#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[143] (byte) bitmap_plot::y#3 ← (byte) bitmap_line_ydxd::y#2 [ bitmap_plot::x#3 bitmap_plot::y#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_plot::x#3 bitmap_plot::y#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_plot::x#3 bitmap_plot::y#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[144] call bitmap_plot param-assignment [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
to:bitmap_line_ydxd::@5
bitmap_line_ydxd::@5: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@1
[145] (byte) bitmap_line_ydxd::y#3 ← ++ (byte) bitmap_line_ydxd::y#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::e#3 bitmap_line_ydxd::y#3 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::e#3 bitmap_line_ydxd::y#3 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::e#3 bitmap_line_ydxd::y#3 ] )
[146] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] )
[147] if((byte) bitmap_line_ydxd::yd#5>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] )
to:bitmap_line_ydxd::@3
bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@5
[148] (byte) bitmap_line_ydxd::x#2 ← -- (byte) bitmap_line_ydxd::x#3 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] )
[149] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (byte) bitmap_line_ydxd::yd#5 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] )
to:bitmap_line_ydxd::@2
bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap_line_ydxd::@5
[150] (byte) bitmap_line_ydxd::e#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::e#2 bitmap_line_ydxd::@5/(byte) bitmap_line_ydxd::e#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] )
[150] (byte) bitmap_line_ydxd::x#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::x#2 bitmap_line_ydxd::@5/(byte) bitmap_line_ydxd::x#3 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] )
[151] (byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6 ← (byte) bitmap_line_ydxd::y1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] )
[152] if((byte) bitmap_line_ydxd::y#3!=(byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] )
to:bitmap_line_ydxd::@return
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
[153] return [ ] ( main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:50 [ lines::l#2 ] main:2::lines:14::bitmap_line:21::bitmap_line_ydxd:66 [ lines::l#2 ] )
to:@return
init_screen: scope:[init_screen] from main::@4
[154] phi() [ ] ( main:2::init_screen:12 [ ] )

File diff suppressed because it is too large Load Diff

@ -82,21 +82,21 @@
(label) bitmap_line::@9
(label) bitmap_line::@return
(byte) bitmap_line::x0
(byte) bitmap_line::x0#0 x0 zp ZP_BYTE:7 5.173913043478264
(byte) bitmap_line::x0#0 x0 zp ZP_BYTE:5 5.173913043478264
(byte) bitmap_line::x1
(byte) bitmap_line::x1#0 x1 zp ZP_BYTE:8 5.409090909090908
(byte) bitmap_line::xd
(byte) bitmap_line::xd#0 xd zp ZP_BYTE:3 0.7
(byte) bitmap_line::xd#1 xd zp ZP_BYTE:3 0.7
(byte) bitmap_line::xd#0 xd zp ZP_BYTE:4 0.7
(byte) bitmap_line::xd#1 xd zp ZP_BYTE:4 0.7
(byte) bitmap_line::y0
(byte) bitmap_line::y0#0 y0 zp ZP_BYTE:5 5.952380952380948
(byte) bitmap_line::y0#0 y0 zp ZP_BYTE:6 5.952380952380948
(byte) bitmap_line::y1
(byte) bitmap_line::y1#0 reg byte y 6.249999999999996
(byte) bitmap_line::yd
(byte) bitmap_line::yd#0 yd zp ZP_BYTE:4 0.8888888888888888
(byte) bitmap_line::yd#1 yd zp ZP_BYTE:4 0.8888888888888888
(byte) bitmap_line::yd#10 yd zp ZP_BYTE:4 0.8888888888888888
(byte) bitmap_line::yd#3 yd zp ZP_BYTE:4 0.8888888888888888
(byte) bitmap_line::yd#0 yd zp ZP_BYTE:3 0.8888888888888888
(byte) bitmap_line::yd#1 yd zp ZP_BYTE:3 0.8888888888888888
(byte) bitmap_line::yd#10 yd zp ZP_BYTE:3 0.8888888888888888
(byte) bitmap_line::yd#3 yd zp ZP_BYTE:3 0.8888888888888888
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6 $6 zp ZP_BYTE:7 2002.0
(label) bitmap_line_xdyd::@1
@ -105,11 +105,11 @@
(label) bitmap_line_xdyd::@5
(label) bitmap_line_xdyd::@return
(byte) bitmap_line_xdyd::e
(byte) bitmap_line_xdyd::e#0 e zp ZP_BYTE:6 4.0
(byte) bitmap_line_xdyd::e#1 e zp ZP_BYTE:6 1334.6666666666667
(byte) bitmap_line_xdyd::e#2 e zp ZP_BYTE:6 2002.0
(byte) bitmap_line_xdyd::e#3 e zp ZP_BYTE:6 400.79999999999995
(byte) bitmap_line_xdyd::e#6 e zp ZP_BYTE:6 1001.0
(byte) bitmap_line_xdyd::e#0 e zp ZP_BYTE:5 4.0
(byte) bitmap_line_xdyd::e#1 e zp ZP_BYTE:5 1334.6666666666667
(byte) bitmap_line_xdyd::e#2 e zp ZP_BYTE:5 2002.0
(byte) bitmap_line_xdyd::e#3 e zp ZP_BYTE:5 400.79999999999995
(byte) bitmap_line_xdyd::e#6 e zp ZP_BYTE:5 1001.0
(byte) bitmap_line_xdyd::x
(byte) bitmap_line_xdyd::x#0 reg byte x 0.8
(byte) bitmap_line_xdyd::x#1 reg byte x 0.8
@ -121,20 +121,20 @@
(byte) bitmap_line_xdyd::x1#1 x1 zp ZP_BYTE:8 1.3333333333333333
(byte) bitmap_line_xdyd::x1#6 x1 zp ZP_BYTE:8 71.78571428571429
(byte) bitmap_line_xdyd::xd
(byte) bitmap_line_xdyd::xd#0 xd zp ZP_BYTE:3 2.0
(byte) bitmap_line_xdyd::xd#1 xd zp ZP_BYTE:3 2.0
(byte) bitmap_line_xdyd::xd#5 xd zp ZP_BYTE:3 143.28571428571428
(byte) bitmap_line_xdyd::xd#0 xd zp ZP_BYTE:4 2.0
(byte) bitmap_line_xdyd::xd#1 xd zp ZP_BYTE:4 2.0
(byte) bitmap_line_xdyd::xd#5 xd zp ZP_BYTE:4 143.28571428571428
(byte) bitmap_line_xdyd::y
(byte) bitmap_line_xdyd::y#0 y zp ZP_BYTE:5 1.0
(byte) bitmap_line_xdyd::y#1 y zp ZP_BYTE:5 1.0
(byte) bitmap_line_xdyd::y#2 y zp ZP_BYTE:5 1001.0
(byte) bitmap_line_xdyd::y#3 y zp ZP_BYTE:5 572.2857142857142
(byte) bitmap_line_xdyd::y#5 y zp ZP_BYTE:5 3.0
(byte) bitmap_line_xdyd::y#6 y zp ZP_BYTE:5 1001.0
(byte) bitmap_line_xdyd::y#0 y zp ZP_BYTE:6 1.0
(byte) bitmap_line_xdyd::y#1 y zp ZP_BYTE:6 1.0
(byte) bitmap_line_xdyd::y#2 y zp ZP_BYTE:6 1001.0
(byte) bitmap_line_xdyd::y#3 y zp ZP_BYTE:6 572.2857142857142
(byte) bitmap_line_xdyd::y#5 y zp ZP_BYTE:6 3.0
(byte) bitmap_line_xdyd::y#6 y zp ZP_BYTE:6 1001.0
(byte) bitmap_line_xdyd::yd
(byte) bitmap_line_xdyd::yd#0 yd zp ZP_BYTE:4 4.0
(byte) bitmap_line_xdyd::yd#1 yd zp ZP_BYTE:4 4.0
(byte) bitmap_line_xdyd::yd#2 yd zp ZP_BYTE:4 71.92857142857143
(byte) bitmap_line_xdyd::yd#0 yd zp ZP_BYTE:3 4.0
(byte) bitmap_line_xdyd::yd#1 yd zp ZP_BYTE:3 4.0
(byte) bitmap_line_xdyd::yd#2 yd zp ZP_BYTE:3 71.92857142857143
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6 $6 zp ZP_BYTE:8 2002.0
(label) bitmap_line_xdyi::@1
@ -143,11 +143,11 @@
(label) bitmap_line_xdyi::@5
(label) bitmap_line_xdyi::@return
(byte) bitmap_line_xdyi::e
(byte) bitmap_line_xdyi::e#0 e zp ZP_BYTE:6 4.0
(byte) bitmap_line_xdyi::e#1 e zp ZP_BYTE:6 1334.6666666666667
(byte) bitmap_line_xdyi::e#2 e zp ZP_BYTE:6 2002.0
(byte) bitmap_line_xdyi::e#3 e zp ZP_BYTE:6 400.79999999999995
(byte) bitmap_line_xdyi::e#6 e zp ZP_BYTE:6 1001.0
(byte) bitmap_line_xdyi::e#0 e zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyi::e#1 e zp ZP_BYTE:7 1334.6666666666667
(byte) bitmap_line_xdyi::e#2 e zp ZP_BYTE:7 2002.0
(byte) bitmap_line_xdyi::e#3 e zp ZP_BYTE:7 400.79999999999995
(byte) bitmap_line_xdyi::e#6 e zp ZP_BYTE:7 1001.0
(byte) bitmap_line_xdyi::x
(byte) bitmap_line_xdyi::x#0 reg byte x 0.8
(byte) bitmap_line_xdyi::x#1 reg byte x 0.8
@ -155,24 +155,24 @@
(byte) bitmap_line_xdyi::x#3 reg byte x 751.25
(byte) bitmap_line_xdyi::x#6 reg byte x 3.0
(byte) bitmap_line_xdyi::x1
(byte) bitmap_line_xdyi::x1#0 x1 zp ZP_BYTE:7 1.3333333333333333
(byte) bitmap_line_xdyi::x1#1 x1 zp ZP_BYTE:7 1.3333333333333333
(byte) bitmap_line_xdyi::x1#6 x1 zp ZP_BYTE:7 71.78571428571429
(byte) bitmap_line_xdyi::x1#0 x1 zp ZP_BYTE:5 1.3333333333333333
(byte) bitmap_line_xdyi::x1#1 x1 zp ZP_BYTE:5 1.3333333333333333
(byte) bitmap_line_xdyi::x1#6 x1 zp ZP_BYTE:5 71.78571428571429
(byte) bitmap_line_xdyi::xd
(byte) bitmap_line_xdyi::xd#0 xd zp ZP_BYTE:3 2.0
(byte) bitmap_line_xdyi::xd#1 xd zp ZP_BYTE:3 2.0
(byte) bitmap_line_xdyi::xd#5 xd zp ZP_BYTE:3 143.28571428571428
(byte) bitmap_line_xdyi::xd#0 xd zp ZP_BYTE:4 2.0
(byte) bitmap_line_xdyi::xd#1 xd zp ZP_BYTE:4 2.0
(byte) bitmap_line_xdyi::xd#5 xd zp ZP_BYTE:4 143.28571428571428
(byte) bitmap_line_xdyi::y
(byte) bitmap_line_xdyi::y#0 y zp ZP_BYTE:5 1.0
(byte) bitmap_line_xdyi::y#1 y zp ZP_BYTE:5 1.0
(byte) bitmap_line_xdyi::y#2 y zp ZP_BYTE:5 1001.0
(byte) bitmap_line_xdyi::y#3 y zp ZP_BYTE:5 572.2857142857142
(byte) bitmap_line_xdyi::y#5 y zp ZP_BYTE:5 3.0
(byte) bitmap_line_xdyi::y#6 y zp ZP_BYTE:5 1001.0
(byte) bitmap_line_xdyi::y#0 y zp ZP_BYTE:6 1.0
(byte) bitmap_line_xdyi::y#1 y zp ZP_BYTE:6 1.0
(byte) bitmap_line_xdyi::y#2 y zp ZP_BYTE:6 1001.0
(byte) bitmap_line_xdyi::y#3 y zp ZP_BYTE:6 572.2857142857142
(byte) bitmap_line_xdyi::y#5 y zp ZP_BYTE:6 3.0
(byte) bitmap_line_xdyi::y#6 y zp ZP_BYTE:6 1001.0
(byte) bitmap_line_xdyi::yd
(byte) bitmap_line_xdyi::yd#0 yd zp ZP_BYTE:4 4.0
(byte) bitmap_line_xdyi::yd#1 yd zp ZP_BYTE:4 4.0
(byte) bitmap_line_xdyi::yd#2 yd zp ZP_BYTE:4 71.92857142857143
(byte) bitmap_line_xdyi::yd#0 yd zp ZP_BYTE:3 4.0
(byte) bitmap_line_xdyi::yd#1 yd zp ZP_BYTE:3 4.0
(byte) bitmap_line_xdyi::yd#2 yd zp ZP_BYTE:3 71.92857142857143
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6 reg byte y 2002.0
(label) bitmap_line_ydxd::@1
@ -181,11 +181,11 @@
(label) bitmap_line_ydxd::@5
(label) bitmap_line_ydxd::@return
(byte) bitmap_line_ydxd::e
(byte) bitmap_line_ydxd::e#0 e zp ZP_BYTE:7 4.0
(byte) bitmap_line_ydxd::e#1 e zp ZP_BYTE:7 1334.6666666666667
(byte) bitmap_line_ydxd::e#2 e zp ZP_BYTE:7 2002.0
(byte) bitmap_line_ydxd::e#3 e zp ZP_BYTE:7 400.79999999999995
(byte) bitmap_line_ydxd::e#6 e zp ZP_BYTE:7 1001.0
(byte) bitmap_line_ydxd::e#0 e zp ZP_BYTE:5 4.0
(byte) bitmap_line_ydxd::e#1 e zp ZP_BYTE:5 1334.6666666666667
(byte) bitmap_line_ydxd::e#2 e zp ZP_BYTE:5 2002.0
(byte) bitmap_line_ydxd::e#3 e zp ZP_BYTE:5 400.79999999999995
(byte) bitmap_line_ydxd::e#6 e zp ZP_BYTE:5 1001.0
(byte) bitmap_line_ydxd::x
(byte) bitmap_line_ydxd::x#0 reg byte x 1.0
(byte) bitmap_line_ydxd::x#1 reg byte x 1.0
@ -194,23 +194,23 @@
(byte) bitmap_line_ydxd::x#5 reg byte x 3.0
(byte) bitmap_line_ydxd::x#6 reg byte x 1001.0
(byte) bitmap_line_ydxd::xd
(byte) bitmap_line_ydxd::xd#0 xd zp ZP_BYTE:3 4.0
(byte) bitmap_line_ydxd::xd#1 xd zp ZP_BYTE:3 4.0
(byte) bitmap_line_ydxd::xd#2 xd zp ZP_BYTE:3 71.92857142857143
(byte) bitmap_line_ydxd::xd#0 xd zp ZP_BYTE:4 4.0
(byte) bitmap_line_ydxd::xd#1 xd zp ZP_BYTE:4 4.0
(byte) bitmap_line_ydxd::xd#2 xd zp ZP_BYTE:4 71.92857142857143
(byte) bitmap_line_ydxd::y
(byte) bitmap_line_ydxd::y#0 y zp ZP_BYTE:6 0.8
(byte) bitmap_line_ydxd::y#1 y zp ZP_BYTE:6 0.8
(byte) bitmap_line_ydxd::y#2 y zp ZP_BYTE:6 751.25
(byte) bitmap_line_ydxd::y#3 y zp ZP_BYTE:6 375.375
(byte) bitmap_line_ydxd::y#7 y zp ZP_BYTE:6 3.0
(byte) bitmap_line_ydxd::y#0 y zp ZP_BYTE:7 0.8
(byte) bitmap_line_ydxd::y#1 y zp ZP_BYTE:7 0.8
(byte) bitmap_line_ydxd::y#2 y zp ZP_BYTE:7 751.25
(byte) bitmap_line_ydxd::y#3 y zp ZP_BYTE:7 375.375
(byte) bitmap_line_ydxd::y#7 y zp ZP_BYTE:7 3.0
(byte) bitmap_line_ydxd::y1
(byte) bitmap_line_ydxd::y1#0 y1 zp ZP_BYTE:5 1.3333333333333333
(byte) bitmap_line_ydxd::y1#1 y1 zp ZP_BYTE:5 1.3333333333333333
(byte) bitmap_line_ydxd::y1#6 y1 zp ZP_BYTE:5 71.78571428571429
(byte) bitmap_line_ydxd::y1#0 y1 zp ZP_BYTE:6 1.3333333333333333
(byte) bitmap_line_ydxd::y1#1 y1 zp ZP_BYTE:6 1.3333333333333333
(byte) bitmap_line_ydxd::y1#6 y1 zp ZP_BYTE:6 71.78571428571429
(byte) bitmap_line_ydxd::yd
(byte) bitmap_line_ydxd::yd#0 yd zp ZP_BYTE:4 2.0
(byte) bitmap_line_ydxd::yd#1 yd zp ZP_BYTE:4 2.0
(byte) bitmap_line_ydxd::yd#5 yd zp ZP_BYTE:4 143.28571428571428
(byte) bitmap_line_ydxd::yd#0 yd zp ZP_BYTE:3 2.0
(byte) bitmap_line_ydxd::yd#1 yd zp ZP_BYTE:3 2.0
(byte) bitmap_line_ydxd::yd#5 yd zp ZP_BYTE:3 143.28571428571428
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6 reg byte y 2002.0
(label) bitmap_line_ydxi::@1
@ -219,11 +219,11 @@
(label) bitmap_line_ydxi::@5
(label) bitmap_line_ydxi::@return
(byte) bitmap_line_ydxi::e
(byte) bitmap_line_ydxi::e#0 e zp ZP_BYTE:7 4.0
(byte) bitmap_line_ydxi::e#1 e zp ZP_BYTE:7 1334.6666666666667
(byte) bitmap_line_ydxi::e#2 e zp ZP_BYTE:7 2002.0
(byte) bitmap_line_ydxi::e#3 e zp ZP_BYTE:7 400.79999999999995
(byte) bitmap_line_ydxi::e#6 e zp ZP_BYTE:7 1001.0
(byte) bitmap_line_ydxi::e#0 e zp ZP_BYTE:5 4.0
(byte) bitmap_line_ydxi::e#1 e zp ZP_BYTE:5 1334.6666666666667
(byte) bitmap_line_ydxi::e#2 e zp ZP_BYTE:5 2002.0
(byte) bitmap_line_ydxi::e#3 e zp ZP_BYTE:5 400.79999999999995
(byte) bitmap_line_ydxi::e#6 e zp ZP_BYTE:5 1001.0
(byte) bitmap_line_ydxi::x
(byte) bitmap_line_ydxi::x#0 reg byte x 1.0
(byte) bitmap_line_ydxi::x#1 reg byte x 1.0
@ -232,23 +232,23 @@
(byte) bitmap_line_ydxi::x#5 reg byte x 3.0
(byte) bitmap_line_ydxi::x#6 reg byte x 1001.0
(byte) bitmap_line_ydxi::xd
(byte) bitmap_line_ydxi::xd#0 xd zp ZP_BYTE:3 4.0
(byte) bitmap_line_ydxi::xd#1 xd zp ZP_BYTE:3 4.0
(byte) bitmap_line_ydxi::xd#2 xd zp ZP_BYTE:3 71.92857142857143
(byte) bitmap_line_ydxi::xd#0 xd zp ZP_BYTE:4 4.0
(byte) bitmap_line_ydxi::xd#1 xd zp ZP_BYTE:4 4.0
(byte) bitmap_line_ydxi::xd#2 xd zp ZP_BYTE:4 71.92857142857143
(byte) bitmap_line_ydxi::y
(byte) bitmap_line_ydxi::y#0 y zp ZP_BYTE:6 0.8
(byte) bitmap_line_ydxi::y#1 y zp ZP_BYTE:6 0.8
(byte) bitmap_line_ydxi::y#2 y zp ZP_BYTE:6 375.375
(byte) bitmap_line_ydxi::y#3 y zp ZP_BYTE:6 751.25
(byte) bitmap_line_ydxi::y#6 y zp ZP_BYTE:6 3.0
(byte) bitmap_line_ydxi::y#0 y zp ZP_BYTE:7 0.8
(byte) bitmap_line_ydxi::y#1 y zp ZP_BYTE:7 0.8
(byte) bitmap_line_ydxi::y#2 y zp ZP_BYTE:7 375.375
(byte) bitmap_line_ydxi::y#3 y zp ZP_BYTE:7 751.25
(byte) bitmap_line_ydxi::y#6 y zp ZP_BYTE:7 3.0
(byte) bitmap_line_ydxi::y1
(byte) bitmap_line_ydxi::y1#0 y1 zp ZP_BYTE:5 1.3333333333333333
(byte) bitmap_line_ydxi::y1#1 y1 zp ZP_BYTE:5 1.3333333333333333
(byte) bitmap_line_ydxi::y1#6 y1 zp ZP_BYTE:5 71.78571428571429
(byte) bitmap_line_ydxi::y1#0 y1 zp ZP_BYTE:6 1.3333333333333333
(byte) bitmap_line_ydxi::y1#1 y1 zp ZP_BYTE:6 1.3333333333333333
(byte) bitmap_line_ydxi::y1#6 y1 zp ZP_BYTE:6 71.78571428571429
(byte) bitmap_line_ydxi::yd
(byte) bitmap_line_ydxi::yd#0 yd zp ZP_BYTE:4 2.0
(byte) bitmap_line_ydxi::yd#1 yd zp ZP_BYTE:4 2.0
(byte) bitmap_line_ydxi::yd#5 yd zp ZP_BYTE:4 143.28571428571428
(byte) bitmap_line_ydxi::yd#0 yd zp ZP_BYTE:3 2.0
(byte) bitmap_line_ydxi::yd#1 yd zp ZP_BYTE:3 2.0
(byte) bitmap_line_ydxi::yd#5 yd zp ZP_BYTE:3 143.28571428571428
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
(word~) bitmap_plot::$0 $0 zp ZP_WORD:9 1.0
(byte~) bitmap_plot::$1 reg byte a 4.0
@ -305,27 +305,27 @@
(label) main::@4
zp ZP_BYTE:2 [ lines::l#2 lines::l#1 bitmap_clear::y#4 bitmap_clear::y#1 bitmap_init::$6 ]
zp ZP_BYTE:3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 bitmap_line::xd#1 bitmap_line::xd#0 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::xd#1 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#1 bitmap_line_ydxd::xd#0 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::xd#1 ]
zp ZP_BYTE:4 [ bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::yd#0 bitmap_line::yd#1 bitmap_line::yd#10 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#0 bitmap_line_xdyi::yd#1 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#1 bitmap_line_ydxd::yd#0 bitmap_line::yd#0 bitmap_line::yd#3 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#0 bitmap_line_xdyd::yd#1 ]
zp ZP_BYTE:5 [ bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::y1#0 bitmap_line::y0#0 bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::y1#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
zp ZP_BYTE:6 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#2 bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
zp ZP_BYTE:7 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::x1#1 bitmap_line::x0#0 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 bitmap_line_xdyd::$6 ]
zp ZP_BYTE:3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 bitmap_line::yd#1 bitmap_line::yd#10 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 bitmap_line::yd#0 bitmap_line::yd#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 ]
zp ZP_BYTE:4 [ bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 bitmap_line::xd#1 bitmap_line::xd#0 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ]
zp ZP_BYTE:5 [ bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 bitmap_line::x0#0 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
reg byte x [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ]
zp ZP_BYTE:6 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line::y0#0 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
zp ZP_BYTE:7 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 bitmap_line_xdyd::$6 ]
reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ]
reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ]
reg byte x [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#2 ]
reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
zp ZP_BYTE:8 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::x1#1 bitmap_line::x1#0 bitmap_line_xdyi::$6 ]
reg byte x [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#2 ]
reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
zp ZP_BYTE:8 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 bitmap_line::x1#0 bitmap_line_xdyi::$6 ]
reg byte x [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
zp ZP_WORD:9 [ init_screen::c#2 init_screen::c#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::$3 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 bitmap_plot::plotter_x#0 bitmap_plot::$0 ]
reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ]
reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ]
reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ]
reg byte y [ bitmap_line::y1#0 ]
reg byte y [ bitmap_line_ydxi::$6 ]
zp ZP_WORD:11 [ bitmap_plot::plotter_y#0 ]
reg byte a [ bitmap_plot::$1 ]
reg byte y [ bitmap_line_ydxi::$6 ]
reg byte y [ bitmap_line_ydxd::$6 ]
reg byte a [ bitmap_init::$0 ]
reg byte a [ bitmap_init::$7 ]

@ -24,28 +24,28 @@ main::@return: scope:[main] from main::@2
to:@return
bool_const_inline: scope:[bool_const_inline] from main::@2
[11] phi() [ ] ( main:2::bool_const_inline:9 [ ] )
to:bool_const_inline::@3
bool_const_inline::@3: scope:[bool_const_inline] from bool_const_inline
to:bool_const_inline::@1
bool_const_inline::@1: scope:[bool_const_inline] from bool_const_inline
[12] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 't' [ ] ( main:2::bool_const_inline:9 [ ] )
to:bool_const_inline::@return
bool_const_inline::@return: scope:[bool_const_inline] from bool_const_inline::@3
bool_const_inline::@return: scope:[bool_const_inline] from bool_const_inline::@1
[13] return [ ] ( main:2::bool_const_inline:9 [ ] )
to:@return
bool_const_vars: scope:[bool_const_vars] from main::@1
[14] phi() [ ] ( main:2::bool_const_vars:7 [ ] )
to:bool_const_vars::@1
bool_const_vars::@1: scope:[bool_const_vars] from bool_const_vars
to:bool_const_vars::@3
bool_const_vars::@3: scope:[bool_const_vars] from bool_const_vars
[15] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'f' [ ] ( main:2::bool_const_vars:7 [ ] )
to:bool_const_vars::@return
bool_const_vars::@return: scope:[bool_const_vars] from bool_const_vars::@1
bool_const_vars::@return: scope:[bool_const_vars] from bool_const_vars::@3
[16] return [ ] ( main:2::bool_const_vars:7 [ ] )
to:@return
bool_const_if: scope:[bool_const_if] from main
[17] phi() [ ] ( main:2::bool_const_if:5 [ ] )
to:bool_const_if::@3
bool_const_if::@3: scope:[bool_const_if] from bool_const_if
to:bool_const_if::@1
bool_const_if::@1: scope:[bool_const_if] from bool_const_if
[18] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 't' [ ] ( main:2::bool_const_if:5 [ ] )
to:bool_const_if::@return
bool_const_if::@return: scope:[bool_const_if] from bool_const_if::@3
bool_const_if::@return: scope:[bool_const_if] from bool_const_if::@1
[19] return [ ] ( main:2::bool_const_if:5 [ ] )
to:@return

@ -1,7 +1,5 @@
PARSING src/test/java/dk/camelot64/kickc/test/kc/bool-const.kc
// A Minimal test of boolean variables.
// Boolean variables are bytes under the hood
// 0: false, !=0 : true
// A Minimal test of boolean constants.
const byte* SCREEN = $400;
@ -55,12 +53,11 @@ main::@return:
endproc // main()
proc (void()) bool_const_if()
(boolean) bool_const_if::b ← true
(boolean~) bool_const_if::$0 ← ! (boolean) bool_const_if::b
if((boolean~) bool_const_if::$0) goto bool_const_if::@1
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 't'
if((boolean) bool_const_if::b) goto bool_const_if::@1
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 'f'
goto bool_const_if::@2
bool_const_if::@1:
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 'f'
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 't'
bool_const_if::@2:
bool_const_if::@return:
return
@ -81,12 +78,11 @@ proc (void()) bool_const_vars()
(boolean~) bool_const_vars::$9 ← (boolean) bool_const_vars::b1 && (boolean~) bool_const_vars::$8
(boolean~) bool_const_vars::$10 ← (boolean~) bool_const_vars::$9 || false
(boolean) bool_const_vars::b ← (boolean~) bool_const_vars::$10
(boolean~) bool_const_vars::$11 ← ! (boolean) bool_const_vars::b
if((boolean~) bool_const_vars::$11) goto bool_const_vars::@1
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 't'
if((boolean) bool_const_vars::b) goto bool_const_vars::@1
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'f'
goto bool_const_vars::@2
bool_const_vars::@1:
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'f'
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 't'
bool_const_vars::@2:
bool_const_vars::@return:
return
@ -102,12 +98,11 @@ proc (void()) bool_const_inline()
(boolean~) bool_const_inline::$6 ← (byte/signed byte/word/signed word/dword/signed dword) 21 < (byte) bool_const_inline::a
(boolean~) bool_const_inline::$7 ← ! (boolean~) bool_const_inline::$6
(boolean~) bool_const_inline::$8 ← (boolean~) bool_const_inline::$5 || (boolean~) bool_const_inline::$7
(boolean~) bool_const_inline::$9 ← ! (boolean~) bool_const_inline::$8
if((boolean~) bool_const_inline::$9) goto bool_const_inline::@1
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 't'
if((boolean~) bool_const_inline::$8) goto bool_const_inline::@1
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 'f'
goto bool_const_inline::@2
bool_const_inline::@1:
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 'f'
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 't'
bool_const_inline::@2:
bool_const_inline::@return:
return
@ -117,7 +112,6 @@ endproc // bool_const_inline()
SYMBOLS
(byte*) SCREEN
(void()) bool_const_if()
(boolean~) bool_const_if::$0
(label) bool_const_if::@1
(label) bool_const_if::@2
(label) bool_const_if::@return
@ -132,7 +126,6 @@ SYMBOLS
(boolean~) bool_const_inline::$6
(boolean~) bool_const_inline::$7
(boolean~) bool_const_inline::$8
(boolean~) bool_const_inline::$9
(label) bool_const_inline::@1
(label) bool_const_inline::@2
(label) bool_const_inline::@return
@ -141,7 +134,6 @@ SYMBOLS
(boolean~) bool_const_vars::$0
(boolean~) bool_const_vars::$1
(boolean~) bool_const_vars::$10
(boolean~) bool_const_vars::$11
(boolean~) bool_const_vars::$2
(boolean~) bool_const_vars::$3
(boolean~) bool_const_vars::$4
@ -180,14 +172,13 @@ main::@return: scope:[main] from main
to:@2
bool_const_if: scope:[bool_const_if] from
(boolean) bool_const_if::b ← true
(boolean~) bool_const_if::$0 ← ! (boolean) bool_const_if::b
if((boolean~) bool_const_if::$0) goto bool_const_if::@1
if((boolean) bool_const_if::b) goto bool_const_if::@1
to:bool_const_if::@3
bool_const_if::@1: scope:[bool_const_if] from bool_const_if bool_const_if::@4
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 'f'
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 't'
to:bool_const_if::@2
bool_const_if::@3: scope:[bool_const_if] from bool_const_if
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 't'
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 'f'
to:bool_const_if::@2
bool_const_if::@2: scope:[bool_const_if] from bool_const_if::@1 bool_const_if::@3
to:bool_const_if::@return
@ -214,14 +205,13 @@ bool_const_vars: scope:[bool_const_vars] from
(boolean~) bool_const_vars::$9 ← (boolean) bool_const_vars::b1 && (boolean~) bool_const_vars::$8
(boolean~) bool_const_vars::$10 ← (boolean~) bool_const_vars::$9 || false
(boolean) bool_const_vars::b ← (boolean~) bool_const_vars::$10
(boolean~) bool_const_vars::$11 ← ! (boolean) bool_const_vars::b
if((boolean~) bool_const_vars::$11) goto bool_const_vars::@1
if((boolean) bool_const_vars::b) goto bool_const_vars::@1
to:bool_const_vars::@3
bool_const_vars::@1: scope:[bool_const_vars] from bool_const_vars bool_const_vars::@4
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'f'
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 't'
to:bool_const_vars::@2
bool_const_vars::@3: scope:[bool_const_vars] from bool_const_vars
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 't'
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'f'
to:bool_const_vars::@2
bool_const_vars::@2: scope:[bool_const_vars] from bool_const_vars::@1 bool_const_vars::@3
to:bool_const_vars::@return
@ -243,14 +233,13 @@ bool_const_inline: scope:[bool_const_inline] from
(boolean~) bool_const_inline::$6 ← (byte/signed byte/word/signed word/dword/signed dword) 21 < (byte) bool_const_inline::a
(boolean~) bool_const_inline::$7 ← ! (boolean~) bool_const_inline::$6
(boolean~) bool_const_inline::$8 ← (boolean~) bool_const_inline::$5 || (boolean~) bool_const_inline::$7
(boolean~) bool_const_inline::$9 ← ! (boolean~) bool_const_inline::$8
if((boolean~) bool_const_inline::$9) goto bool_const_inline::@1
if((boolean~) bool_const_inline::$8) goto bool_const_inline::@1
to:bool_const_inline::@3
bool_const_inline::@1: scope:[bool_const_inline] from bool_const_inline bool_const_inline::@4
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 'f'
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 't'
to:bool_const_inline::@2
bool_const_inline::@3: scope:[bool_const_inline] from bool_const_inline
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 't'
*((byte*) SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 'f'
to:bool_const_inline::@2
bool_const_inline::@2: scope:[bool_const_inline] from bool_const_inline::@1 bool_const_inline::@3
to:bool_const_inline::@return
@ -300,14 +289,13 @@ main::@return: scope:[main] from main::@3
to:@return
bool_const_if: scope:[bool_const_if] from main
(boolean) bool_const_if::b#0 ← true
(boolean~) bool_const_if::$0 ← ! (boolean) bool_const_if::b#0
if((boolean~) bool_const_if::$0) goto bool_const_if::@1
if((boolean) bool_const_if::b#0) goto bool_const_if::@1
to:bool_const_if::@3
bool_const_if::@1: scope:[bool_const_if] from bool_const_if
*((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 'f'
*((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 't'
to:bool_const_if::@return
bool_const_if::@3: scope:[bool_const_if] from bool_const_if
*((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 't'
*((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 'f'
to:bool_const_if::@return
bool_const_if::@return: scope:[bool_const_if] from bool_const_if::@1 bool_const_if::@3
return
@ -328,14 +316,13 @@ bool_const_vars: scope:[bool_const_vars] from main::@1
(boolean~) bool_const_vars::$9 ← (boolean) bool_const_vars::b1#0 && (boolean~) bool_const_vars::$8
(boolean~) bool_const_vars::$10 ← (boolean~) bool_const_vars::$9 || false
(boolean) bool_const_vars::b#0 ← (boolean~) bool_const_vars::$10
(boolean~) bool_const_vars::$11 ← ! (boolean) bool_const_vars::b#0
if((boolean~) bool_const_vars::$11) goto bool_const_vars::@1
if((boolean) bool_const_vars::b#0) goto bool_const_vars::@1
to:bool_const_vars::@3
bool_const_vars::@1: scope:[bool_const_vars] from bool_const_vars
*((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'f'
*((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 't'
to:bool_const_vars::@return
bool_const_vars::@3: scope:[bool_const_vars] from bool_const_vars
*((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 't'
*((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'f'
to:bool_const_vars::@return
bool_const_vars::@return: scope:[bool_const_vars] from bool_const_vars::@1 bool_const_vars::@3
return
@ -351,14 +338,13 @@ bool_const_inline: scope:[bool_const_inline] from main::@2
(boolean~) bool_const_inline::$6 ← (byte/signed byte/word/signed word/dword/signed dword) 21 < (byte) bool_const_inline::a#0
(boolean~) bool_const_inline::$7 ← ! (boolean~) bool_const_inline::$6
(boolean~) bool_const_inline::$8 ← (boolean~) bool_const_inline::$5 || (boolean~) bool_const_inline::$7
(boolean~) bool_const_inline::$9 ← ! (boolean~) bool_const_inline::$8
if((boolean~) bool_const_inline::$9) goto bool_const_inline::@1
if((boolean~) bool_const_inline::$8) goto bool_const_inline::@1
to:bool_const_inline::@3
bool_const_inline::@1: scope:[bool_const_inline] from bool_const_inline
*((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 'f'
*((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 't'
to:bool_const_inline::@return
bool_const_inline::@3: scope:[bool_const_inline] from bool_const_inline
*((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 't'
*((byte*) SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 'f'
to:bool_const_inline::@return
bool_const_inline::@return: scope:[bool_const_inline] from bool_const_inline::@1 bool_const_inline::@3
return
@ -378,7 +364,6 @@ SYMBOL TABLE SSA
(byte*) SCREEN
(byte*) SCREEN#0
(void()) bool_const_if()
(boolean~) bool_const_if::$0
(label) bool_const_if::@1
(label) bool_const_if::@3
(label) bool_const_if::@return
@ -394,7 +379,6 @@ SYMBOL TABLE SSA
(boolean~) bool_const_inline::$6
(boolean~) bool_const_inline::$7
(boolean~) bool_const_inline::$8
(boolean~) bool_const_inline::$9
(label) bool_const_inline::@1
(label) bool_const_inline::@3
(label) bool_const_inline::@return
@ -404,7 +388,6 @@ SYMBOL TABLE SSA
(boolean~) bool_const_vars::$0
(boolean~) bool_const_vars::$1
(boolean~) bool_const_vars::$10
(boolean~) bool_const_vars::$11
(boolean~) bool_const_vars::$2
(boolean~) bool_const_vars::$3
(boolean~) bool_const_vars::$4
@ -448,7 +431,6 @@ Constant (const signed byte/signed word/signed dword) bool_const_vars::$5 = -8
Constant (const byte) bool_const_inline::a#0 = 23
Constant (const signed byte/signed word/signed dword) bool_const_inline::$1 = -8
Succesful SSA optimization Pass2ConstantIdentification
Constant (const boolean) bool_const_if::$0 = !bool_const_if::b#0
Constant (const boolean) bool_const_vars::$0 = bool_const_vars::a#0==15
Constant (const boolean) bool_const_vars::$2 = 21>=bool_const_vars::a#0
Constant (const boolean) bool_const_vars::$4 = bool_const_vars::a#0!=44
@ -469,9 +451,6 @@ Constant (const boolean) bool_const_vars::$9 = bool_const_vars::b1#0&&bool_const
Constant (const boolean) bool_const_inline::$8 = bool_const_inline::$5||bool_const_inline::$7
Succesful SSA optimization Pass2ConstantIdentification
Constant (const boolean) bool_const_vars::b#0 = bool_const_vars::$9||false
Constant (const boolean) bool_const_inline::$9 = !bool_const_inline::$8
Succesful SSA optimization Pass2ConstantIdentification
Constant (const boolean) bool_const_vars::$11 = !bool_const_vars::b#0
Succesful SSA optimization Pass2ConstantIdentification
Consolidated array index constant in *(SCREEN#0+0)
Consolidated array index constant in *(SCREEN#0+0)
@ -480,18 +459,10 @@ Consolidated array index constant in *(SCREEN#0+1)
Consolidated array index constant in *(SCREEN#0+2)
Consolidated array index constant in *(SCREEN#0+2)
Succesful SSA optimization Pass2ConstantAdditionElimination
if() condition always false - eliminating if if((const boolean) bool_const_if::$0) goto bool_const_if::@1
if() condition always true - replacing block destination if((const boolean) bool_const_vars::$11) goto bool_const_vars::@1
if() condition always false - eliminating if if((const boolean) bool_const_inline::$9) goto bool_const_inline::@1
if() condition always true - replacing block destination if((const boolean) bool_const_if::b#0) goto bool_const_if::@1
if() condition always false - eliminating if((const boolean) bool_const_vars::b#0) goto bool_const_vars::@1
if() condition always true - replacing block destination if((const boolean) bool_const_inline::$8) goto bool_const_inline::@1
Succesful SSA optimization Pass2ConstantIfs
Removing unused block bool_const_if::@1
Removing unused block bool_const_vars::@3
Removing unused block bool_const_inline::@1
Succesful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused constant (const boolean) bool_const_if::$0
Eliminating unused constant (const boolean) bool_const_vars::$11
Eliminating unused constant (const boolean) bool_const_inline::$9
Succesful SSA optimization PassNEliminateUnusedVars
Eliminating unused constant (const boolean) bool_const_if::b#0
Eliminating unused constant (const boolean) bool_const_vars::b#0
Eliminating unused constant (const boolean) bool_const_inline::$8
@ -519,9 +490,13 @@ Succesful SSA optimization PassNEliminateUnusedVars
Eliminating unused constant (const byte) bool_const_vars::a#0
Eliminating unused constant (const signed byte/signed word/signed dword) bool_const_vars::$5
Succesful SSA optimization PassNEliminateUnusedVars
Removing unused block bool_const_if::@3
Removing unused block bool_const_vars::@1
Removing unused block bool_const_inline::@3
Succesful SSA optimization Pass2EliminateUnusedBlocks
OPTIMIZING CONTROL FLOW GRAPH
Block Sequence Planned @begin @4 @end main main::@1 main::@2 main::@return bool_const_inline bool_const_inline::@3 bool_const_inline::@return bool_const_vars bool_const_vars::@1 bool_const_vars::@return bool_const_if bool_const_if::@3 bool_const_if::@return
Block Sequence Planned @begin @4 @end main main::@1 main::@2 main::@return bool_const_inline bool_const_inline::@3 bool_const_inline::@return bool_const_vars bool_const_vars::@1 bool_const_vars::@return bool_const_if bool_const_if::@3 bool_const_if::@return
Block Sequence Planned @begin @4 @end main main::@1 main::@2 main::@return bool_const_inline bool_const_inline::@1 bool_const_inline::@return bool_const_vars bool_const_vars::@3 bool_const_vars::@return bool_const_if bool_const_if::@1 bool_const_if::@return
Block Sequence Planned @begin @4 @end main main::@1 main::@2 main::@return bool_const_inline bool_const_inline::@1 bool_const_inline::@return bool_const_vars bool_const_vars::@3 bool_const_vars::@return bool_const_if bool_const_if::@1 bool_const_if::@return
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @4
Adding NOP phi() at start of @end
@ -538,7 +513,7 @@ Calls in [main] to bool_const_if:5 bool_const_vars:7 bool_const_inline:9
Propagating live ranges...
Created 0 initial phi equivalence classes
Coalesced down to 0 phi equivalence classes
Block Sequence Planned @begin @4 @end main main::@1 main::@2 main::@return bool_const_inline bool_const_inline::@3 bool_const_inline::@return bool_const_vars bool_const_vars::@1 bool_const_vars::@return bool_const_if bool_const_if::@3 bool_const_if::@return
Block Sequence Planned @begin @4 @end main main::@1 main::@2 main::@return bool_const_inline bool_const_inline::@1 bool_const_inline::@return bool_const_vars bool_const_vars::@3 bool_const_vars::@return bool_const_if bool_const_if::@1 bool_const_if::@return
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @4
Adding NOP phi() at start of @end
@ -577,29 +552,29 @@ main::@return: scope:[main] from main::@2
to:@return
bool_const_inline: scope:[bool_const_inline] from main::@2
[11] phi() [ ] ( main:2::bool_const_inline:9 [ ] )
to:bool_const_inline::@3
bool_const_inline::@3: scope:[bool_const_inline] from bool_const_inline
to:bool_const_inline::@1
bool_const_inline::@1: scope:[bool_const_inline] from bool_const_inline
[12] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 't' [ ] ( main:2::bool_const_inline:9 [ ] )
to:bool_const_inline::@return
bool_const_inline::@return: scope:[bool_const_inline] from bool_const_inline::@3
bool_const_inline::@return: scope:[bool_const_inline] from bool_const_inline::@1
[13] return [ ] ( main:2::bool_const_inline:9 [ ] )
to:@return
bool_const_vars: scope:[bool_const_vars] from main::@1
[14] phi() [ ] ( main:2::bool_const_vars:7 [ ] )
to:bool_const_vars::@1
bool_const_vars::@1: scope:[bool_const_vars] from bool_const_vars
to:bool_const_vars::@3
bool_const_vars::@3: scope:[bool_const_vars] from bool_const_vars
[15] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'f' [ ] ( main:2::bool_const_vars:7 [ ] )
to:bool_const_vars::@return
bool_const_vars::@return: scope:[bool_const_vars] from bool_const_vars::@1
bool_const_vars::@return: scope:[bool_const_vars] from bool_const_vars::@3
[16] return [ ] ( main:2::bool_const_vars:7 [ ] )
to:@return
bool_const_if: scope:[bool_const_if] from main
[17] phi() [ ] ( main:2::bool_const_if:5 [ ] )
to:bool_const_if::@3
bool_const_if::@3: scope:[bool_const_if] from bool_const_if
to:bool_const_if::@1
bool_const_if::@1: scope:[bool_const_if] from bool_const_if
[18] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 't' [ ] ( main:2::bool_const_if:5 [ ] )
to:bool_const_if::@return
bool_const_if::@return: scope:[bool_const_if] from bool_const_if::@3
bool_const_if::@return: scope:[bool_const_if] from bool_const_if::@1
[19] return [ ] ( main:2::bool_const_if:5 [ ] )
to:@return
@ -612,14 +587,14 @@ main::@1 dominated by @begin main @4 main::@1
main::@2 dominated by @begin main @4 main::@1 main::@2
main::@return dominated by main::@return @begin main @4 main::@1 main::@2
bool_const_inline dominated by bool_const_inline @begin main @4 main::@1 main::@2
bool_const_inline::@3 dominated by bool_const_inline @begin bool_const_inline::@3 main @4 main::@1 main::@2
bool_const_inline::@return dominated by bool_const_inline @begin bool_const_inline::@3 main @4 main::@1 main::@2 bool_const_inline::@return
bool_const_inline::@1 dominated by bool_const_inline @begin main bool_const_inline::@1 @4 main::@1 main::@2
bool_const_inline::@return dominated by bool_const_inline @begin main bool_const_inline::@1 @4 main::@1 main::@2 bool_const_inline::@return
bool_const_vars dominated by @begin main bool_const_vars @4 main::@1
bool_const_vars::@1 dominated by @begin bool_const_vars::@1 main bool_const_vars @4 main::@1
bool_const_vars::@return dominated by @begin bool_const_vars::@1 bool_const_vars::@return main bool_const_vars @4 main::@1
bool_const_vars::@3 dominated by @begin main bool_const_vars @4 main::@1 bool_const_vars::@3
bool_const_vars::@return dominated by @begin bool_const_vars::@return main bool_const_vars @4 main::@1 bool_const_vars::@3
bool_const_if dominated by @begin main bool_const_if @4
bool_const_if::@3 dominated by bool_const_if::@3 @begin main bool_const_if @4
bool_const_if::@return dominated by bool_const_if::@3 @begin bool_const_if::@return main bool_const_if @4
bool_const_if::@1 dominated by @begin main bool_const_if @4 bool_const_if::@1
bool_const_if::@return dominated by @begin bool_const_if::@return main bool_const_if @4 bool_const_if::@1
NATURAL LOOPS
@ -702,9 +677,9 @@ main: {
}
//SEG22 bool_const_inline
bool_const_inline: {
jmp b3
//SEG23 bool_const_inline::@3
b3:
jmp b1
//SEG23 bool_const_inline::@1
b1:
//SEG24 [12] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 't' [ ] ( main:2::bool_const_inline:9 [ ] ) -- _deref_pbuc1=vbuc2
lda #'t'
sta SCREEN+2
@ -716,9 +691,9 @@ bool_const_inline: {
}
//SEG27 bool_const_vars
bool_const_vars: {
jmp b1
//SEG28 bool_const_vars::@1
b1:
jmp b3
//SEG28 bool_const_vars::@3
b3:
//SEG29 [15] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'f' [ ] ( main:2::bool_const_vars:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #'f'
sta SCREEN+1
@ -730,9 +705,9 @@ bool_const_vars: {
}
//SEG32 bool_const_if
bool_const_if: {
jmp b3
//SEG33 bool_const_if::@3
b3:
jmp b1
//SEG33 bool_const_if::@1
b1:
//SEG34 [18] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 't' [ ] ( main:2::bool_const_if:5 [ ] ) -- _deref_pbuc1=vbuc2
lda #'t'
sta SCREEN+0
@ -816,9 +791,9 @@ main: {
}
//SEG22 bool_const_inline
bool_const_inline: {
jmp b3
//SEG23 bool_const_inline::@3
b3:
jmp b1
//SEG23 bool_const_inline::@1
b1:
//SEG24 [12] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 't' [ ] ( main:2::bool_const_inline:9 [ ] ) -- _deref_pbuc1=vbuc2
lda #'t'
sta SCREEN+2
@ -830,9 +805,9 @@ bool_const_inline: {
}
//SEG27 bool_const_vars
bool_const_vars: {
jmp b1
//SEG28 bool_const_vars::@1
b1:
jmp b3
//SEG28 bool_const_vars::@3
b3:
//SEG29 [15] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'f' [ ] ( main:2::bool_const_vars:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #'f'
sta SCREEN+1
@ -844,9 +819,9 @@ bool_const_vars: {
}
//SEG32 bool_const_if
bool_const_if: {
jmp b3
//SEG33 bool_const_if::@3
b3:
jmp b1
//SEG33 bool_const_if::@1
b1:
//SEG34 [18] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 't' [ ] ( main:2::bool_const_if:5 [ ] ) -- _deref_pbuc1=vbuc2
lda #'t'
sta SCREEN+0
@ -863,12 +838,12 @@ Removing instruction jmp bend
Removing instruction jmp b1
Removing instruction jmp b2
Removing instruction jmp breturn
Removing instruction jmp b3
Removing instruction jmp breturn
Removing instruction jmp b1
Removing instruction jmp breturn
Removing instruction jmp b3
Removing instruction jmp breturn
Removing instruction jmp b1
Removing instruction jmp breturn
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction bbegin:
Removing instruction b4_from_bbegin:
@ -885,12 +860,12 @@ Removing instruction bool_const_if_from_main:
Removing instruction b1:
Removing instruction b2:
Removing instruction breturn:
Removing instruction b3:
Removing instruction breturn:
Removing instruction b1:
Removing instruction breturn:
Removing instruction b3:
Removing instruction breturn:
Removing instruction b1:
Removing instruction breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
@ -900,15 +875,15 @@ FINAL SYMBOL TABLE
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
(void()) bool_const_if()
(label) bool_const_if::@3
(label) bool_const_if::@1
(label) bool_const_if::@return
(boolean) bool_const_if::b
(void()) bool_const_inline()
(label) bool_const_inline::@3
(label) bool_const_inline::@1
(label) bool_const_inline::@return
(byte) bool_const_inline::a
(void()) bool_const_vars()
(label) bool_const_vars::@1
(label) bool_const_vars::@3
(label) bool_const_vars::@return
(byte) bool_const_vars::a
(boolean) bool_const_vars::b
@ -959,7 +934,7 @@ main: {
}
//SEG22 bool_const_inline
bool_const_inline: {
//SEG23 bool_const_inline::@3
//SEG23 bool_const_inline::@1
//SEG24 [12] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) 't' [ ] ( main:2::bool_const_inline:9 [ ] ) -- _deref_pbuc1=vbuc2
lda #'t'
sta SCREEN+2
@ -969,7 +944,7 @@ bool_const_inline: {
}
//SEG27 bool_const_vars
bool_const_vars: {
//SEG28 bool_const_vars::@1
//SEG28 bool_const_vars::@3
//SEG29 [15] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) 'f' [ ] ( main:2::bool_const_vars:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #'f'
sta SCREEN+1
@ -979,7 +954,7 @@ bool_const_vars: {
}
//SEG32 bool_const_if
bool_const_if: {
//SEG33 bool_const_if::@3
//SEG33 bool_const_if::@1
//SEG34 [18] *((const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) 't' [ ] ( main:2::bool_const_if:5 [ ] ) -- _deref_pbuc1=vbuc2
lda #'t'
sta SCREEN+0

@ -4,15 +4,15 @@
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
(void()) bool_const_if()
(label) bool_const_if::@3
(label) bool_const_if::@1
(label) bool_const_if::@return
(boolean) bool_const_if::b
(void()) bool_const_inline()
(label) bool_const_inline::@3
(label) bool_const_inline::@1
(label) bool_const_inline::@return
(byte) bool_const_inline::a
(void()) bool_const_vars()
(label) bool_const_vars::@1
(label) bool_const_vars::@3
(label) bool_const_vars::@return
(byte) bool_const_vars::a
(boolean) bool_const_vars::b

@ -0,0 +1,41 @@
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
.label screen = $400
jsr main
main: {
.label o1 = 2
ldx #0
b1:
cpx #$a
lda #0
rol
eor #1
sta o1
txa
and #1
sec
sbc #0
beq !+
lda #$ff
!:
eor #$ff
cmp #0
beq !+
lda #$ff
!:
and o1
cmp #0
bne b2
lda #' '
sta screen,x
b3:
inx
cpx #$15
bne b1
rts
b2:
lda #'*'
sta screen,x
jmp b3
}

@ -0,0 +1,33 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@1
@1: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @1
[3] phi() [ ] ( )
main: scope:[main] from @1
[4] phi() [ ] ( main:2 [ ] )
to:main::@1
main::@1: scope:[main] from main main::@3
[5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@3/(byte) main::i#1 ) [ main::i#2 ] ( main:2 [ main::i#2 ] )
[6] (boolean) main::o1#0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 [ main::i#2 main::o1#0 ] ( main:2 [ main::i#2 main::o1#0 ] )
[7] (byte~) main::$1 ← (byte) main::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::i#2 main::o1#0 main::$1 ] ( main:2 [ main::i#2 main::o1#0 main::$1 ] )
[8] (boolean) main::o2#0 ← (byte~) main::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::i#2 main::o1#0 main::o2#0 ] ( main:2 [ main::i#2 main::o1#0 main::o2#0 ] )
[9] (boolean~) main::$3 ← (boolean) main::o1#0 && (boolean) main::o2#0 [ main::i#2 main::$3 ] ( main:2 [ main::i#2 main::$3 ] )
[10] if((boolean~) main::$3) goto main::@2 [ main::i#2 ] ( main:2 [ main::i#2 ] )
to:main::@4
main::@4: scope:[main] from main::@1
[11] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) ' ' [ main::i#2 ] ( main:2 [ main::i#2 ] )
to:main::@3
main::@3: scope:[main] from main::@2 main::@4
[12] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:2 [ main::i#1 ] )
[13] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto main::@1 [ main::i#1 ] ( main:2 [ main::i#1 ] )
to:main::@return
main::@return: scope:[main] from main::@3
[14] return [ ] ( main:2 [ ] )
to:@return
main::@2: scope:[main] from main::@1
[15] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) '*' [ main::i#2 ] ( main:2 [ main::i#2 ] )
to:main::@3

@ -0,0 +1,670 @@
PARSING src/test/java/dk/camelot64/kickc/test/kc/bool-vars.kc
// A Minimal test of boolean variables.
// Boolean variables are bytes under the hood
// 0: false, !=0 : true
const byte* screen = $400;
void main() {
for( byte i : 0..20) {
boolean o1 = i<10;
boolean o2 = (i&1)==0;
if( o1 && o2 ) {
screen[i] = '*';
} else {
screen[i] = ' ';
}
}
}
STATEMENTS
(byte*) screen ← (word/signed word/dword/signed dword) 1024
proc (void()) main()
(byte) main::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
main::@1:
(boolean~) main::$0 ← (byte) main::i < (byte/signed byte/word/signed word/dword/signed dword) 10
(boolean) main::o1 ← (boolean~) main::$0
(byte~) main::$1 ← (byte) main::i & (byte/signed byte/word/signed word/dword/signed dword) 1
(boolean~) main::$2 ← (byte~) main::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean) main::o2 ← (boolean~) main::$2
(boolean~) main::$3 ← (boolean) main::o1 && (boolean) main::o2
if((boolean~) main::$3) goto main::@2
*((byte*) screen + (byte) main::i) ← (byte) ' '
goto main::@3
main::@2:
*((byte*) screen + (byte) main::i) ← (byte) '*'
main::@3:
(byte) main::i ← ++ (byte) main::i
(boolean~) main::$4 ← (byte) main::i != (byte/signed byte/word/signed word/dword/signed dword) 21
if((boolean~) main::$4) goto main::@1
main::@return:
return
endproc // main()
call main
SYMBOLS
(void()) main()
(boolean~) main::$0
(byte~) main::$1
(boolean~) main::$2
(boolean~) main::$3
(boolean~) main::$4
(label) main::@1
(label) main::@2
(label) main::@3
(label) main::@return
(byte) main::i
(boolean) main::o1
(boolean) main::o2
(byte*) screen
Promoting word/signed word/dword/signed dword to byte* in screen ← ((byte*)) 1024
INITIAL CONTROL FLOW GRAPH
@begin: scope:[] from
(byte*) screen ← ((byte*)) (word/signed word/dword/signed dword) 1024
to:@1
main: scope:[main] from
(byte) main::i ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:main::@1
main::@1: scope:[main] from main main::@3
(boolean~) main::$0 ← (byte) main::i < (byte/signed byte/word/signed word/dword/signed dword) 10
(boolean) main::o1 ← (boolean~) main::$0
(byte~) main::$1 ← (byte) main::i & (byte/signed byte/word/signed word/dword/signed dword) 1
(boolean~) main::$2 ← (byte~) main::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean) main::o2 ← (boolean~) main::$2
(boolean~) main::$3 ← (boolean) main::o1 && (boolean) main::o2
if((boolean~) main::$3) goto main::@2
to:main::@4
main::@2: scope:[main] from main::@1 main::@5
*((byte*) screen + (byte) main::i) ← (byte) '*'
to:main::@3
main::@4: scope:[main] from main::@1
*((byte*) screen + (byte) main::i) ← (byte) ' '
to:main::@3
main::@3: scope:[main] from main::@2 main::@4
(byte) main::i ← ++ (byte) main::i
(boolean~) main::$4 ← (byte) main::i != (byte/signed byte/word/signed word/dword/signed dword) 21
if((boolean~) main::$4) goto main::@1
to:main::@6
main::@5: scope:[main] from
to:main::@2
main::@6: scope:[main] from main::@3
to:main::@return
main::@return: scope:[main] from main::@6
return
to:@return
@1: scope:[] from @begin
call main
to:@end
@end: scope:[] from @1
Removing empty block main::@5
Removing empty block main::@6
PROCEDURE MODIFY VARIABLE ANALYSIS
Completing Phi functions...
CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
@begin: scope:[] from
(byte*) screen#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
to:@1
main: scope:[main] from @1
(byte) main::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:main::@1
main::@1: scope:[main] from main main::@3
(byte) main::i#2 ← phi( main/(byte) main::i#0 main::@3/(byte) main::i#1 )
(boolean~) main::$0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10
(boolean) main::o1#0 ← (boolean~) main::$0
(byte~) main::$1 ← (byte) main::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1
(boolean~) main::$2 ← (byte~) main::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean) main::o2#0 ← (boolean~) main::$2
(boolean~) main::$3 ← (boolean) main::o1#0 && (boolean) main::o2#0
if((boolean~) main::$3) goto main::@2
to:main::@4
main::@2: scope:[main] from main::@1
(byte) main::i#3 ← phi( main::@1/(byte) main::i#2 )
*((byte*) screen#0 + (byte) main::i#3) ← (byte) '*'
to:main::@3
main::@4: scope:[main] from main::@1
(byte) main::i#4 ← phi( main::@1/(byte) main::i#2 )
*((byte*) screen#0 + (byte) main::i#4) ← (byte) ' '
to:main::@3
main::@3: scope:[main] from main::@2 main::@4
(byte) main::i#5 ← phi( main::@2/(byte) main::i#3 main::@4/(byte) main::i#4 )
(byte) main::i#1 ← ++ (byte) main::i#5
(boolean~) main::$4 ← (byte) main::i#1 != (byte/signed byte/word/signed word/dword/signed dword) 21
if((boolean~) main::$4) goto main::@1
to:main::@return
main::@return: scope:[main] from main::@3
return
to:@return
@1: scope:[] from @begin
call main param-assignment
to:@2
@2: scope:[] from @1
to:@end
@end: scope:[] from @2
SYMBOL TABLE SSA
(label) @1
(label) @2
(label) @begin
(label) @end
(void()) main()
(boolean~) main::$0
(byte~) main::$1
(boolean~) main::$2
(boolean~) main::$3
(boolean~) main::$4
(label) main::@1
(label) main::@2
(label) main::@3
(label) main::@4
(label) main::@return
(byte) main::i
(byte) main::i#0
(byte) main::i#1
(byte) main::i#2
(byte) main::i#3
(byte) main::i#4
(byte) main::i#5
(boolean) main::o1
(boolean) main::o1#0
(boolean) main::o2
(boolean) main::o2#0
(byte*) screen
(byte*) screen#0
OPTIMIZING CONTROL FLOW GRAPH
Culled Empty Block (label) @2
Succesful SSA optimization Pass2CullEmptyBlocks
Alias (boolean) main::o1#0 = (boolean~) main::$0
Alias (boolean) main::o2#0 = (boolean~) main::$2
Alias (byte) main::i#2 = (byte) main::i#3 (byte) main::i#4
Succesful SSA optimization Pass2AliasElimination
Alias (byte) main::i#2 = (byte) main::i#5
Succesful SSA optimization Pass2AliasElimination
Simple Condition (boolean~) main::$4 if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto main::@1
Succesful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) screen#0 = ((byte*))1024
Constant (const byte) main::i#0 = 0
Succesful SSA optimization Pass2ConstantIdentification
Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
OPTIMIZING CONTROL FLOW GRAPH
Inlining constant with var siblings (const byte) main::i#0
Inlining constant with var siblings (const byte) main::i#0
Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
Succesful SSA optimization Pass2ConstantInlining
Block Sequence Planned @begin @1 @end main main::@1 main::@4 main::@3 main::@return main::@2
Added new block during phi lifting main::@7(between main::@3 and main::@1)
Block Sequence Planned @begin @1 @end main main::@1 main::@4 main::@3 main::@return main::@7 main::@2
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @1
Adding NOP phi() at start of @end
Adding NOP phi() at start of main
CALL GRAPH
Calls in [] to main:2
Propagating live ranges...
Propagating live ranges...
Propagating live ranges...
Propagating live ranges...
Propagating live ranges...
Created 1 initial phi equivalence classes
Coalesced [15] main::i#6 ← main::i#1
Coalesced down to 1 phi equivalence classes
Culled Empty Block (label) main::@7
Block Sequence Planned @begin @1 @end main main::@1 main::@4 main::@3 main::@return main::@2
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @1
Adding NOP phi() at start of @end
Adding NOP phi() at start of main
Propagating live ranges...
Propagating live ranges...
Propagating live ranges...
Propagating live ranges...
Propagating live ranges...
FINAL CONTROL FLOW GRAPH
@begin: scope:[] from
[0] phi() [ ] ( )
to:@1
@1: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @1
[3] phi() [ ] ( )
main: scope:[main] from @1
[4] phi() [ ] ( main:2 [ ] )
to:main::@1
main::@1: scope:[main] from main main::@3
[5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@3/(byte) main::i#1 ) [ main::i#2 ] ( main:2 [ main::i#2 ] )
[6] (boolean) main::o1#0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 [ main::i#2 main::o1#0 ] ( main:2 [ main::i#2 main::o1#0 ] )
[7] (byte~) main::$1 ← (byte) main::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::i#2 main::o1#0 main::$1 ] ( main:2 [ main::i#2 main::o1#0 main::$1 ] )
[8] (boolean) main::o2#0 ← (byte~) main::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::i#2 main::o1#0 main::o2#0 ] ( main:2 [ main::i#2 main::o1#0 main::o2#0 ] )
[9] (boolean~) main::$3 ← (boolean) main::o1#0 && (boolean) main::o2#0 [ main::i#2 main::$3 ] ( main:2 [ main::i#2 main::$3 ] )
[10] if((boolean~) main::$3) goto main::@2 [ main::i#2 ] ( main:2 [ main::i#2 ] )
to:main::@4
main::@4: scope:[main] from main::@1
[11] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) ' ' [ main::i#2 ] ( main:2 [ main::i#2 ] )
to:main::@3
main::@3: scope:[main] from main::@2 main::@4
[12] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:2 [ main::i#1 ] )
[13] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto main::@1 [ main::i#1 ] ( main:2 [ main::i#1 ] )
to:main::@return
main::@return: scope:[main] from main::@3
[14] return [ ] ( main:2 [ ] )
to:@return
main::@2: scope:[main] from main::@1
[15] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) '*' [ main::i#2 ] ( main:2 [ main::i#2 ] )
to:main::@3
DOMINATORS
@begin dominated by @begin
@1 dominated by @1 @begin
@end dominated by @1 @begin @end
main dominated by @1 @begin main
main::@1 dominated by @1 @begin main::@1 main
main::@4 dominated by @1 @begin main::@1 main main::@4
main::@3 dominated by @1 @begin main::@1 main main::@3
main::@return dominated by main::@return @1 @begin main::@1 main main::@3
main::@2 dominated by @1 @begin main::@1 main::@2 main
NATURAL LOOPS
Found back edge: Loop head: main::@1 tails: main::@3 blocks: null
Populated: Loop head: main::@1 tails: main::@3 blocks: main::@3 main::@2 main::@4 main::@1
Loop head: main::@1 tails: main::@3 blocks: main::@3 main::@2 main::@4 main::@1
NATURAL LOOPS WITH DEPTH
Found 0 loops in scope []
Found 1 loops in scope [main]
Loop head: main::@1 tails: main::@3 blocks: main::@3 main::@2 main::@4 main::@1
Loop head: main::@1 tails: main::@3 blocks: main::@3 main::@2 main::@4 main::@1 depth: 1
VARIABLE REGISTER WEIGHTS
(void()) main()
(byte~) main::$1 22.0
(boolean~) main::$3 22.0
(byte) main::i
(byte) main::i#1 16.5
(byte) main::i#2 8.25
(boolean) main::o1
(boolean) main::o1#0 7.333333333333333
(boolean) main::o2
(boolean) main::o2#0 22.0
(byte*) screen
Initial phi equivalence classes
[ main::i#2 main::i#1 ]
Added variable main::o1#0 to zero page equivalence class [ main::o1#0 ]
Added variable main::$1 to zero page equivalence class [ main::$1 ]
Added variable main::o2#0 to zero page equivalence class [ main::o2#0 ]
Added variable main::$3 to zero page equivalence class [ main::$3 ]
Complete equivalence classes
[ main::i#2 main::i#1 ]
[ main::o1#0 ]
[ main::$1 ]
[ main::o2#0 ]
[ main::$3 ]
Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
Allocated zp ZP_BOOL:3 [ main::o1#0 ]
Allocated zp ZP_BYTE:4 [ main::$1 ]
Allocated zp ZP_BOOL:5 [ main::o2#0 ]
Allocated zp ZP_BOOL:6 [ main::$3 ]
INITIAL ASM
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
//SEG1 Global Constants & labels
.label screen = $400
//SEG2 @begin
bbegin:
//SEG3 [1] phi from @begin to @1 [phi:@begin->@1]
b1_from_bbegin:
jmp b1
//SEG4 @1
b1:
//SEG5 [2] call main param-assignment [ ] ( )
//SEG6 [4] phi from @1 to main [phi:@1->main]
main_from_b1:
jsr main
//SEG7 [3] phi from @1 to @end [phi:@1->@end]
bend_from_b1:
jmp bend
//SEG8 @end
bend:
//SEG9 main
main: {
.label _1 = 4
.label _3 = 6
.label o1 = 3
.label o2 = 5
.label i = 2
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
b1_from_main:
//SEG11 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1
lda #0
sta i
jmp b1
//SEG12 [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
b1_from_b3:
//SEG13 [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@3->main::@1#0] -- register_copy
jmp b1
//SEG14 main::@1
b1:
//SEG15 [6] (boolean) main::o1#0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 [ main::i#2 main::o1#0 ] ( main:2 [ main::i#2 main::o1#0 ] ) -- vboz1=vbuz2_lt_vbuc1
lda i
cmp #$a
lda #0
rol
eor #1
sta o1
//SEG16 [7] (byte~) main::$1 ← (byte) main::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::i#2 main::o1#0 main::$1 ] ( main:2 [ main::i#2 main::o1#0 main::$1 ] ) -- vbuz1=vbuz2_band_vbuc1
lda #1
and i
sta _1
//SEG17 [8] (boolean) main::o2#0 ← (byte~) main::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::i#2 main::o1#0 main::o2#0 ] ( main:2 [ main::i#2 main::o1#0 main::o2#0 ] ) -- vboz1=vbuz2_eq_vbuc1
lda _1
sec
sbc #0
beq !+
lda #$ff
!:
eor #$ff
sta o2
//SEG18 [9] (boolean~) main::$3 ← (boolean) main::o1#0 && (boolean) main::o2#0 [ main::i#2 main::$3 ] ( main:2 [ main::i#2 main::$3 ] ) -- vboz1=vboz2_and_vboz3
lda o1
cmp #0
beq !+
lda #$ff
!:
and o2
sta _3
//SEG19 [10] if((boolean~) main::$3) goto main::@2 [ main::i#2 ] ( main:2 [ main::i#2 ] ) -- vboz1_then_la1
lda _3
cmp #0
bne b2
jmp b4
//SEG20 main::@4
b4:
//SEG21 [11] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) ' ' [ main::i#2 ] ( main:2 [ main::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuc2
ldy i
lda #' '
sta screen,y
jmp b3
//SEG22 main::@3
b3:
//SEG23 [12] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:2 [ main::i#1 ] ) -- vbuz1=_inc_vbuz1
inc i
//SEG24 [13] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto main::@1 [ main::i#1 ] ( main:2 [ main::i#1 ] ) -- vbuz1_neq_vbuc1_then_la1
lda i
cmp #$15
bne b1_from_b3
jmp breturn
//SEG25 main::@return
breturn:
//SEG26 [14] return [ ] ( main:2 [ ] )
rts
//SEG27 main::@2
b2:
//SEG28 [15] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) '*' [ main::i#2 ] ( main:2 [ main::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuc2
ldy i
lda #'*'
sta screen,y
jmp b3
}
REGISTER UPLIFT POTENTIAL REGISTERS
Statement [6] (boolean) main::o1#0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 [ main::i#2 main::o1#0 ] ( main:2 [ main::i#2 main::o1#0 ] ) always clobbers reg byte a
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
Statement [7] (byte~) main::$1 ← (byte) main::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::i#2 main::o1#0 main::$1 ] ( main:2 [ main::i#2 main::o1#0 main::$1 ] ) always clobbers reg byte a
Removing always clobbered register reg byte a as potential for zp ZP_BOOL:3 [ main::o1#0 ]
Statement [8] (boolean) main::o2#0 ← (byte~) main::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::i#2 main::o1#0 main::o2#0 ] ( main:2 [ main::i#2 main::o1#0 main::o2#0 ] ) always clobbers reg byte a
Statement [9] (boolean~) main::$3 ← (boolean) main::o1#0 && (boolean) main::o2#0 [ main::i#2 main::$3 ] ( main:2 [ main::i#2 main::$3 ] ) always clobbers reg byte a
Statement [11] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) ' ' [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
Statement [15] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) '*' [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
Statement [6] (boolean) main::o1#0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 [ main::i#2 main::o1#0 ] ( main:2 [ main::i#2 main::o1#0 ] ) always clobbers reg byte a
Statement [7] (byte~) main::$1 ← (byte) main::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::i#2 main::o1#0 main::$1 ] ( main:2 [ main::i#2 main::o1#0 main::$1 ] ) always clobbers reg byte a
Statement [8] (boolean) main::o2#0 ← (byte~) main::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::i#2 main::o1#0 main::o2#0 ] ( main:2 [ main::i#2 main::o1#0 main::o2#0 ] ) always clobbers reg byte a
Statement [9] (boolean~) main::$3 ← (boolean) main::o1#0 && (boolean) main::o2#0 [ main::i#2 main::$3 ] ( main:2 [ main::i#2 main::$3 ] ) always clobbers reg byte a
Statement [11] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) ' ' [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
Statement [15] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) '*' [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y ,
Potential registers zp ZP_BOOL:3 [ main::o1#0 ] : zp ZP_BOOL:3 ,
Potential registers zp ZP_BYTE:4 [ main::$1 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y ,
Potential registers zp ZP_BOOL:5 [ main::o2#0 ] : zp ZP_BOOL:5 , reg byte a ,
Potential registers zp ZP_BOOL:6 [ main::$3 ] : zp ZP_BOOL:6 , reg byte a ,
REGISTER UPLIFT SCOPES
Uplift Scope [main] 24.75: zp ZP_BYTE:2 [ main::i#2 main::i#1 ] 22: zp ZP_BYTE:4 [ main::$1 ] 22: zp ZP_BOOL:5 [ main::o2#0 ] 22: zp ZP_BOOL:6 [ main::$3 ] 7.33: zp ZP_BOOL:3 [ main::o1#0 ]
Uplift Scope []
Uplifting [main] best 818 combination reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ] reg byte a [ main::o2#0 ] reg byte a [ main::$3 ] zp ZP_BOOL:3 [ main::o1#0 ]
Uplifting [] best 818 combination
Allocated (was zp ZP_BOOL:3) zp ZP_BOOL:2 [ main::o1#0 ]
ASSEMBLER BEFORE OPTIMIZATION
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
//SEG1 Global Constants & labels
.label screen = $400
//SEG2 @begin
bbegin:
//SEG3 [1] phi from @begin to @1 [phi:@begin->@1]
b1_from_bbegin:
jmp b1
//SEG4 @1
b1:
//SEG5 [2] call main param-assignment [ ] ( )
//SEG6 [4] phi from @1 to main [phi:@1->main]
main_from_b1:
jsr main
//SEG7 [3] phi from @1 to @end [phi:@1->@end]
bend_from_b1:
jmp bend
//SEG8 @end
bend:
//SEG9 main
main: {
.label o1 = 2
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
b1_from_main:
//SEG11 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
ldx #0
jmp b1
//SEG12 [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
b1_from_b3:
//SEG13 [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@3->main::@1#0] -- register_copy
jmp b1
//SEG14 main::@1
b1:
//SEG15 [6] (boolean) main::o1#0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 [ main::i#2 main::o1#0 ] ( main:2 [ main::i#2 main::o1#0 ] ) -- vboz1=vbuxx_lt_vbuc1
cpx #$a
lda #0
rol
eor #1
sta o1
//SEG16 [7] (byte~) main::$1 ← (byte) main::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::i#2 main::o1#0 main::$1 ] ( main:2 [ main::i#2 main::o1#0 main::$1 ] ) -- vbuaa=vbuxx_band_vbuc1
txa
and #1
//SEG17 [8] (boolean) main::o2#0 ← (byte~) main::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::i#2 main::o1#0 main::o2#0 ] ( main:2 [ main::i#2 main::o1#0 main::o2#0 ] ) -- vboaa=vbuaa_eq_vbuc1
sec
sbc #0
beq !+
lda #$ff
!:
eor #$ff
//SEG18 [9] (boolean~) main::$3 ← (boolean) main::o1#0 && (boolean) main::o2#0 [ main::i#2 main::$3 ] ( main:2 [ main::i#2 main::$3 ] ) -- vboaa=vboz1_and_vboaa
cmp #0
beq !+
lda #$ff
!:
and o1
//SEG19 [10] if((boolean~) main::$3) goto main::@2 [ main::i#2 ] ( main:2 [ main::i#2 ] ) -- vboaa_then_la1
cmp #0
bne b2
jmp b4
//SEG20 main::@4
b4:
//SEG21 [11] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) ' ' [ main::i#2 ] ( main:2 [ main::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2
lda #' '
sta screen,x
jmp b3
//SEG22 main::@3
b3:
//SEG23 [12] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:2 [ main::i#1 ] ) -- vbuxx=_inc_vbuxx
inx
//SEG24 [13] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto main::@1 [ main::i#1 ] ( main:2 [ main::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1
cpx #$15
bne b1_from_b3
jmp breturn
//SEG25 main::@return
breturn:
//SEG26 [14] return [ ] ( main:2 [ ] )
rts
//SEG27 main::@2
b2:
//SEG28 [15] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) '*' [ main::i#2 ] ( main:2 [ main::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2
lda #'*'
sta screen,x
jmp b3
}
ASSEMBLER OPTIMIZATIONS
Removing instruction jmp b1
Removing instruction jmp bend
Removing instruction jmp b1
Removing instruction jmp b4
Removing instruction jmp b3
Removing instruction jmp breturn
Succesful ASM optimization Pass5NextJumpElimination
Replacing label b1_from_b3 with b1
Removing instruction bbegin:
Removing instruction b1_from_bbegin:
Removing instruction main_from_b1:
Removing instruction bend_from_b1:
Removing instruction b1_from_b3:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction b1:
Removing instruction bend:
Removing instruction b1_from_main:
Removing instruction b4:
Removing instruction breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
Removing instruction jmp b1
Succesful ASM optimization Pass5NextJumpElimination
FINAL SYMBOL TABLE
(label) @1
(label) @begin
(label) @end
(void()) main()
(byte~) main::$1 reg byte a 22.0
(boolean~) main::$3 reg byte a 22.0
(label) main::@1
(label) main::@2
(label) main::@3
(label) main::@4
(label) main::@return
(byte) main::i
(byte) main::i#1 reg byte x 16.5
(byte) main::i#2 reg byte x 8.25
(boolean) main::o1
(boolean) main::o1#0 o1 zp ZP_BOOL:2 7.333333333333333
(boolean) main::o2
(boolean) main::o2#0 reg byte a 22.0
(byte*) screen
(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024
reg byte x [ main::i#2 main::i#1 ]
zp ZP_BOOL:2 [ main::o1#0 ]
reg byte a [ main::$1 ]
reg byte a [ main::o2#0 ]
reg byte a [ main::$3 ]
FINAL ASSEMBLER
Score: 662
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
//SEG1 Global Constants & labels
.label screen = $400
//SEG2 @begin
//SEG3 [1] phi from @begin to @1 [phi:@begin->@1]
//SEG4 @1
//SEG5 [2] call main param-assignment [ ] ( )
//SEG6 [4] phi from @1 to main [phi:@1->main]
jsr main
//SEG7 [3] phi from @1 to @end [phi:@1->@end]
//SEG8 @end
//SEG9 main
main: {
.label o1 = 2
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
//SEG11 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
ldx #0
//SEG12 [5] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
//SEG13 [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@3->main::@1#0] -- register_copy
//SEG14 main::@1
b1:
//SEG15 [6] (boolean) main::o1#0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 10 [ main::i#2 main::o1#0 ] ( main:2 [ main::i#2 main::o1#0 ] ) -- vboz1=vbuxx_lt_vbuc1
cpx #$a
lda #0
rol
eor #1
sta o1
//SEG16 [7] (byte~) main::$1 ← (byte) main::i#2 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::i#2 main::o1#0 main::$1 ] ( main:2 [ main::i#2 main::o1#0 main::$1 ] ) -- vbuaa=vbuxx_band_vbuc1
txa
and #1
//SEG17 [8] (boolean) main::o2#0 ← (byte~) main::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::i#2 main::o1#0 main::o2#0 ] ( main:2 [ main::i#2 main::o1#0 main::o2#0 ] ) -- vboaa=vbuaa_eq_vbuc1
sec
sbc #0
beq !+
lda #$ff
!:
eor #$ff
//SEG18 [9] (boolean~) main::$3 ← (boolean) main::o1#0 && (boolean) main::o2#0 [ main::i#2 main::$3 ] ( main:2 [ main::i#2 main::$3 ] ) -- vboaa=vboz1_and_vboaa
cmp #0
beq !+
lda #$ff
!:
and o1
//SEG19 [10] if((boolean~) main::$3) goto main::@2 [ main::i#2 ] ( main:2 [ main::i#2 ] ) -- vboaa_then_la1
cmp #0
bne b2
//SEG20 main::@4
//SEG21 [11] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) ' ' [ main::i#2 ] ( main:2 [ main::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2
lda #' '
sta screen,x
//SEG22 main::@3
b3:
//SEG23 [12] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:2 [ main::i#1 ] ) -- vbuxx=_inc_vbuxx
inx
//SEG24 [13] if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 21) goto main::@1 [ main::i#1 ] ( main:2 [ main::i#1 ] ) -- vbuxx_neq_vbuc1_then_la1
cpx #$15
bne b1
//SEG25 main::@return
//SEG26 [14] return [ ] ( main:2 [ ] )
rts
//SEG27 main::@2
b2:
//SEG28 [15] *((const byte*) screen#0 + (byte) main::i#2) ← (byte) '*' [ main::i#2 ] ( main:2 [ main::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuc2
lda #'*'
sta screen,x
jmp b3
}

@ -0,0 +1,26 @@
(label) @1
(label) @begin
(label) @end
(void()) main()
(byte~) main::$1 reg byte a 22.0
(boolean~) main::$3 reg byte a 22.0
(label) main::@1
(label) main::@2
(label) main::@3
(label) main::@4
(label) main::@return
(byte) main::i
(byte) main::i#1 reg byte x 16.5
(byte) main::i#2 reg byte x 8.25
(boolean) main::o1
(boolean) main::o1#0 o1 zp ZP_BOOL:2 7.333333333333333
(boolean) main::o2
(boolean) main::o2#0 reg byte a 22.0
(byte*) screen
(const byte*) screen#0 screen = ((byte*))(word/signed word/dword/signed dword) 1024
reg byte x [ main::i#2 main::i#1 ]
zp ZP_BOOL:2 [ main::o1#0 ]
reg byte a [ main::$1 ]
reg byte a [ main::o2#0 ]
reg byte a [ main::$3 ]

@ -2398,10 +2398,10 @@ Succesful SSA optimization Pass2ConstantIdentification
Constant (const byte) main::$24 = main::$19|main::$23
Succesful SSA optimization Pass2ConstantIdentification
Multiple usages for variable. Not optimizing sub-constant (byte) main::j#2
Eliminating unused constant (const byte) gfx_init_plane_charset8::gfxbCpuBank#1
Succesful SSA optimization PassNEliminateUnusedVars
if() condition always true - replacing block destination if(true) goto main::@3
Succesful SSA optimization Pass2ConstantIfs
Eliminating unused constant (const byte) gfx_init_plane_charset8::gfxbCpuBank#1
Succesful SSA optimization PassNEliminateUnusedVars
Removing unused block main::@return
Succesful SSA optimization Pass2EliminateUnusedBlocks
Culled Empty Block (label) @1

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -178,32 +178,27 @@
(byte*) VIC_SCREEN4
(const byte*) VIC_SCREEN4#0 VIC_SCREEN4 = ((byte*))(word/signed word/dword/signed dword) 20480
(void()) apply_preset((byte) apply_preset::idx)
(label) apply_preset::@1
(label) apply_preset::@11
(label) apply_preset::@13
(label) apply_preset::@15
(label) apply_preset::@17
(label) apply_preset::@19
(label) apply_preset::@2
(label) apply_preset::@22
(label) apply_preset::@23
(label) apply_preset::@3
(label) apply_preset::@44
(label) apply_preset::@5
(label) apply_preset::@7
(label) apply_preset::@9
(label) apply_preset::@24
(label) apply_preset::@25
(label) apply_preset::@26
(label) apply_preset::@27
(label) apply_preset::@28
(label) apply_preset::@29
(label) apply_preset::@30
(label) apply_preset::@31
(label) apply_preset::@32
(label) apply_preset::@33
(label) apply_preset::@34
(label) apply_preset::@return
(byte) apply_preset::i
(byte) apply_preset::i#1 reg byte x 1501.5
(byte) apply_preset::i#2 reg byte x 500.5
(byte) apply_preset::i#1 reg byte y 1501.5
(byte) apply_preset::i#2 reg byte y 2002.0
(byte) apply_preset::idx
(byte) apply_preset::idx#0 reg byte a 11.18181818181818
(byte*) apply_preset::preset
(byte*) apply_preset::preset#12 preset zp ZP_WORD:3 667.3333333333334
(byte*) apply_preset::preset#13 preset zp ZP_WORD:3 1001.6666666666667
(byte*) apply_preset::preset#14 preset zp ZP_WORD:3 2.0
(byte*) apply_preset::values
(byte*) apply_preset::values#1 values zp ZP_WORD:5 500.5
(byte*) apply_preset::values#2 values zp ZP_WORD:5 1501.5
(byte*) apply_preset::preset#13 preset zp ZP_WORD:3 200.2
(void()) bitmap_clear()
(word~) bitmap_clear::$3 $3 zp ZP_WORD:3 2.0
(label) bitmap_clear::@1
@ -267,21 +262,21 @@
(label) bitmap_line::@9
(label) bitmap_line::@return
(byte) bitmap_line::x0
(byte) bitmap_line::x0#0 x0 zp ZP_BYTE:15 1.260869565217391
(byte) bitmap_line::x0#0 x0 zp ZP_BYTE:13 1.260869565217391
(byte) bitmap_line::x1
(byte) bitmap_line::x1#0 x1 zp ZP_BYTE:18 1.3181818181818181
(byte) bitmap_line::xd
(byte) bitmap_line::xd#0 xd zp ZP_BYTE:7 0.7
(byte) bitmap_line::xd#1 xd zp ZP_BYTE:7 0.7
(byte) bitmap_line::xd#0 xd zp ZP_BYTE:8 0.7
(byte) bitmap_line::xd#1 xd zp ZP_BYTE:8 0.7
(byte) bitmap_line::y0
(byte) bitmap_line::y0#0 y0 zp ZP_BYTE:13 1.6666666666666674
(byte) bitmap_line::y0#0 y0 zp ZP_BYTE:14 1.6666666666666674
(byte) bitmap_line::y1
(byte) bitmap_line::y1#0 reg byte y 1.7500000000000007
(byte) bitmap_line::yd
(byte) bitmap_line::yd#0 yd zp ZP_BYTE:8 0.8888888888888888
(byte) bitmap_line::yd#1 yd zp ZP_BYTE:8 0.8888888888888888
(byte) bitmap_line::yd#10 yd zp ZP_BYTE:8 0.8888888888888888
(byte) bitmap_line::yd#3 yd zp ZP_BYTE:8 0.8888888888888888
(byte) bitmap_line::yd#0 yd zp ZP_BYTE:7 0.8888888888888888
(byte) bitmap_line::yd#1 yd zp ZP_BYTE:7 0.8888888888888888
(byte) bitmap_line::yd#10 yd zp ZP_BYTE:7 0.8888888888888888
(byte) bitmap_line::yd#3 yd zp ZP_BYTE:7 0.8888888888888888
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6 $6 zp ZP_BYTE:15 202.0
(label) bitmap_line_xdyd::@1
@ -290,11 +285,11 @@
(label) bitmap_line_xdyd::@5
(label) bitmap_line_xdyd::@return
(byte) bitmap_line_xdyd::e
(byte) bitmap_line_xdyd::e#0 e zp ZP_BYTE:14 4.0
(byte) bitmap_line_xdyd::e#1 e zp ZP_BYTE:14 134.66666666666666
(byte) bitmap_line_xdyd::e#2 e zp ZP_BYTE:14 202.0
(byte) bitmap_line_xdyd::e#3 e zp ZP_BYTE:14 40.8
(byte) bitmap_line_xdyd::e#6 e zp ZP_BYTE:14 101.0
(byte) bitmap_line_xdyd::e#0 e zp ZP_BYTE:13 4.0
(byte) bitmap_line_xdyd::e#1 e zp ZP_BYTE:13 134.66666666666666
(byte) bitmap_line_xdyd::e#2 e zp ZP_BYTE:13 202.0
(byte) bitmap_line_xdyd::e#3 e zp ZP_BYTE:13 40.8
(byte) bitmap_line_xdyd::e#6 e zp ZP_BYTE:13 101.0
(byte) bitmap_line_xdyd::x
(byte) bitmap_line_xdyd::x#0 reg byte x 0.8
(byte) bitmap_line_xdyd::x#1 reg byte x 0.8
@ -306,20 +301,20 @@
(byte) bitmap_line_xdyd::x1#1 x1 zp ZP_BYTE:18 1.3333333333333333
(byte) bitmap_line_xdyd::x1#6 x1 zp ZP_BYTE:18 7.5
(byte) bitmap_line_xdyd::xd
(byte) bitmap_line_xdyd::xd#0 xd zp ZP_BYTE:7 2.0
(byte) bitmap_line_xdyd::xd#1 xd zp ZP_BYTE:7 2.0
(byte) bitmap_line_xdyd::xd#5 xd zp ZP_BYTE:7 14.714285714285715
(byte) bitmap_line_xdyd::xd#0 xd zp ZP_BYTE:8 2.0
(byte) bitmap_line_xdyd::xd#1 xd zp ZP_BYTE:8 2.0
(byte) bitmap_line_xdyd::xd#5 xd zp ZP_BYTE:8 14.714285714285715
(byte) bitmap_line_xdyd::y
(byte) bitmap_line_xdyd::y#0 y zp ZP_BYTE:13 1.0
(byte) bitmap_line_xdyd::y#1 y zp ZP_BYTE:13 1.0
(byte) bitmap_line_xdyd::y#2 y zp ZP_BYTE:13 101.0
(byte) bitmap_line_xdyd::y#3 y zp ZP_BYTE:13 58.00000000000001
(byte) bitmap_line_xdyd::y#5 y zp ZP_BYTE:13 3.0
(byte) bitmap_line_xdyd::y#6 y zp ZP_BYTE:13 101.0
(byte) bitmap_line_xdyd::y#0 y zp ZP_BYTE:14 1.0
(byte) bitmap_line_xdyd::y#1 y zp ZP_BYTE:14 1.0
(byte) bitmap_line_xdyd::y#2 y zp ZP_BYTE:14 101.0
(byte) bitmap_line_xdyd::y#3 y zp ZP_BYTE:14 58.00000000000001
(byte) bitmap_line_xdyd::y#5 y zp ZP_BYTE:14 3.0
(byte) bitmap_line_xdyd::y#6 y zp ZP_BYTE:14 101.0
(byte) bitmap_line_xdyd::yd
(byte) bitmap_line_xdyd::yd#0 yd zp ZP_BYTE:8 4.0
(byte) bitmap_line_xdyd::yd#1 yd zp ZP_BYTE:8 4.0
(byte) bitmap_line_xdyd::yd#2 yd zp ZP_BYTE:8 7.642857142857143
(byte) bitmap_line_xdyd::yd#0 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyd::yd#1 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyd::yd#2 yd zp ZP_BYTE:7 7.642857142857143
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6 $6 zp ZP_BYTE:18 202.0
(label) bitmap_line_xdyi::@1
@ -328,11 +323,11 @@
(label) bitmap_line_xdyi::@5
(label) bitmap_line_xdyi::@return
(byte) bitmap_line_xdyi::e
(byte) bitmap_line_xdyi::e#0 e zp ZP_BYTE:14 4.0
(byte) bitmap_line_xdyi::e#1 e zp ZP_BYTE:14 134.66666666666666
(byte) bitmap_line_xdyi::e#2 e zp ZP_BYTE:14 202.0
(byte) bitmap_line_xdyi::e#3 e zp ZP_BYTE:14 40.8
(byte) bitmap_line_xdyi::e#6 e zp ZP_BYTE:14 101.0
(byte) bitmap_line_xdyi::e#0 e zp ZP_BYTE:15 4.0
(byte) bitmap_line_xdyi::e#1 e zp ZP_BYTE:15 134.66666666666666
(byte) bitmap_line_xdyi::e#2 e zp ZP_BYTE:15 202.0
(byte) bitmap_line_xdyi::e#3 e zp ZP_BYTE:15 40.8
(byte) bitmap_line_xdyi::e#6 e zp ZP_BYTE:15 101.0
(byte) bitmap_line_xdyi::x
(byte) bitmap_line_xdyi::x#0 reg byte x 0.8
(byte) bitmap_line_xdyi::x#1 reg byte x 0.8
@ -340,24 +335,24 @@
(byte) bitmap_line_xdyi::x#3 reg byte x 76.25
(byte) bitmap_line_xdyi::x#6 reg byte x 3.0
(byte) bitmap_line_xdyi::x1
(byte) bitmap_line_xdyi::x1#0 x1 zp ZP_BYTE:15 1.3333333333333333
(byte) bitmap_line_xdyi::x1#1 x1 zp ZP_BYTE:15 1.3333333333333333
(byte) bitmap_line_xdyi::x1#6 x1 zp ZP_BYTE:15 7.5
(byte) bitmap_line_xdyi::x1#0 x1 zp ZP_BYTE:13 1.3333333333333333
(byte) bitmap_line_xdyi::x1#1 x1 zp ZP_BYTE:13 1.3333333333333333
(byte) bitmap_line_xdyi::x1#6 x1 zp ZP_BYTE:13 7.5
(byte) bitmap_line_xdyi::xd
(byte) bitmap_line_xdyi::xd#0 xd zp ZP_BYTE:7 2.0
(byte) bitmap_line_xdyi::xd#1 xd zp ZP_BYTE:7 2.0
(byte) bitmap_line_xdyi::xd#5 xd zp ZP_BYTE:7 14.714285714285715
(byte) bitmap_line_xdyi::xd#0 xd zp ZP_BYTE:8 2.0
(byte) bitmap_line_xdyi::xd#1 xd zp ZP_BYTE:8 2.0
(byte) bitmap_line_xdyi::xd#5 xd zp ZP_BYTE:8 14.714285714285715
(byte) bitmap_line_xdyi::y
(byte) bitmap_line_xdyi::y#0 y zp ZP_BYTE:13 1.0
(byte) bitmap_line_xdyi::y#1 y zp ZP_BYTE:13 1.0
(byte) bitmap_line_xdyi::y#2 y zp ZP_BYTE:13 101.0
(byte) bitmap_line_xdyi::y#3 y zp ZP_BYTE:13 58.00000000000001
(byte) bitmap_line_xdyi::y#5 y zp ZP_BYTE:13 3.0
(byte) bitmap_line_xdyi::y#6 y zp ZP_BYTE:13 101.0
(byte) bitmap_line_xdyi::y#0 y zp ZP_BYTE:14 1.0
(byte) bitmap_line_xdyi::y#1 y zp ZP_BYTE:14 1.0
(byte) bitmap_line_xdyi::y#2 y zp ZP_BYTE:14 101.0
(byte) bitmap_line_xdyi::y#3 y zp ZP_BYTE:14 58.00000000000001
(byte) bitmap_line_xdyi::y#5 y zp ZP_BYTE:14 3.0
(byte) bitmap_line_xdyi::y#6 y zp ZP_BYTE:14 101.0
(byte) bitmap_line_xdyi::yd
(byte) bitmap_line_xdyi::yd#0 yd zp ZP_BYTE:8 4.0
(byte) bitmap_line_xdyi::yd#1 yd zp ZP_BYTE:8 4.0
(byte) bitmap_line_xdyi::yd#2 yd zp ZP_BYTE:8 7.642857142857143
(byte) bitmap_line_xdyi::yd#0 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyi::yd#1 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyi::yd#2 yd zp ZP_BYTE:7 7.642857142857143
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6 reg byte y 202.0
(label) bitmap_line_ydxd::@1
@ -366,11 +361,11 @@
(label) bitmap_line_ydxd::@5
(label) bitmap_line_ydxd::@return
(byte) bitmap_line_ydxd::e
(byte) bitmap_line_ydxd::e#0 e zp ZP_BYTE:15 4.0
(byte) bitmap_line_ydxd::e#1 e zp ZP_BYTE:15 134.66666666666666
(byte) bitmap_line_ydxd::e#2 e zp ZP_BYTE:15 202.0
(byte) bitmap_line_ydxd::e#3 e zp ZP_BYTE:15 40.8
(byte) bitmap_line_ydxd::e#6 e zp ZP_BYTE:15 101.0
(byte) bitmap_line_ydxd::e#0 e zp ZP_BYTE:13 4.0
(byte) bitmap_line_ydxd::e#1 e zp ZP_BYTE:13 134.66666666666666
(byte) bitmap_line_ydxd::e#2 e zp ZP_BYTE:13 202.0
(byte) bitmap_line_ydxd::e#3 e zp ZP_BYTE:13 40.8
(byte) bitmap_line_ydxd::e#6 e zp ZP_BYTE:13 101.0
(byte) bitmap_line_ydxd::x
(byte) bitmap_line_ydxd::x#0 reg byte x 1.0
(byte) bitmap_line_ydxd::x#1 reg byte x 1.0
@ -379,23 +374,23 @@
(byte) bitmap_line_ydxd::x#5 reg byte x 3.0
(byte) bitmap_line_ydxd::x#6 reg byte x 101.0
(byte) bitmap_line_ydxd::xd
(byte) bitmap_line_ydxd::xd#0 xd zp ZP_BYTE:7 4.0
(byte) bitmap_line_ydxd::xd#1 xd zp ZP_BYTE:7 4.0
(byte) bitmap_line_ydxd::xd#2 xd zp ZP_BYTE:7 7.642857142857143
(byte) bitmap_line_ydxd::xd#0 xd zp ZP_BYTE:8 4.0
(byte) bitmap_line_ydxd::xd#1 xd zp ZP_BYTE:8 4.0
(byte) bitmap_line_ydxd::xd#2 xd zp ZP_BYTE:8 7.642857142857143
(byte) bitmap_line_ydxd::y
(byte) bitmap_line_ydxd::y#0 y zp ZP_BYTE:14 0.8
(byte) bitmap_line_ydxd::y#1 y zp ZP_BYTE:14 0.8
(byte) bitmap_line_ydxd::y#2 y zp ZP_BYTE:14 76.25
(byte) bitmap_line_ydxd::y#3 y zp ZP_BYTE:14 37.875
(byte) bitmap_line_ydxd::y#7 y zp ZP_BYTE:14 3.0
(byte) bitmap_line_ydxd::y#0 y zp ZP_BYTE:15 0.8
(byte) bitmap_line_ydxd::y#1 y zp ZP_BYTE:15 0.8
(byte) bitmap_line_ydxd::y#2 y zp ZP_BYTE:15 76.25
(byte) bitmap_line_ydxd::y#3 y zp ZP_BYTE:15 37.875
(byte) bitmap_line_ydxd::y#7 y zp ZP_BYTE:15 3.0
(byte) bitmap_line_ydxd::y1
(byte) bitmap_line_ydxd::y1#0 y1 zp ZP_BYTE:13 1.3333333333333333
(byte) bitmap_line_ydxd::y1#1 y1 zp ZP_BYTE:13 1.3333333333333333
(byte) bitmap_line_ydxd::y1#6 y1 zp ZP_BYTE:13 7.5
(byte) bitmap_line_ydxd::y1#0 y1 zp ZP_BYTE:14 1.3333333333333333
(byte) bitmap_line_ydxd::y1#1 y1 zp ZP_BYTE:14 1.3333333333333333
(byte) bitmap_line_ydxd::y1#6 y1 zp ZP_BYTE:14 7.5
(byte) bitmap_line_ydxd::yd
(byte) bitmap_line_ydxd::yd#0 yd zp ZP_BYTE:8 2.0
(byte) bitmap_line_ydxd::yd#1 yd zp ZP_BYTE:8 2.0
(byte) bitmap_line_ydxd::yd#5 yd zp ZP_BYTE:8 14.714285714285715
(byte) bitmap_line_ydxd::yd#0 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxd::yd#1 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxd::yd#5 yd zp ZP_BYTE:7 14.714285714285715
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6 reg byte y 202.0
(label) bitmap_line_ydxi::@1
@ -404,11 +399,11 @@
(label) bitmap_line_ydxi::@5
(label) bitmap_line_ydxi::@return
(byte) bitmap_line_ydxi::e
(byte) bitmap_line_ydxi::e#0 e zp ZP_BYTE:15 4.0
(byte) bitmap_line_ydxi::e#1 e zp ZP_BYTE:15 134.66666666666666
(byte) bitmap_line_ydxi::e#2 e zp ZP_BYTE:15 202.0
(byte) bitmap_line_ydxi::e#3 e zp ZP_BYTE:15 40.8
(byte) bitmap_line_ydxi::e#6 e zp ZP_BYTE:15 101.0
(byte) bitmap_line_ydxi::e#0 e zp ZP_BYTE:13 4.0
(byte) bitmap_line_ydxi::e#1 e zp ZP_BYTE:13 134.66666666666666
(byte) bitmap_line_ydxi::e#2 e zp ZP_BYTE:13 202.0
(byte) bitmap_line_ydxi::e#3 e zp ZP_BYTE:13 40.8
(byte) bitmap_line_ydxi::e#6 e zp ZP_BYTE:13 101.0
(byte) bitmap_line_ydxi::x
(byte) bitmap_line_ydxi::x#0 reg byte x 1.0
(byte) bitmap_line_ydxi::x#1 reg byte x 1.0
@ -417,23 +412,23 @@
(byte) bitmap_line_ydxi::x#5 reg byte x 3.0
(byte) bitmap_line_ydxi::x#6 reg byte x 101.0
(byte) bitmap_line_ydxi::xd
(byte) bitmap_line_ydxi::xd#0 xd zp ZP_BYTE:7 4.0
(byte) bitmap_line_ydxi::xd#1 xd zp ZP_BYTE:7 4.0
(byte) bitmap_line_ydxi::xd#2 xd zp ZP_BYTE:7 7.642857142857143
(byte) bitmap_line_ydxi::xd#0 xd zp ZP_BYTE:8 4.0
(byte) bitmap_line_ydxi::xd#1 xd zp ZP_BYTE:8 4.0
(byte) bitmap_line_ydxi::xd#2 xd zp ZP_BYTE:8 7.642857142857143
(byte) bitmap_line_ydxi::y
(byte) bitmap_line_ydxi::y#0 y zp ZP_BYTE:14 0.8
(byte) bitmap_line_ydxi::y#1 y zp ZP_BYTE:14 0.8
(byte) bitmap_line_ydxi::y#2 y zp ZP_BYTE:14 37.875
(byte) bitmap_line_ydxi::y#3 y zp ZP_BYTE:14 76.25
(byte) bitmap_line_ydxi::y#6 y zp ZP_BYTE:14 3.0
(byte) bitmap_line_ydxi::y#0 y zp ZP_BYTE:15 0.8
(byte) bitmap_line_ydxi::y#1 y zp ZP_BYTE:15 0.8
(byte) bitmap_line_ydxi::y#2 y zp ZP_BYTE:15 37.875
(byte) bitmap_line_ydxi::y#3 y zp ZP_BYTE:15 76.25
(byte) bitmap_line_ydxi::y#6 y zp ZP_BYTE:15 3.0
(byte) bitmap_line_ydxi::y1
(byte) bitmap_line_ydxi::y1#0 y1 zp ZP_BYTE:13 1.3333333333333333
(byte) bitmap_line_ydxi::y1#1 y1 zp ZP_BYTE:13 1.3333333333333333
(byte) bitmap_line_ydxi::y1#6 y1 zp ZP_BYTE:13 7.5
(byte) bitmap_line_ydxi::y1#0 y1 zp ZP_BYTE:14 1.3333333333333333
(byte) bitmap_line_ydxi::y1#1 y1 zp ZP_BYTE:14 1.3333333333333333
(byte) bitmap_line_ydxi::y1#6 y1 zp ZP_BYTE:14 7.5
(byte) bitmap_line_ydxi::yd
(byte) bitmap_line_ydxi::yd#0 yd zp ZP_BYTE:8 2.0
(byte) bitmap_line_ydxi::yd#1 yd zp ZP_BYTE:8 2.0
(byte) bitmap_line_ydxi::yd#5 yd zp ZP_BYTE:8 14.714285714285715
(byte) bitmap_line_ydxi::yd#0 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxi::yd#1 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxi::yd#5 yd zp ZP_BYTE:7 14.714285714285715
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
(word~) bitmap_plot::$0 $0 zp ZP_WORD:3 1.0
(byte~) bitmap_plot::$1 reg byte a 4.0
@ -502,11 +497,11 @@
(byte*) form_b_step_lo
(const byte*) form_b_step_lo#0 form_b_step_lo = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 21
(byte()) form_control()
(byte~) form_control::$11 reg byte a 4.0
(byte~) form_control::$12 reg byte a 4.0
(byte~) form_control::$13 reg byte a 4.0
(byte~) form_control::$24 reg byte a 4.0
(byte~) form_control::$22 reg byte a 4.0
(byte~) form_control::$5 reg byte a 4.0
(byte/word/dword~) form_control::$6 reg byte a 4.0
(byte~) form_control::$7 reg byte a 4.0
(label) form_control::@1
(label) form_control::@10
(label) form_control::@12
@ -677,53 +672,53 @@
(byte*) form_vic_screen
(const byte*) form_vic_screen#0 form_vic_screen = (const byte[]) form_fields_val#0+(byte/signed byte/word/signed word/dword/signed dword) 24
(dword()) get_plane((byte) get_plane::idx)
(label) get_plane::@1
(label) get_plane::@11
(label) get_plane::@13
(label) get_plane::@15
(label) get_plane::@17
(label) get_plane::@19
(label) get_plane::@21
(label) get_plane::@23
(label) get_plane::@25
(label) get_plane::@3
(label) get_plane::@5
(label) get_plane::@67
(label) get_plane::@7
(label) get_plane::@9
(label) get_plane::@27
(label) get_plane::@28
(label) get_plane::@29
(label) get_plane::@30
(label) get_plane::@31
(label) get_plane::@32
(label) get_plane::@33
(label) get_plane::@34
(label) get_plane::@35
(label) get_plane::@36
(label) get_plane::@37
(label) get_plane::@38
(label) get_plane::@39
(label) get_plane::@40
(label) get_plane::@return
(byte) get_plane::idx
(byte) get_plane::idx#0 reg byte a 4.0
(byte) get_plane::idx#1 reg byte a 4.0
(byte) get_plane::idx#10 reg byte a 2.285714285714285
(dword) get_plane::return
(dword) get_plane::return#1 return zp ZP_DWORD:9 1.0
(dword) get_plane::return#14 return zp ZP_DWORD:9 1.0
(dword) get_plane::return#16 return zp ZP_DWORD:9 4.0
(dword) get_plane::return#17 return zp ZP_DWORD:9 4.0
(byte*()) get_vic_charset((byte) get_vic_charset::idx)
(label) get_vic_charset::@1
(label) get_vic_charset::@7
(label) get_vic_charset::@3
(label) get_vic_charset::@4
(label) get_vic_charset::@return
(byte) get_vic_charset::idx
(byte) get_vic_charset::idx#0 reg byte a 3.0
(byte*) get_vic_charset::return
(byte*) get_vic_charset::return#1 return zp ZP_WORD:3 0.6666666666666666
(byte*) get_vic_charset::return#2 return zp ZP_WORD:3 0.6666666666666666
(byte*) get_vic_charset::return#4 return zp ZP_WORD:3 4.0
(byte*()) get_vic_screen((byte) get_vic_screen::idx)
(label) get_vic_screen::@1
(label) get_vic_screen::@22
(label) get_vic_screen::@3
(label) get_vic_screen::@5
(label) get_vic_screen::@7
(label) get_vic_screen::@10
(label) get_vic_screen::@11
(label) get_vic_screen::@12
(label) get_vic_screen::@13
(label) get_vic_screen::@9
(label) get_vic_screen::@return
(byte) get_vic_screen::idx
(byte) get_vic_screen::idx#0 reg byte a 4.0
(byte) get_vic_screen::idx#1 reg byte a 4.0
(byte) get_vic_screen::idx#2 reg byte a 2.8
(byte*) get_vic_screen::return
(byte*) get_vic_screen::return#1 return zp ZP_WORD:3 1.0
(byte*) get_vic_screen::return#10 return zp ZP_WORD:3 4.0
(byte*) get_vic_screen::return#11 return zp ZP_WORD:3 4.0
(byte*) get_vic_screen::return#5 return zp ZP_WORD:3 1.0
(void()) gfx_init()
(label) gfx_init::@1
(label) gfx_init::@10
@ -1164,10 +1159,10 @@
(byte) gfx_mode::vic_control2
(byte) gfx_mode::vic_control2#2 reg byte a 2.0
(byte()) keyboard_event_get()
(label) keyboard_event_get::@1
(label) keyboard_event_get::@3
(label) keyboard_event_get::@return
(byte) keyboard_event_get::return
(byte) keyboard_event_get::return#0 reg byte a 4.0
(byte) keyboard_event_get::return#1 reg byte a 4.0
(byte) keyboard_event_get::return#2 reg byte a 26.25
(byte) keyboard_event_get::return#3 reg byte a 202.0
(byte) keyboard_event_get::return#4 reg byte a 4.0
@ -1186,21 +1181,21 @@
(byte) keyboard_event_pressed::row_bits
(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:7 2.0
(void()) keyboard_event_scan()
(byte/word/dword~) keyboard_event_scan::$12 reg byte a 200002.0
(byte~) keyboard_event_scan::$16 reg byte a 4.0
(byte~) keyboard_event_scan::$20 reg byte a 4.0
(byte~) keyboard_event_scan::$24 reg byte a 4.0
(byte~) keyboard_event_scan::$28 reg byte a 4.0
(byte/word/dword~) keyboard_event_scan::$11 reg byte a 200002.0
(byte~) keyboard_event_scan::$14 reg byte a 4.0
(byte~) keyboard_event_scan::$18 reg byte a 4.0
(byte~) keyboard_event_scan::$22 reg byte a 4.0
(byte~) keyboard_event_scan::$26 reg byte a 4.0
(byte~) keyboard_event_scan::$3 reg byte a 200002.0
(byte~) keyboard_event_scan::$4 reg byte a 200002.0
(label) keyboard_event_scan::@1
(label) keyboard_event_scan::@10
(label) keyboard_event_scan::@11
(label) keyboard_event_scan::@14
(label) keyboard_event_scan::@13
(label) keyboard_event_scan::@15
(label) keyboard_event_scan::@16
(label) keyboard_event_scan::@18
(label) keyboard_event_scan::@2
(label) keyboard_event_scan::@17
(label) keyboard_event_scan::@19
(label) keyboard_event_scan::@20
(label) keyboard_event_scan::@21
(label) keyboard_event_scan::@22
@ -1213,8 +1208,8 @@
(label) keyboard_event_scan::@29
(label) keyboard_event_scan::@3
(label) keyboard_event_scan::@4
(label) keyboard_event_scan::@6
(label) keyboard_event_scan::@8
(label) keyboard_event_scan::@5
(label) keyboard_event_scan::@7
(label) keyboard_event_scan::@9
(label) keyboard_event_scan::@return
(byte) keyboard_event_scan::col
@ -1239,8 +1234,8 @@
(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:8 200002.0
(byte) keyboard_events_size#100 keyboard_events_size zp ZP_BYTE:8 882.6176470588235
(byte) keyboard_events_size#110 keyboard_events_size zp ZP_BYTE:8 105.0
(byte) keyboard_events_size#118 keyboard_events_size zp ZP_BYTE:8 102001.2
(byte) keyboard_events_size#119 keyboard_events_size zp ZP_BYTE:8 4286.428571428572
(byte) keyboard_events_size#118 keyboard_events_size zp ZP_BYTE:8 4286.428571428572
(byte) keyboard_events_size#119 keyboard_events_size zp ZP_BYTE:8 102001.2
(byte) keyboard_events_size#18 keyboard_events_size zp ZP_BYTE:8 81000.90000000001
(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:8 200002.0
(byte) keyboard_events_size#24 keyboard_events_size zp ZP_BYTE:8 6.6923076923076925
@ -1353,18 +1348,18 @@
(byte*) print_str_lines::str#4 str zp ZP_WORD:3 1552.0
(byte*) print_str_lines::str#5 str zp ZP_WORD:3 1.0
(void()) render_preset_name((byte) render_preset_name::idx)
(label) render_preset_name::@1
(label) render_preset_name::@11
(label) render_preset_name::@13
(label) render_preset_name::@15
(label) render_preset_name::@17
(label) render_preset_name::@19
(label) render_preset_name::@2
(label) render_preset_name::@3
(label) render_preset_name::@43
(label) render_preset_name::@5
(label) render_preset_name::@7
(label) render_preset_name::@9
(label) render_preset_name::@22
(label) render_preset_name::@23
(label) render_preset_name::@24
(label) render_preset_name::@25
(label) render_preset_name::@26
(label) render_preset_name::@27
(label) render_preset_name::@28
(label) render_preset_name::@29
(label) render_preset_name::@30
(label) render_preset_name::@31
(label) render_preset_name::@32
(label) render_preset_name::@33
(label) render_preset_name::@return
(byte) render_preset_name::idx
(byte) render_preset_name::idx#0 reg byte a 4.0
@ -1373,8 +1368,8 @@
(byte*) render_preset_name::name
(const string) render_preset_name::name#0 name#0 = (string) "Standard Charset @"
(const string) render_preset_name::name#1 name#1 = (string) "Extended Color Charset @"
(const string) render_preset_name::name#10 name#10 = (string) "Standard Charset @"
(const string) render_preset_name::name#11 name#11 = (string) "8bpp Pixel Cell @"
(const string) render_preset_name::name#10 name#10 = (string) "8bpp Pixel Cell @"
(const string) render_preset_name::name#11 name#11 = (string) "Standard Charset @"
(byte*) render_preset_name::name#12 name zp ZP_WORD:3 2.0
(const string) render_preset_name::name#2 name#2 = (string) "Standard Bitmap @"
(const string) render_preset_name::name#3 name#3 = (string) "Multicolor Bitmap @"
@ -1389,27 +1384,27 @@ reg byte x [ gfx_mode::dtv_control#12 gfx_mode::dtv_control#6 gfx_mode::dtv_cont
reg byte x [ gfx_mode::vic_control#4 gfx_mode::vic_control#2 gfx_mode::vic_control#5 ]
reg byte a [ gfx_mode::vic_control2#2 ]
zp ZP_BYTE:2 [ gfx_mode::cy#4 gfx_mode::cy#1 keyboard_event_scan::row#2 keyboard_event_scan::row#1 keyboard_event_pressed::keycode#4 gfx_init_plane_fill::fill#6 gfx_init_plane_horisontal2::ay#4 gfx_init_plane_horisontal2::ay#1 gfx_init_plane_vertical::by#4 gfx_init_plane_vertical::by#1 gfx_init_plane_horisontal::ay#4 gfx_init_plane_horisontal::ay#1 gfx_init_plane_charset8::ch#8 gfx_init_plane_charset8::ch#1 gfx_init_plane_8bppchunky::y#6 gfx_init_plane_8bppchunky::y#1 gfx_init_vic_bitmap::l#2 gfx_init_vic_bitmap::l#1 bitmap_clear::y#4 bitmap_clear::y#1 gfx_init_charset::c#4 gfx_init_charset::c#1 gfx_init_screen4::cy#4 gfx_init_screen4::cy#1 gfx_init_screen3::cy#4 gfx_init_screen3::cy#1 gfx_init_screen2::cy#4 gfx_init_screen2::cy#1 gfx_init_screen1::cy#4 gfx_init_screen1::cy#1 gfx_init_screen0::cy#4 gfx_init_screen0::cy#1 gfx_mode::$65 bitmap_init::$6 ]
zp ZP_WORD:3 [ gfx_mode::vic_colors#2 gfx_mode::vic_colors#3 gfx_mode::vic_colors#1 gfx_mode::vic_colors#0 get_vic_screen::return#11 get_vic_screen::return#1 get_vic_screen::return#10 gfx_mode::$61 gfx_mode::$63 gfx_mode::$64 get_vic_charset::return#1 get_vic_charset::return#4 gfx_mode::$66 gfx_mode::$68 render_preset_name::name#12 print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 apply_preset::preset#13 apply_preset::preset#14 apply_preset::preset#12 form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 gfx_init_plane_fill::$6 gfx_init_plane_fill::$4 gfx_init_plane_fill::$5 gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::$3 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_mode::$33 gfx_mode::$35 gfx_mode::$37 gfx_mode::$47 gfx_mode::$49 gfx_mode::$51 form_field_ptr::return#2 form_render_values::field#0 form_field_ptr::return#0 form_field_ptr::$2 form_field_ptr::return#3 form_control::field#0 gfx_init_plane_fill::$1 bitmap_plot::plotter_x#0 bitmap_plot::$0 ]
zp ZP_WORD:5 [ gfx_mode::col#2 gfx_mode::col#3 gfx_mode::col#1 print_str_at::at#2 print_str_at::at#0 apply_preset::values#2 apply_preset::values#1 print_char_cursor#20 print_char_cursor#22 print_char_cursor#77 print_char_cursor#78 print_char_cursor#38 print_char_cursor#1 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 print_cls::$0 bitmap_plot::plotter_y#0 ]
zp ZP_WORD:3 [ gfx_mode::vic_colors#2 gfx_mode::vic_colors#3 gfx_mode::vic_colors#1 gfx_mode::vic_colors#0 get_vic_screen::return#11 get_vic_screen::return#5 get_vic_screen::return#10 gfx_mode::$61 gfx_mode::$63 gfx_mode::$64 get_vic_charset::return#2 get_vic_charset::return#4 gfx_mode::$66 gfx_mode::$68 render_preset_name::name#12 print_str_at::str#2 print_str_at::str#1 print_str_at::str#0 apply_preset::preset#13 form_set_screen::line#2 form_set_screen::line#1 print_str_lines::str#4 print_str_lines::str#3 print_str_lines::str#5 print_str_lines::str#0 print_cls::sc#2 print_cls::sc#0 print_cls::sc#1 gfx_init_plane_fill::gfxb#2 gfx_init_plane_fill::gfxb#3 gfx_init_plane_fill::gfxb#1 gfx_init_plane_fill::gfxb#6 gfx_init_plane_fill::$6 gfx_init_plane_fill::$4 gfx_init_plane_fill::$5 gfx_init_plane_horisontal2::gfxa#2 gfx_init_plane_horisontal2::gfxa#3 gfx_init_plane_horisontal2::gfxa#1 gfx_init_plane_vertical::gfxb#2 gfx_init_plane_vertical::gfxb#3 gfx_init_plane_vertical::gfxb#1 gfx_init_plane_horisontal::gfxa#3 gfx_init_plane_horisontal::gfxa#6 gfx_init_plane_horisontal::gfxa#7 gfx_init_plane_horisontal::gfxa#1 gfx_init_plane_horisontal::gfxa#2 gfx_init_plane_charset8::chargen#2 gfx_init_plane_charset8::chargen#3 gfx_init_plane_charset8::chargen#1 gfx_init_plane_8bppchunky::x#2 gfx_init_plane_8bppchunky::x#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::$3 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 gfx_init_charset::chargen#2 gfx_init_charset::chargen#3 gfx_init_charset::chargen#1 gfx_init_screen4::ch#2 gfx_init_screen4::ch#3 gfx_init_screen4::ch#1 gfx_init_screen3::ch#2 gfx_init_screen3::ch#3 gfx_init_screen3::ch#1 gfx_init_screen2::ch#2 gfx_init_screen2::ch#3 gfx_init_screen2::ch#1 gfx_init_screen1::ch#2 gfx_init_screen1::ch#3 gfx_init_screen1::ch#1 gfx_init_screen0::ch#2 gfx_init_screen0::ch#3 gfx_init_screen0::ch#1 gfx_mode::$33 gfx_mode::$35 gfx_mode::$37 gfx_mode::$47 gfx_mode::$49 gfx_mode::$51 form_field_ptr::return#2 form_render_values::field#0 form_field_ptr::return#0 form_field_ptr::$2 form_field_ptr::return#3 form_control::field#0 gfx_init_plane_fill::$1 bitmap_plot::plotter_x#0 bitmap_plot::$0 ]
zp ZP_WORD:5 [ gfx_mode::col#2 gfx_mode::col#3 gfx_mode::col#1 print_str_at::at#2 print_str_at::at#0 print_char_cursor#20 print_char_cursor#22 print_char_cursor#77 print_char_cursor#78 print_char_cursor#38 print_char_cursor#1 gfx_init_plane_charset8::gfxa#2 gfx_init_plane_charset8::gfxa#5 gfx_init_plane_charset8::gfxa#6 gfx_init_plane_charset8::gfxa#1 gfx_init_plane_8bppchunky::gfxb#4 gfx_init_plane_8bppchunky::gfxb#3 gfx_init_plane_8bppchunky::gfxb#5 gfx_init_plane_8bppchunky::gfxb#1 gfx_init_charset::charset#2 gfx_init_charset::charset#3 gfx_init_charset::charset#1 print_cls::$0 bitmap_plot::plotter_y#0 ]
reg byte x [ gfx_mode::cx#2 gfx_mode::cx#1 ]
reg byte x [ gfx_mode::i#2 gfx_mode::i#1 ]
reg byte x [ gfx_mode::j#2 gfx_mode::j#1 ]
reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#0 ]
reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ]
zp ZP_BYTE:7 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#15 keyboard_event_scan::keycode#1 gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 bitmap_line::xd#1 bitmap_line::xd#0 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::xd#1 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#1 bitmap_line_ydxd::xd#0 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::xd#1 keyboard_event_pressed::row_bits#0 gfx_init_screen3::$1 gfx_init_screen2::col2#0 gfx_init_screen0::$1 ]
zp ZP_BYTE:8 [ keyboard_events_size#18 keyboard_events_size#119 keyboard_events_size#110 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#4 keyboard_events_size#100 keyboard_events_size#118 keyboard_events_size#2 keyboard_events_size#1 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::yd#0 bitmap_line::yd#1 bitmap_line::yd#10 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#0 bitmap_line_xdyi::yd#1 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#1 bitmap_line_ydxd::yd#0 bitmap_line::yd#0 bitmap_line::yd#3 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#0 bitmap_line_xdyd::yd#1 ]
reg byte x [ gfx_mode::i#2 gfx_mode::i#1 ]
reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ]
reg byte x [ keyboard_modifiers#21 keyboard_modifiers#20 keyboard_modifiers#4 keyboard_modifiers#19 keyboard_modifiers#3 keyboard_modifiers#18 keyboard_modifiers#5 ]
reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ]
zp ZP_BYTE:7 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 gfx_init_plane_fill::by#4 gfx_init_plane_fill::by#1 gfx_init_plane_charset8::cr#6 gfx_init_plane_charset8::cr#1 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 bitmap_line::yd#1 bitmap_line::yd#10 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 bitmap_line::yd#0 bitmap_line::yd#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 keyboard_event_pressed::row_bits#0 gfx_init_screen3::$1 gfx_init_screen2::col2#0 gfx_init_screen0::$1 ]
zp ZP_BYTE:8 [ keyboard_events_size#18 keyboard_events_size#118 keyboard_events_size#110 keyboard_events_size#47 keyboard_events_size#27 keyboard_events_size#24 keyboard_events_size#100 keyboard_events_size#4 keyboard_events_size#119 keyboard_events_size#2 keyboard_events_size#1 gfx_init_plane_charset8::bits#2 gfx_init_plane_charset8::bits#0 gfx_init_plane_charset8::bits#1 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 bitmap_line::xd#1 bitmap_line::xd#0 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ]
reg byte a [ get_vic_screen::idx#2 get_vic_screen::idx#0 get_vic_screen::idx#1 ]
reg byte a [ get_plane::idx#10 get_plane::idx#1 get_plane::idx#0 ]
zp ZP_DWORD:9 [ get_plane::return#1 get_plane::return#16 get_plane::return#17 gfx_mode::$31 gfx_mode::plane_a#0 gfx_mode::$45 gfx_mode::plane_b#0 gfx_init_plane_fill::plane_addr#3 ]
zp ZP_DWORD:9 [ get_plane::return#14 get_plane::return#16 get_plane::return#17 gfx_mode::$31 gfx_mode::plane_a#0 gfx_mode::$45 gfx_mode::plane_b#0 gfx_init_plane_fill::plane_addr#3 ]
reg byte x [ form_mode::i#2 form_mode::i#1 ]
zp ZP_BYTE:13 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::y1#0 bitmap_line::y0#0 bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::y1#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
zp ZP_BYTE:14 [ form_field_idx#28 form_field_idx#1 form_field_idx#18 form_field_idx#32 form_field_idx#44 form_field_idx#45 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#2 bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
zp ZP_BYTE:15 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::x1#1 bitmap_line::x0#0 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 bitmap_line_xdyd::$6 ]
zp ZP_BYTE:13 [ form_cursor_count#21 form_cursor_count#1 form_cursor_count#16 form_cursor_count#15 form_cursor_count#5 gfx_init_plane_charset8::col#2 gfx_init_plane_charset8::col#5 gfx_init_plane_charset8::col#6 gfx_init_plane_charset8::col#1 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 bitmap_line::x0#0 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
zp ZP_BYTE:14 [ form_field_idx#28 form_field_idx#1 form_field_idx#18 form_field_idx#32 form_field_idx#44 form_field_idx#45 bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line::y0#0 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
zp ZP_BYTE:15 [ form_mode::preset_current#6 form_mode::preset_current#0 form_mode::preset_current#1 bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 bitmap_line_xdyd::$6 ]
reg byte a [ render_preset_name::idx#10 render_preset_name::idx#0 render_preset_name::idx#1 ]
reg byte x [ form_render_values::idx#2 form_render_values::idx#1 ]
reg byte x [ form_field_ptr::field_idx#2 form_field_ptr::field_idx#1 form_field_ptr::field_idx#0 ]
reg byte x [ apply_preset::i#2 apply_preset::i#1 ]
reg byte y [ apply_preset::i#2 apply_preset::i#1 ]
reg byte x [ form_control::return#2 ]
reg byte x [ form_set_screen::y#2 form_set_screen::y#1 ]
zp ZP_WORD:16 [ print_line_cursor#21 print_line_cursor#2 print_set_screen::screen#2 print_line_cursor#22 gfx_init_plane_8bppchunky::$6 ]
@ -1421,13 +1416,13 @@ reg byte x [ gfx_init_plane_horisontal::ax#2 gfx_init_plane_horisontal::ax#1 ]
reg byte x [ gfx_init_plane_charset8::cp#2 gfx_init_plane_charset8::cp#1 ]
reg byte a [ gfx_init_plane_charset8::c#2 gfx_init_plane_charset8::c#3 ]
reg byte x [ gfx_init_plane_8bppchunky::gfxbCpuBank#4 gfx_init_plane_8bppchunky::gfxbCpuBank#7 gfx_init_plane_8bppchunky::gfxbCpuBank#8 gfx_init_plane_8bppchunky::gfxbCpuBank#2 ]
reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
reg byte x [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ]
reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ]
reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ]
reg byte x [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#2 ]
reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
zp ZP_BYTE:18 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::x1#1 bitmap_line::x1#0 keyboard_event_scan::row_scan#0 bitmap_line_xdyi::$6 ]
reg byte x [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#2 ]
reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
zp ZP_BYTE:18 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 bitmap_line::x1#0 keyboard_event_scan::row_scan#0 bitmap_line_xdyi::$6 ]
reg byte x [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ]
reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ]
reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
@ -1472,18 +1467,18 @@ reg byte a [ keyboard_event_get::return#3 ]
reg byte a [ gfx_mode::keyboard_event#0 ]
reg byte x [ keyboard_matrix_read::rowid#0 ]
reg byte a [ keyboard_matrix_read::return#2 ]
reg byte a [ keyboard_event_pressed::return#0 ]
reg byte a [ keyboard_event_scan::$14 ]
reg byte a [ keyboard_event_pressed::return#1 ]
reg byte a [ keyboard_event_scan::$18 ]
reg byte a [ keyboard_event_pressed::return#2 ]
reg byte a [ keyboard_event_scan::$22 ]
reg byte a [ keyboard_event_pressed::return#3 ]
reg byte a [ keyboard_event_scan::$26 ]
reg byte a [ keyboard_event_scan::$3 ]
reg byte a [ keyboard_event_scan::$4 ]
reg byte a [ keyboard_event_scan::event_type#0 ]
reg byte a [ keyboard_event_scan::$12 ]
reg byte a [ keyboard_event_pressed::return#0 ]
reg byte a [ keyboard_event_scan::$16 ]
reg byte a [ keyboard_event_pressed::return#1 ]
reg byte a [ keyboard_event_scan::$20 ]
reg byte a [ keyboard_event_pressed::return#2 ]
reg byte a [ keyboard_event_scan::$24 ]
reg byte a [ keyboard_event_pressed::return#3 ]
reg byte a [ keyboard_event_scan::$28 ]
reg byte a [ keyboard_event_scan::$11 ]
reg byte a [ keyboard_event_pressed::$0 ]
reg byte a [ keyboard_event_pressed::$1 ]
reg byte a [ keyboard_event_pressed::return#10 ]
@ -1493,13 +1488,13 @@ reg byte a [ form_mode::$36 ]
reg byte a [ apply_preset::idx#0 ]
reg byte y [ form_field_ptr::y#0 ]
reg byte a [ form_field_ptr::x#0 ]
reg byte a [ form_control::$6 ]
reg byte a [ form_control::$5 ]
reg byte a [ keyboard_event_get::return#4 ]
reg byte a [ form_control::key_event#0 ]
reg byte a [ form_control::$11 ]
reg byte a [ form_control::$12 ]
reg byte a [ form_control::$13 ]
reg byte a [ form_control::$24 ]
reg byte a [ form_control::$7 ]
reg byte a [ form_control::$22 ]
reg byte a [ form_control::$6 ]
reg byte a [ form_set_screen::$0 ]
reg byte a [ form_set_screen::$1 ]
reg byte a [ print_str_lines::ch#0 ]
@ -1511,8 +1506,8 @@ reg byte a [ gfx_init_plane_horisontal::$5 ]
reg byte a [ gfx_init_plane_charset8::$5 ]
reg byte a [ gfx_init_plane_8bppchunky::c#0 ]
reg byte y [ bitmap_line::y1#0 ]
reg byte y [ bitmap_line_ydxi::$6 ]
reg byte a [ bitmap_plot::$1 ]
reg byte y [ bitmap_line_ydxi::$6 ]
reg byte y [ bitmap_line_ydxd::$6 ]
reg byte a [ bitmap_init::$0 ]
reg byte a [ bitmap_init::$7 ]

@ -799,9 +799,9 @@ mode_twoplanebitmap: {
lda #4
and ay
cmp #0
bne b6
lda #0
tay
beq b6
lda #$ff
ldy #0
sta (gfxa),y
inc gfxa
bne !+
@ -843,8 +843,8 @@ mode_twoplanebitmap: {
jsr mode_ctrl
rts
b6:
lda #$ff
ldy #0
lda #0
tay
sta (gfxa),y
inc gfxa
bne !+
@ -1350,132 +1350,135 @@ mode_stdbitmap: {
lines_y: .byte 0, 0, $c7, $c7, 0, 0, $64, $c7, $64, 0
}
bitmap_line: {
.label xd = 7
.label yd = 8
.label x0 = $b
.label xd = 8
.label yd = 7
.label x0 = 9
.label x1 = $c
.label y0 = 9
.label y0 = $a
lda x0
cmp x1
bcs b1
lda x1
bcc b1
sec
sbc x0
sbc x1
sta xd
lda y0
sty $ff
cmp $ff
bcs b2
tya
sec
sbc y0
sta yd
cmp xd
bcs b3
ldx x0
lda x1
sta bitmap_line_xdyi.x1
jsr bitmap_line_xdyi
breturn:
rts
b3:
lda y0
sta bitmap_line_ydxi.y
ldx x0
sty bitmap_line_ydxi.y1
jsr bitmap_line_ydxi
jmp breturn
b2:
cmp y0
beq !+
bcs b2
!:
tya
eor #$ff
sec
adc y0
sta yd
cmp xd
bcs b6
ldx x0
jsr bitmap_line_xdyd
jmp breturn
b6:
sty bitmap_line_ydxd.y
bcc b3
sty bitmap_line_ydxi.y
ldx x1
jsr bitmap_line_ydxd
jsr bitmap_line_ydxi
breturn:
rts
b3:
ldx x1
sty bitmap_line_xdyi.y
jsr bitmap_line_xdyi
jmp breturn
b1:
lda x0
sec
sbc x1
sta xd
lda y0
sty $ff
cmp $ff
bcs b9
b2:
tya
sec
sbc y0
sta yd
cmp xd
bcs b10
ldx x1
sty bitmap_line_xdyd.y
lda x0
sta bitmap_line_xdyd.x1
jsr bitmap_line_xdyd
jmp breturn
b10:
bcc b6
lda y0
sta bitmap_line_ydxd.y
ldx x0
sty bitmap_line_ydxd.y1
jsr bitmap_line_ydxd
jmp breturn
b9:
b6:
ldx x1
sty bitmap_line_xdyd.y
lda x0
sta bitmap_line_xdyd.x1
jsr bitmap_line_xdyd
jmp breturn
b1:
lda x1
sec
sbc x0
sta xd
tya
cmp y0
beq !+
bcs b9
!:
tya
eor #$ff
sec
adc y0
sta yd
cmp xd
bcs b13
bcc b10
sty bitmap_line_ydxd.y
ldx x1
sty bitmap_line_xdyi.y
jsr bitmap_line_xdyi
jsr bitmap_line_ydxd
jmp breturn
b13:
sty bitmap_line_ydxi.y
ldx x1
b10:
ldx x0
jsr bitmap_line_xdyd
jmp breturn
b9:
tya
sec
sbc y0
sta yd
cmp xd
bcc b13
lda y0
sta bitmap_line_ydxi.y
ldx x0
sty bitmap_line_ydxi.y1
jsr bitmap_line_ydxi
jmp breturn
b13:
ldx x0
lda x1
sta bitmap_line_xdyi.x1
jsr bitmap_line_xdyi
jmp breturn
}
bitmap_line_ydxi: {
bitmap_line_xdyi: {
.label _6 = $c
.label y = $a
.label y1 = 9
.label yd = 8
.label xd = 7
.label x1 = 9
.label xd = 8
.label yd = 7
.label e = $b
lda xd
lda yd
lsr
sta e
b1:
ldy y
jsr bitmap_plot
inc y
lda e
clc
adc xd
sta e
lda yd
cmp e
bcs b2
inx
lda e
clc
adc yd
sta e
lda xd
cmp e
bcs b2
inc y
lda e
sec
sbc yd
sbc xd
sta e
b2:
ldy y1
ldy x1
iny
cpy y
sty _6
cpx _6
bne b1
rts
}
@ -1504,46 +1507,12 @@ bitmap_plot: {
sta (_0),y
rts
}
bitmap_line_xdyi: {
.label _6 = $c
.label y = 9
.label x1 = $b
.label xd = 7
.label yd = 8
.label e = $a
lda yd
lsr
sta e
b1:
ldy y
jsr bitmap_plot
inx
lda e
clc
adc yd
sta e
lda xd
cmp e
bcs b2
inc y
lda e
sec
sbc xd
sta e
b2:
ldy x1
iny
sty _6
cpx _6
bne b1
rts
}
bitmap_line_ydxd: {
.label y = $a
.label y1 = 9
.label yd = 8
.label xd = 7
.label e = $b
bitmap_line_ydxi: {
.label y = $b
.label y1 = $a
.label yd = 7
.label xd = 8
.label e = 9
lda xd
lsr
sta e
@ -1558,7 +1527,7 @@ bitmap_line_ydxd: {
lda yd
cmp e
bcs b2
dex
inx
lda e
sec
sbc yd
@ -1572,11 +1541,11 @@ bitmap_line_ydxd: {
}
bitmap_line_xdyd: {
.label _6 = $b
.label y = 9
.label y = $a
.label x1 = $c
.label xd = 7
.label yd = 8
.label e = $a
.label xd = 8
.label yd = 7
.label e = 9
lda yd
lsr
sta e
@ -1604,6 +1573,38 @@ bitmap_line_xdyd: {
bne b1
rts
}
bitmap_line_ydxd: {
.label y = $b
.label y1 = $a
.label yd = 7
.label xd = 8
.label e = 9
lda xd
lsr
sta e
b1:
ldy y
jsr bitmap_plot
inc y
lda e
clc
adc xd
sta e
lda yd
cmp e
bcs b2
dex
lda e
sec
sbc yd
sta e
b2:
ldy y1
iny
cpy y
bne b1
rts
}
bitmap_clear: {
.label bitmap = 2
.label y = 4

@ -662,10 +662,10 @@ mode_twoplanebitmap::@5: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::
[372] (byte) mode_twoplanebitmap::ax#2 ← phi( mode_twoplanebitmap::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 mode_twoplanebitmap::@7/(byte) mode_twoplanebitmap::ax#1 ) [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
[372] (byte*) mode_twoplanebitmap::gfxa#3 ← phi( mode_twoplanebitmap::@4/(byte*) mode_twoplanebitmap::gfxa#6 mode_twoplanebitmap::@7/(byte*) mode_twoplanebitmap::gfxa#7 ) [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
[373] (byte~) mode_twoplanebitmap::$21 ← (byte) mode_twoplanebitmap::ay#4 & (byte/signed byte/word/signed word/dword/signed dword) 4 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::$21 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::$21 ] )
[374] if((byte~) mode_twoplanebitmap::$21!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_twoplanebitmap::@6 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
[374] if((byte~) mode_twoplanebitmap::$21==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mode_twoplanebitmap::@6 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
to:mode_twoplanebitmap::@13
mode_twoplanebitmap::@13: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@5
[375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
[375] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
[376] (byte*) mode_twoplanebitmap::gfxa#2 ← ++ (byte*) mode_twoplanebitmap::gfxa#3 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::gfxa#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::gfxa#2 ] )
to:mode_twoplanebitmap::@7
mode_twoplanebitmap::@7: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@13 mode_twoplanebitmap::@6
@ -701,7 +701,7 @@ mode_twoplanebitmap::@return: scope:[mode_twoplanebitmap] from mode_twoplanebit
[392] return [ ] ( main:2::menu:9::mode_twoplanebitmap:97 [ ] )
to:@return
mode_twoplanebitmap::@6: scope:[mode_twoplanebitmap] from mode_twoplanebitmap::@5
[393] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/word/signed word/dword/signed dword) 255 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
[393] *((byte*) mode_twoplanebitmap::gfxa#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::gfxa#3 mode_twoplanebitmap::ax#2 ] )
[394] (byte*) mode_twoplanebitmap::gfxa#1 ← ++ (byte*) mode_twoplanebitmap::gfxa#3 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::gfxa#1 ] ( main:2::menu:9::mode_twoplanebitmap:97 [ mode_twoplanebitmap::ay#4 mode_twoplanebitmap::ax#2 mode_twoplanebitmap::gfxa#1 ] )
to:mode_twoplanebitmap::@7
mode_sixsfred2: scope:[mode_sixsfred2] from menu::@36
@ -1022,246 +1022,246 @@ mode_stdbitmap::@return: scope:[mode_stdbitmap] from mode_stdbitmap::@8
[591] return [ ] ( main:2::menu:9::mode_stdbitmap:62 [ ] )
to:@return
bitmap_line: scope:[bitmap_line] from mode_stdbitmap::@4
[592] if((byte) bitmap_line::x0#0>=(byte) bitmap_line::x1#0) goto bitmap_line::@1 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 ] )
[592] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 ] )
to:bitmap_line::@15
bitmap_line::@15: scope:[bitmap_line] from bitmap_line
[593] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x1#0 - (byte) bitmap_line::x0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] )
[594] if((byte) bitmap_line::y0#0>=(byte) bitmap_line::y1#0) goto bitmap_line::@2 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] )
[593] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x0#0 - (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] )
[594] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@2 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 ] )
to:bitmap_line::@16
bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@15
[595] (byte) bitmap_line::yd#1 ← (byte) bitmap_line::y1#0 - (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] )
[596] if((byte) bitmap_line::yd#1>=(byte) bitmap_line::xd#1) goto bitmap_line::@3 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] )
[595] (byte) bitmap_line::yd#1 ← (byte) bitmap_line::y0#0 - (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] )
[596] if((byte) bitmap_line::yd#1<(byte) bitmap_line::xd#1) goto bitmap_line::@3 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 ] )
to:bitmap_line::@17
bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@16
[597] (byte) bitmap_line_xdyi::x#0 ← (byte) bitmap_line::x0#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 ] )
[598] (byte) bitmap_line_xdyi::y#0 ← (byte) bitmap_line::y0#0 [ bitmap_line::x1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 ] )
[599] (byte) bitmap_line_xdyi::x1#0 ← (byte) bitmap_line::x1#0 [ bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 ] )
[600] (byte) bitmap_line_xdyi::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 ] )
[601] (byte) bitmap_line_xdyi::yd#0 ← (byte) bitmap_line::yd#1 [ bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::yd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::yd#0 ] )
[602] call bitmap_line_xdyi param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
[597] (byte) bitmap_line_ydxi::y#0 ← (byte) bitmap_line::y1#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 ] )
[598] (byte) bitmap_line_ydxi::x#0 ← (byte) bitmap_line::x1#0 [ bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 ] )
[599] (byte) bitmap_line_ydxi::y1#0 ← (byte) bitmap_line::y0#0 [ bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 ] )
[600] (byte) bitmap_line_ydxi::yd#0 ← (byte) bitmap_line::yd#1 [ bitmap_line::xd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 ] )
[601] (byte) bitmap_line_ydxi::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::xd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::xd#0 ] )
[602] call bitmap_line_ydxi param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
to:bitmap_line::@return
bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@13 bitmap_line::@17 bitmap_line::@20 bitmap_line::@24 bitmap_line::@27 bitmap_line::@3 bitmap_line::@6
[603] return [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
to:@return
bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@16
[604] (byte) bitmap_line_ydxi::y#0 ← (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 ] )
[605] (byte) bitmap_line_ydxi::x#0 ← (byte) bitmap_line::x0#0 [ bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 ] )
[606] (byte) bitmap_line_ydxi::y1#0 ← (byte) bitmap_line::y1#0 [ bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 ] )
[607] (byte) bitmap_line_ydxi::yd#0 ← (byte) bitmap_line::yd#1 [ bitmap_line::xd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 ] )
[608] (byte) bitmap_line_ydxi::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::xd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_ydxi::y#0 bitmap_line_ydxi::x#0 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::xd#0 ] )
[609] call bitmap_line_ydxi param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
[604] (byte) bitmap_line_xdyi::x#0 ← (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 ] )
[605] (byte) bitmap_line_xdyi::y#0 ← (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 ] )
[606] (byte) bitmap_line_xdyi::x1#0 ← (byte) bitmap_line::x0#0 [ bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#1 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 ] )
[607] (byte) bitmap_line_xdyi::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::yd#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 ] )
[608] (byte) bitmap_line_xdyi::yd#0 ← (byte) bitmap_line::yd#1 [ bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::yd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_xdyi::x#0 bitmap_line_xdyi::y#0 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::yd#0 ] )
[609] call bitmap_line_xdyi param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
to:bitmap_line::@return
bitmap_line::@2: scope:[bitmap_line] from bitmap_line::@15
[610] (byte) bitmap_line::yd#0 ← (byte) bitmap_line::y0#0 - (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] )
[611] if((byte) bitmap_line::yd#0>=(byte) bitmap_line::xd#1) goto bitmap_line::@6 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] )
[610] (byte) bitmap_line::yd#0 ← (byte) bitmap_line::y1#0 - (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] )
[611] if((byte) bitmap_line::yd#0<(byte) bitmap_line::xd#1) goto bitmap_line::@6 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 ] )
to:bitmap_line::@20
bitmap_line::@20: scope:[bitmap_line] from bitmap_line::@2
[612] (byte) bitmap_line_xdyd::x#0 ← (byte) bitmap_line::x0#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 ] )
[613] (byte) bitmap_line_xdyd::y#0 ← (byte) bitmap_line::y0#0 [ bitmap_line::x1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 ] )
[614] (byte) bitmap_line_xdyd::x1#0 ← (byte) bitmap_line::x1#0 [ bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 ] )
[615] (byte) bitmap_line_xdyd::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 ] )
[616] (byte) bitmap_line_xdyd::yd#0 ← (byte) bitmap_line::yd#0 [ bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::yd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::yd#0 ] )
[617] call bitmap_line_xdyd param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
[612] (byte) bitmap_line_ydxd::y#0 ← (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 ] )
[613] (byte) bitmap_line_ydxd::x#0 ← (byte) bitmap_line::x0#0 [ bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 ] )
[614] (byte) bitmap_line_ydxd::y1#0 ← (byte) bitmap_line::y1#0 [ bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 ] )
[615] (byte) bitmap_line_ydxd::yd#0 ← (byte) bitmap_line::yd#0 [ bitmap_line::xd#1 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#1 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 ] )
[616] (byte) bitmap_line_ydxd::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::xd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::xd#0 ] )
[617] call bitmap_line_ydxd param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
to:bitmap_line::@return
bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@2
[618] (byte) bitmap_line_ydxd::y#0 ← (byte) bitmap_line::y1#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 ] )
[619] (byte) bitmap_line_ydxd::x#0 ← (byte) bitmap_line::x1#0 [ bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::y0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 ] )
[620] (byte) bitmap_line_ydxd::y1#0 ← (byte) bitmap_line::y0#0 [ bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 ] )
[621] (byte) bitmap_line_ydxd::yd#0 ← (byte) bitmap_line::yd#0 [ bitmap_line::xd#1 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#1 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 ] )
[622] (byte) bitmap_line_ydxd::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::xd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_ydxd::y#0 bitmap_line_ydxd::x#0 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::xd#0 ] )
[623] call bitmap_line_ydxd param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
[618] (byte) bitmap_line_xdyd::x#0 ← (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 ] )
[619] (byte) bitmap_line_xdyd::y#0 ← (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 ] )
[620] (byte) bitmap_line_xdyd::x1#0 ← (byte) bitmap_line::x0#0 [ bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#1 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 ] )
[621] (byte) bitmap_line_xdyd::xd#0 ← (byte) bitmap_line::xd#1 [ bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::yd#0 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 ] )
[622] (byte) bitmap_line_xdyd::yd#0 ← (byte) bitmap_line::yd#0 [ bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::yd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_xdyd::x#0 bitmap_line_xdyd::y#0 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::yd#0 ] )
[623] call bitmap_line_xdyd param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
to:bitmap_line::@return
bitmap_line::@1: scope:[bitmap_line] from bitmap_line
[624] (byte) bitmap_line::xd#0 ← (byte) bitmap_line::x0#0 - (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] )
[625] if((byte) bitmap_line::y0#0>=(byte) bitmap_line::y1#0) goto bitmap_line::@9 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] )
[624] (byte) bitmap_line::xd#0 ← (byte) bitmap_line::x1#0 - (byte) bitmap_line::x0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] )
[625] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@9 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 ] )
to:bitmap_line::@23
bitmap_line::@23: scope:[bitmap_line] from bitmap_line::@1
[626] (byte) bitmap_line::yd#3 ← (byte) bitmap_line::y1#0 - (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] )
[627] if((byte) bitmap_line::yd#3>=(byte) bitmap_line::xd#0) goto bitmap_line::@10 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] )
[626] (byte) bitmap_line::yd#3 ← (byte) bitmap_line::y0#0 - (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] )
[627] if((byte) bitmap_line::yd#3<(byte) bitmap_line::xd#0) goto bitmap_line::@10 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 ] )
to:bitmap_line::@24
bitmap_line::@24: scope:[bitmap_line] from bitmap_line::@23
[628] (byte) bitmap_line_xdyd::x#1 ← (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 ] )
[629] (byte) bitmap_line_xdyd::y#1 ← (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 ] )
[630] (byte) bitmap_line_xdyd::x1#1 ← (byte) bitmap_line::x0#0 [ bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 ] )
[631] (byte) bitmap_line_xdyd::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 ] )
[632] (byte) bitmap_line_xdyd::yd#1 ← (byte) bitmap_line::yd#3 [ bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::yd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::yd#1 ] )
[633] call bitmap_line_xdyd param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
[628] (byte) bitmap_line_ydxd::y#1 ← (byte) bitmap_line::y1#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 ] )
[629] (byte) bitmap_line_ydxd::x#1 ← (byte) bitmap_line::x1#0 [ bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 ] )
[630] (byte) bitmap_line_ydxd::y1#1 ← (byte) bitmap_line::y0#0 [ bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 ] )
[631] (byte) bitmap_line_ydxd::yd#1 ← (byte) bitmap_line::yd#3 [ bitmap_line::xd#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 ] )
[632] (byte) bitmap_line_ydxd::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 bitmap_line_ydxd::xd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 bitmap_line_ydxd::xd#1 ] )
[633] call bitmap_line_ydxd param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
to:bitmap_line::@return
bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@23
[634] (byte) bitmap_line_ydxd::y#1 ← (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 ] )
[635] (byte) bitmap_line_ydxd::x#1 ← (byte) bitmap_line::x0#0 [ bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 ] )
[636] (byte) bitmap_line_ydxd::y1#1 ← (byte) bitmap_line::y1#0 [ bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 ] )
[637] (byte) bitmap_line_ydxd::yd#1 ← (byte) bitmap_line::yd#3 [ bitmap_line::xd#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 ] )
[638] (byte) bitmap_line_ydxd::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 bitmap_line_ydxd::xd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_ydxd::y#1 bitmap_line_ydxd::x#1 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::yd#1 bitmap_line_ydxd::xd#1 ] )
[639] call bitmap_line_ydxd param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
[634] (byte) bitmap_line_xdyd::x#1 ← (byte) bitmap_line::x0#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 ] )
[635] (byte) bitmap_line_xdyd::y#1 ← (byte) bitmap_line::y0#0 [ bitmap_line::x1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x1#0 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 ] )
[636] (byte) bitmap_line_xdyd::x1#1 ← (byte) bitmap_line::x1#0 [ bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#0 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 ] )
[637] (byte) bitmap_line_xdyd::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::yd#3 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 ] )
[638] (byte) bitmap_line_xdyd::yd#1 ← (byte) bitmap_line::yd#3 [ bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::yd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_xdyd::x#1 bitmap_line_xdyd::y#1 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::yd#1 ] )
[639] call bitmap_line_xdyd param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
to:bitmap_line::@return
bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@1
[640] (byte) bitmap_line::yd#10 ← (byte) bitmap_line::y0#0 - (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] )
[641] if((byte) bitmap_line::yd#10>=(byte) bitmap_line::xd#0) goto bitmap_line::@13 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] )
[640] (byte) bitmap_line::yd#10 ← (byte) bitmap_line::y1#0 - (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] )
[641] if((byte) bitmap_line::yd#10<(byte) bitmap_line::xd#0) goto bitmap_line::@13 [ bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 ] )
to:bitmap_line::@27
bitmap_line::@27: scope:[bitmap_line] from bitmap_line::@9
[642] (byte) bitmap_line_xdyi::x#1 ← (byte) bitmap_line::x1#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 ] )
[643] (byte) bitmap_line_xdyi::y#1 ← (byte) bitmap_line::y1#0 [ bitmap_line::x0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 ] )
[644] (byte) bitmap_line_xdyi::x1#1 ← (byte) bitmap_line::x0#0 [ bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 ] )
[645] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 ] )
[646] (byte) bitmap_line_xdyi::yd#1 ← (byte) bitmap_line::yd#10 [ bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::yd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::yd#1 ] )
[647] call bitmap_line_xdyi param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
[642] (byte) bitmap_line_ydxi::y#1 ← (byte) bitmap_line::y0#0 [ bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x0#0 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 ] )
[643] (byte) bitmap_line_ydxi::x#1 ← (byte) bitmap_line::x0#0 [ bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::y1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 ] )
[644] (byte) bitmap_line_ydxi::y1#1 ← (byte) bitmap_line::y1#0 [ bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 ] )
[645] (byte) bitmap_line_ydxi::yd#1 ← (byte) bitmap_line::yd#10 [ bitmap_line::xd#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 ] )
[646] (byte) bitmap_line_ydxi::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::xd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::xd#1 ] )
[647] call bitmap_line_ydxi param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
to:bitmap_line::@return
bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@9
[648] (byte) bitmap_line_ydxi::y#1 ← (byte) bitmap_line::y1#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 ] )
[649] (byte) bitmap_line_ydxi::x#1 ← (byte) bitmap_line::x1#0 [ bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 ] )
[650] (byte) bitmap_line_ydxi::y1#1 ← (byte) bitmap_line::y0#0 [ bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 ] )
[651] (byte) bitmap_line_ydxi::yd#1 ← (byte) bitmap_line::yd#10 [ bitmap_line::xd#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 ] )
[652] (byte) bitmap_line_ydxi::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::xd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_ydxi::y#1 bitmap_line_ydxi::x#1 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::xd#1 ] )
[653] call bitmap_line_ydxi param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
[648] (byte) bitmap_line_xdyi::x#1 ← (byte) bitmap_line::x0#0 [ bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x1#0 bitmap_line::y0#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 ] )
[649] (byte) bitmap_line_xdyi::y#1 ← (byte) bitmap_line::y0#0 [ bitmap_line::x1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::x1#0 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 ] )
[650] (byte) bitmap_line_xdyi::x1#1 ← (byte) bitmap_line::x1#0 [ bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::xd#0 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 ] )
[651] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#0 [ bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line::yd#10 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 ] )
[652] (byte) bitmap_line_xdyi::yd#1 ← (byte) bitmap_line::yd#10 [ bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::yd#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 bitmap_line_xdyi::x#1 bitmap_line_xdyi::y#1 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::yd#1 ] )
[653] call bitmap_line_xdyi param-assignment [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586 [ mode_stdbitmap::l#2 ] )
to:bitmap_line::@return
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@13 bitmap_line::@3
[654] (byte) bitmap_line_ydxi::y1#6 ← phi( bitmap_line::@13/(byte) bitmap_line_ydxi::y1#1 bitmap_line::@3/(byte) bitmap_line_ydxi::y1#0 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[654] (byte) bitmap_line_ydxi::yd#5 ← phi( bitmap_line::@13/(byte) bitmap_line_ydxi::yd#1 bitmap_line::@3/(byte) bitmap_line_ydxi::yd#0 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[654] (byte) bitmap_line_ydxi::y#6 ← phi( bitmap_line::@13/(byte) bitmap_line_ydxi::y#1 bitmap_line::@3/(byte) bitmap_line_ydxi::y#0 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[654] (byte) bitmap_line_ydxi::x#5 ← phi( bitmap_line::@13/(byte) bitmap_line_ydxi::x#1 bitmap_line::@3/(byte) bitmap_line_ydxi::x#0 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[654] (byte) bitmap_line_ydxi::xd#2 ← phi( bitmap_line::@13/(byte) bitmap_line_ydxi::xd#1 bitmap_line::@3/(byte) bitmap_line_ydxi::xd#0 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[655] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] )
to:bitmap_line_ydxi::@1
bitmap_line_ydxi::@1: scope:[bitmap_line_ydxi] from bitmap_line_ydxi bitmap_line_ydxi::@2
[656] (byte) bitmap_line_ydxi::e#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::e#0 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::e#6 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[656] (byte) bitmap_line_ydxi::y#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::y#6 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::y#2 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[656] (byte) bitmap_line_ydxi::x#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::x#5 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::x#6 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[657] (byte) bitmap_plot::x#2 ← (byte) bitmap_line_ydxi::x#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 ] )
[658] (byte) bitmap_plot::y#2 ← (byte) bitmap_line_ydxi::y#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#2 bitmap_plot::y#2 ] )
[659] call bitmap_plot param-assignment [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
to:bitmap_line_ydxi::@5
bitmap_line_ydxi::@5: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@1
[660] (byte) bitmap_line_ydxi::y#2 ← ++ (byte) bitmap_line_ydxi::y#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::e#3 bitmap_line_ydxi::y#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::e#3 bitmap_line_ydxi::y#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::e#3 bitmap_line_ydxi::y#2 ] )
[661] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] )
[662] if((byte) bitmap_line_ydxi::yd#5>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] )
to:bitmap_line_ydxi::@3
bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@5
[663] (byte) bitmap_line_ydxi::x#2 ← ++ (byte) bitmap_line_ydxi::x#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 bitmap_line_ydxi::x#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 bitmap_line_ydxi::x#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 bitmap_line_ydxi::x#2 ] )
[664] (byte) bitmap_line_ydxi::e#2 ← (byte) bitmap_line_ydxi::e#1 - (byte) bitmap_line_ydxi::yd#5 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] )
to:bitmap_line_ydxi::@2
bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap_line_ydxi::@5
[665] (byte) bitmap_line_ydxi::e#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::e#2 bitmap_line_ydxi::@5/(byte) bitmap_line_ydxi::e#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] )
[665] (byte) bitmap_line_ydxi::x#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::x#2 bitmap_line_ydxi::@5/(byte) bitmap_line_ydxi::x#3 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] )
[666] (byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6 ← (byte) bitmap_line_ydxi::y1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] )
[667] if((byte) bitmap_line_ydxi::y#2!=(byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] )
to:bitmap_line_ydxi::@return
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
[668] return [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609 [ mode_stdbitmap::l#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653 [ mode_stdbitmap::l#2 ] )
to:@return
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
[669] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 ) [ bitmap_plot::x#4 bitmap_plot::y#4 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] )
[669] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 ) [ bitmap_plot::x#4 bitmap_plot::y#4 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] )
[670] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] )
[671] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] )
[672] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::$0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] )
[673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] )
[674] *((byte*)(word~) bitmap_plot::$0) ← (byte~) bitmap_plot::$1 [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[675] return [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
to:@return
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@17 bitmap_line::@27
[676] (byte) bitmap_line_xdyi::x1#6 ← phi( bitmap_line::@17/(byte) bitmap_line_xdyi::x1#0 bitmap_line::@27/(byte) bitmap_line_xdyi::x1#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[676] (byte) bitmap_line_xdyi::xd#5 ← phi( bitmap_line::@17/(byte) bitmap_line_xdyi::xd#0 bitmap_line::@27/(byte) bitmap_line_xdyi::xd#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[676] (byte) bitmap_line_xdyi::y#5 ← phi( bitmap_line::@17/(byte) bitmap_line_xdyi::y#0 bitmap_line::@27/(byte) bitmap_line_xdyi::y#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[676] (byte) bitmap_line_xdyi::x#6 ← phi( bitmap_line::@17/(byte) bitmap_line_xdyi::x#0 bitmap_line::@27/(byte) bitmap_line_xdyi::x#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[676] (byte) bitmap_line_xdyi::yd#2 ← phi( bitmap_line::@17/(byte) bitmap_line_xdyi::yd#0 bitmap_line::@27/(byte) bitmap_line_xdyi::yd#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[677] (byte) bitmap_line_xdyi::e#0 ← (byte) bitmap_line_xdyi::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] )
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@13 bitmap_line::@3
[654] (byte) bitmap_line_xdyi::x1#6 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::x1#1 bitmap_line::@3/(byte) bitmap_line_xdyi::x1#0 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[654] (byte) bitmap_line_xdyi::xd#5 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::xd#1 bitmap_line::@3/(byte) bitmap_line_xdyi::xd#0 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[654] (byte) bitmap_line_xdyi::y#5 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::y#1 bitmap_line::@3/(byte) bitmap_line_xdyi::y#0 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[654] (byte) bitmap_line_xdyi::x#6 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::x#1 bitmap_line::@3/(byte) bitmap_line_xdyi::x#0 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[654] (byte) bitmap_line_xdyi::yd#2 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::yd#1 bitmap_line::@3/(byte) bitmap_line_xdyi::yd#0 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 ] )
[655] (byte) bitmap_line_xdyi::e#0 ← (byte) bitmap_line_xdyi::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::x#6 bitmap_line_xdyi::y#5 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::e#0 ] )
to:bitmap_line_xdyi::@1
bitmap_line_xdyi::@1: scope:[bitmap_line_xdyi] from bitmap_line_xdyi bitmap_line_xdyi::@2
[678] (byte) bitmap_line_xdyi::e#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::e#0 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::e#6 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[678] (byte) bitmap_line_xdyi::y#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::y#5 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::y#6 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[678] (byte) bitmap_line_xdyi::x#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::x#6 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::x#2 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[679] (byte) bitmap_plot::x#0 ← (byte) bitmap_line_xdyi::x#3 [ bitmap_plot::x#0 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_plot::x#0 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_plot::x#0 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[680] (byte) bitmap_plot::y#0 ← (byte) bitmap_line_xdyi::y#3 [ bitmap_plot::x#0 bitmap_plot::y#0 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_plot::x#0 bitmap_plot::y#0 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_plot::x#0 bitmap_plot::y#0 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[681] call bitmap_plot param-assignment [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[656] (byte) bitmap_line_xdyi::e#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::e#0 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::e#6 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[656] (byte) bitmap_line_xdyi::y#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::y#5 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::y#6 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[656] (byte) bitmap_line_xdyi::x#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::x#6 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::x#2 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
[657] (byte) bitmap_plot::x#0 ← (byte) bitmap_line_xdyi::x#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 ] )
[658] (byte) bitmap_plot::y#0 ← (byte) bitmap_line_xdyi::y#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#0 bitmap_plot::y#0 ] )
[659] call bitmap_plot param-assignment [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] )
to:bitmap_line_xdyi::@5
bitmap_line_xdyi::@5: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@1
[682] (byte) bitmap_line_xdyi::x#2 ← ++ (byte) bitmap_line_xdyi::x#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_line_xdyi::x#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_line_xdyi::x#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_line_xdyi::x#2 ] )
[683] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (byte) bitmap_line_xdyi::yd#2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] )
[684] if((byte) bitmap_line_xdyi::xd#5>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] )
[660] (byte) bitmap_line_xdyi::x#2 ← ++ (byte) bitmap_line_xdyi::x#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_line_xdyi::x#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_line_xdyi::x#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_line_xdyi::x#2 ] )
[661] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (byte) bitmap_line_xdyi::yd#2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] )
[662] if((byte) bitmap_line_xdyi::xd#5>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] )
to:bitmap_line_xdyi::@3
bitmap_line_xdyi::@3: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@5
[685] (byte) bitmap_line_xdyi::y#2 ← ++ (byte) bitmap_line_xdyi::y#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 bitmap_line_xdyi::y#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 bitmap_line_xdyi::y#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 bitmap_line_xdyi::y#2 ] )
[686] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#5 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] )
[663] (byte) bitmap_line_xdyi::y#2 ← ++ (byte) bitmap_line_xdyi::y#3 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 bitmap_line_xdyi::y#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 bitmap_line_xdyi::y#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 bitmap_line_xdyi::y#2 ] )
[664] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#5 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] )
to:bitmap_line_xdyi::@2
bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap_line_xdyi::@5
[687] (byte) bitmap_line_xdyi::e#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::e#2 bitmap_line_xdyi::@5/(byte) bitmap_line_xdyi::e#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] )
[687] (byte) bitmap_line_xdyi::y#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::y#2 bitmap_line_xdyi::@5/(byte) bitmap_line_xdyi::y#3 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] )
[688] (byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] )
[689] if((byte) bitmap_line_xdyi::x#2!=(byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] )
[665] (byte) bitmap_line_xdyi::e#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::e#2 bitmap_line_xdyi::@5/(byte) bitmap_line_xdyi::e#1 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] )
[665] (byte) bitmap_line_xdyi::y#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::y#2 bitmap_line_xdyi::@5/(byte) bitmap_line_xdyi::y#3 ) [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] )
[666] (byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 bitmap_line_xdyi::$6 ] )
[667] if((byte) bitmap_line_xdyi::x#2!=(byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 [ bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#6 bitmap_line_xdyi::e#6 ] )
to:bitmap_line_xdyi::@return
bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2
[690] return [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:602 [ mode_stdbitmap::l#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:647 [ mode_stdbitmap::l#2 ] )
[668] return [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609 [ mode_stdbitmap::l#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653 [ mode_stdbitmap::l#2 ] )
to:@return
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@10 bitmap_line::@6
[691] (byte) bitmap_line_ydxd::y1#6 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::y1#1 bitmap_line::@6/(byte) bitmap_line_ydxd::y1#0 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[691] (byte) bitmap_line_ydxd::yd#5 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::yd#1 bitmap_line::@6/(byte) bitmap_line_ydxd::yd#0 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[691] (byte) bitmap_line_ydxd::y#7 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::y#1 bitmap_line::@6/(byte) bitmap_line_ydxd::y#0 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[691] (byte) bitmap_line_ydxd::x#5 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::x#1 bitmap_line::@6/(byte) bitmap_line_ydxd::x#0 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[691] (byte) bitmap_line_ydxd::xd#2 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::xd#1 bitmap_line::@6/(byte) bitmap_line_ydxd::xd#0 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[692] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] )
to:bitmap_line_ydxd::@1
bitmap_line_ydxd::@1: scope:[bitmap_line_ydxd] from bitmap_line_ydxd bitmap_line_ydxd::@2
[693] (byte) bitmap_line_ydxd::e#3 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::e#0 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::e#6 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[693] (byte) bitmap_line_ydxd::y#2 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::y#7 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::y#3 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[693] (byte) bitmap_line_ydxd::x#3 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::x#5 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::x#6 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[694] (byte) bitmap_plot::x#3 ← (byte) bitmap_line_ydxd::x#3 [ bitmap_plot::x#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_plot::x#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_plot::x#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[695] (byte) bitmap_plot::y#3 ← (byte) bitmap_line_ydxd::y#2 [ bitmap_plot::x#3 bitmap_plot::y#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_plot::x#3 bitmap_plot::y#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_plot::x#3 bitmap_plot::y#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[696] call bitmap_plot param-assignment [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
to:bitmap_line_ydxd::@5
bitmap_line_ydxd::@5: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@1
[697] (byte) bitmap_line_ydxd::y#3 ← ++ (byte) bitmap_line_ydxd::y#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::e#3 bitmap_line_ydxd::y#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::e#3 bitmap_line_ydxd::y#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::e#3 bitmap_line_ydxd::y#3 ] )
[698] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] )
[699] if((byte) bitmap_line_ydxd::yd#5>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] )
to:bitmap_line_ydxd::@3
bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@5
[700] (byte) bitmap_line_ydxd::x#2 ← -- (byte) bitmap_line_ydxd::x#3 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] )
[701] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (byte) bitmap_line_ydxd::yd#5 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] )
to:bitmap_line_ydxd::@2
bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap_line_ydxd::@5
[702] (byte) bitmap_line_ydxd::e#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::e#2 bitmap_line_ydxd::@5/(byte) bitmap_line_ydxd::e#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] )
[702] (byte) bitmap_line_ydxd::x#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::x#2 bitmap_line_ydxd::@5/(byte) bitmap_line_ydxd::x#3 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] )
[703] (byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6 ← (byte) bitmap_line_ydxd::y1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] )
[704] if((byte) bitmap_line_ydxd::y#3!=(byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] )
to:bitmap_line_ydxd::@return
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
[705] return [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:623 [ mode_stdbitmap::l#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:639 [ mode_stdbitmap::l#2 ] )
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
[669] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 ) [ bitmap_plot::x#4 bitmap_plot::y#4 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] )
[669] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 ) [ bitmap_plot::x#4 bitmap_plot::y#4 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 ] )
[670] (word) bitmap_plot::plotter_x#0 ← *((const byte[256]) bitmap_plot_xhi#0 + (byte) bitmap_plot::x#4) w= *((const byte[256]) bitmap_plot_xlo#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] )
[671] (word) bitmap_plot::plotter_y#0 ← *((const byte[256]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[256]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] )
[672] (word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::$0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::$0 ] )
[673] (byte~) bitmap_plot::$1 ← *((byte*)(word~) bitmap_plot::$0) | *((const byte[256]) bitmap_plot_bit#0 + (byte) bitmap_plot::x#4) [ bitmap_plot::$0 bitmap_plot::$1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::$0 bitmap_plot::$1 ] )
[674] *((byte*)(word~) bitmap_plot::$0) ← (byte~) bitmap_plot::$1 [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[675] return [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:609::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyi:653::bitmap_plot:659 [ mode_stdbitmap::l#2 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647::bitmap_plot:681 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639::bitmap_plot:696 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633::bitmap_plot:711 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
to:@return
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@20 bitmap_line::@24
[706] (byte) bitmap_line_xdyd::x1#6 ← phi( bitmap_line::@20/(byte) bitmap_line_xdyd::x1#0 bitmap_line::@24/(byte) bitmap_line_xdyd::x1#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[706] (byte) bitmap_line_xdyd::xd#5 ← phi( bitmap_line::@20/(byte) bitmap_line_xdyd::xd#0 bitmap_line::@24/(byte) bitmap_line_xdyd::xd#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[706] (byte) bitmap_line_xdyd::y#5 ← phi( bitmap_line::@20/(byte) bitmap_line_xdyd::y#0 bitmap_line::@24/(byte) bitmap_line_xdyd::y#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[706] (byte) bitmap_line_xdyd::x#6 ← phi( bitmap_line::@20/(byte) bitmap_line_xdyd::x#0 bitmap_line::@24/(byte) bitmap_line_xdyd::x#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[706] (byte) bitmap_line_xdyd::yd#2 ← phi( bitmap_line::@20/(byte) bitmap_line_xdyd::yd#0 bitmap_line::@24/(byte) bitmap_line_xdyd::yd#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[707] (byte) bitmap_line_xdyd::e#0 ← (byte) bitmap_line_xdyd::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] )
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@17 bitmap_line::@27
[676] (byte) bitmap_line_ydxi::y1#6 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxi::y1#0 bitmap_line::@27/(byte) bitmap_line_ydxi::y1#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[676] (byte) bitmap_line_ydxi::yd#5 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxi::yd#0 bitmap_line::@27/(byte) bitmap_line_ydxi::yd#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[676] (byte) bitmap_line_ydxi::y#6 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxi::y#0 bitmap_line::@27/(byte) bitmap_line_ydxi::y#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[676] (byte) bitmap_line_ydxi::x#5 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxi::x#0 bitmap_line::@27/(byte) bitmap_line_ydxi::x#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[676] (byte) bitmap_line_ydxi::xd#2 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxi::xd#0 bitmap_line::@27/(byte) bitmap_line_ydxi::xd#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 ] )
[677] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::x#5 bitmap_line_ydxi::y#6 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::e#0 ] )
to:bitmap_line_ydxi::@1
bitmap_line_ydxi::@1: scope:[bitmap_line_ydxi] from bitmap_line_ydxi bitmap_line_ydxi::@2
[678] (byte) bitmap_line_ydxi::e#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::e#0 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::e#6 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[678] (byte) bitmap_line_ydxi::y#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::y#6 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::y#2 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[678] (byte) bitmap_line_ydxi::x#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::x#5 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::x#6 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[679] (byte) bitmap_plot::x#2 ← (byte) bitmap_line_ydxi::x#3 [ bitmap_plot::x#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_plot::x#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_plot::x#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[680] (byte) bitmap_plot::y#2 ← (byte) bitmap_line_ydxi::y#3 [ bitmap_plot::x#2 bitmap_plot::y#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_plot::x#2 bitmap_plot::y#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_plot::x#2 bitmap_plot::y#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
[681] call bitmap_plot param-assignment [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] )
to:bitmap_line_ydxi::@5
bitmap_line_ydxi::@5: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@1
[682] (byte) bitmap_line_ydxi::y#2 ← ++ (byte) bitmap_line_ydxi::y#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::e#3 bitmap_line_ydxi::y#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::e#3 bitmap_line_ydxi::y#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::e#3 bitmap_line_ydxi::y#2 ] )
[683] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] )
[684] if((byte) bitmap_line_ydxi::yd#5>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] )
to:bitmap_line_ydxi::@3
bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@5
[685] (byte) bitmap_line_ydxi::x#2 ← ++ (byte) bitmap_line_ydxi::x#3 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 bitmap_line_ydxi::x#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 bitmap_line_ydxi::x#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 bitmap_line_ydxi::x#2 ] )
[686] (byte) bitmap_line_ydxi::e#2 ← (byte) bitmap_line_ydxi::e#1 - (byte) bitmap_line_ydxi::yd#5 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] )
to:bitmap_line_ydxi::@2
bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap_line_ydxi::@5
[687] (byte) bitmap_line_ydxi::e#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::e#2 bitmap_line_ydxi::@5/(byte) bitmap_line_ydxi::e#1 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] )
[687] (byte) bitmap_line_ydxi::x#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::x#2 bitmap_line_ydxi::@5/(byte) bitmap_line_ydxi::x#3 ) [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] )
[688] (byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6 ← (byte) bitmap_line_ydxi::y1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 bitmap_line_ydxi::$6 ] )
[689] if((byte) bitmap_line_ydxi::y#2!=(byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1 [ bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] )
to:bitmap_line_ydxi::@return
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
[690] return [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:602 [ mode_stdbitmap::l#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxi:647 [ mode_stdbitmap::l#2 ] )
to:@return
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@10 bitmap_line::@6
[691] (byte) bitmap_line_xdyd::x1#6 ← phi( bitmap_line::@10/(byte) bitmap_line_xdyd::x1#1 bitmap_line::@6/(byte) bitmap_line_xdyd::x1#0 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[691] (byte) bitmap_line_xdyd::xd#5 ← phi( bitmap_line::@10/(byte) bitmap_line_xdyd::xd#1 bitmap_line::@6/(byte) bitmap_line_xdyd::xd#0 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[691] (byte) bitmap_line_xdyd::y#5 ← phi( bitmap_line::@10/(byte) bitmap_line_xdyd::y#1 bitmap_line::@6/(byte) bitmap_line_xdyd::y#0 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[691] (byte) bitmap_line_xdyd::x#6 ← phi( bitmap_line::@10/(byte) bitmap_line_xdyd::x#1 bitmap_line::@6/(byte) bitmap_line_xdyd::x#0 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[691] (byte) bitmap_line_xdyd::yd#2 ← phi( bitmap_line::@10/(byte) bitmap_line_xdyd::yd#1 bitmap_line::@6/(byte) bitmap_line_xdyd::yd#0 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 ] )
[692] (byte) bitmap_line_xdyd::e#0 ← (byte) bitmap_line_xdyd::yd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::x#6 bitmap_line_xdyd::y#5 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::e#0 ] )
to:bitmap_line_xdyd::@1
bitmap_line_xdyd::@1: scope:[bitmap_line_xdyd] from bitmap_line_xdyd bitmap_line_xdyd::@2
[708] (byte) bitmap_line_xdyd::e#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::e#0 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::e#6 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[708] (byte) bitmap_line_xdyd::y#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::y#5 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::y#6 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[708] (byte) bitmap_line_xdyd::x#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::x#6 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::x#2 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[709] (byte) bitmap_plot::x#1 ← (byte) bitmap_line_xdyd::x#3 [ bitmap_plot::x#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_plot::x#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_plot::x#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[710] (byte) bitmap_plot::y#1 ← (byte) bitmap_line_xdyd::y#3 [ bitmap_plot::x#1 bitmap_plot::y#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_plot::x#1 bitmap_plot::y#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_plot::x#1 bitmap_plot::y#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[711] call bitmap_plot param-assignment [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[693] (byte) bitmap_line_xdyd::e#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::e#0 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::e#6 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[693] (byte) bitmap_line_xdyd::y#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::y#5 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::y#6 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[693] (byte) bitmap_line_xdyd::x#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::x#6 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::x#2 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[694] (byte) bitmap_plot::x#1 ← (byte) bitmap_line_xdyd::x#3 [ bitmap_plot::x#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_plot::x#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_plot::x#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[695] (byte) bitmap_plot::y#1 ← (byte) bitmap_line_xdyd::y#3 [ bitmap_plot::x#1 bitmap_plot::y#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_plot::x#1 bitmap_plot::y#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_plot::x#1 bitmap_plot::y#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
[696] call bitmap_plot param-assignment [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] )
to:bitmap_line_xdyd::@5
bitmap_line_xdyd::@5: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@1
[712] (byte) bitmap_line_xdyd::x#2 ← ++ (byte) bitmap_line_xdyd::x#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::x#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::x#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::x#2 ] )
[713] (byte) bitmap_line_xdyd::e#1 ← (byte) bitmap_line_xdyd::e#3 + (byte) bitmap_line_xdyd::yd#2 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] )
[714] if((byte) bitmap_line_xdyd::xd#5>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] )
[697] (byte) bitmap_line_xdyd::x#2 ← ++ (byte) bitmap_line_xdyd::x#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::x#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::x#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::x#2 ] )
[698] (byte) bitmap_line_xdyd::e#1 ← (byte) bitmap_line_xdyd::e#3 + (byte) bitmap_line_xdyd::yd#2 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] )
[699] if((byte) bitmap_line_xdyd::xd#5>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] )
to:bitmap_line_xdyd::@3
bitmap_line_xdyd::@3: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@5
[715] (byte) bitmap_line_xdyd::y#2 ← -- (byte) bitmap_line_xdyd::y#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] )
[716] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - (byte) bitmap_line_xdyd::xd#5 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] )
[700] (byte) bitmap_line_xdyd::y#2 ← -- (byte) bitmap_line_xdyd::y#3 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 bitmap_line_xdyd::y#2 ] )
[701] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - (byte) bitmap_line_xdyd::xd#5 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] )
to:bitmap_line_xdyd::@2
bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap_line_xdyd::@5
[717] (byte) bitmap_line_xdyd::e#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::e#2 bitmap_line_xdyd::@5/(byte) bitmap_line_xdyd::e#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] )
[717] (byte) bitmap_line_xdyd::y#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::y#2 bitmap_line_xdyd::@5/(byte) bitmap_line_xdyd::y#3 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] )
[718] (byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6 ← (byte) bitmap_line_xdyd::x1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] )
[719] if((byte) bitmap_line_xdyd::x#2!=(byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] )
[702] (byte) bitmap_line_xdyd::e#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::e#2 bitmap_line_xdyd::@5/(byte) bitmap_line_xdyd::e#1 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] )
[702] (byte) bitmap_line_xdyd::y#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::y#2 bitmap_line_xdyd::@5/(byte) bitmap_line_xdyd::y#3 ) [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] )
[703] (byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6 ← (byte) bitmap_line_xdyd::x1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 bitmap_line_xdyd::$6 ] )
[704] if((byte) bitmap_line_xdyd::x#2!=(byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1 [ bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] )
to:bitmap_line_xdyd::@return
bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2
[720] return [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:617 [ mode_stdbitmap::l#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:633 [ mode_stdbitmap::l#2 ] )
[705] return [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:623 [ mode_stdbitmap::l#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_xdyd:639 [ mode_stdbitmap::l#2 ] )
to:@return
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@20 bitmap_line::@24
[706] (byte) bitmap_line_ydxd::y1#6 ← phi( bitmap_line::@20/(byte) bitmap_line_ydxd::y1#0 bitmap_line::@24/(byte) bitmap_line_ydxd::y1#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[706] (byte) bitmap_line_ydxd::yd#5 ← phi( bitmap_line::@20/(byte) bitmap_line_ydxd::yd#0 bitmap_line::@24/(byte) bitmap_line_ydxd::yd#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[706] (byte) bitmap_line_ydxd::y#7 ← phi( bitmap_line::@20/(byte) bitmap_line_ydxd::y#0 bitmap_line::@24/(byte) bitmap_line_ydxd::y#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[706] (byte) bitmap_line_ydxd::x#5 ← phi( bitmap_line::@20/(byte) bitmap_line_ydxd::x#0 bitmap_line::@24/(byte) bitmap_line_ydxd::x#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[706] (byte) bitmap_line_ydxd::xd#2 ← phi( bitmap_line::@20/(byte) bitmap_line_ydxd::xd#0 bitmap_line::@24/(byte) bitmap_line_ydxd::xd#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 ] )
[707] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#2 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::x#5 bitmap_line_ydxd::y#7 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::e#0 ] )
to:bitmap_line_ydxd::@1
bitmap_line_ydxd::@1: scope:[bitmap_line_ydxd] from bitmap_line_ydxd bitmap_line_ydxd::@2
[708] (byte) bitmap_line_ydxd::e#3 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::e#0 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::e#6 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[708] (byte) bitmap_line_ydxd::y#2 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::y#7 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::y#3 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[708] (byte) bitmap_line_ydxd::x#3 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::x#5 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::x#6 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[709] (byte) bitmap_plot::x#3 ← (byte) bitmap_line_ydxd::x#3 [ bitmap_plot::x#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_plot::x#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_plot::x#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[710] (byte) bitmap_plot::y#3 ← (byte) bitmap_line_ydxd::y#2 [ bitmap_plot::x#3 bitmap_plot::y#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_plot::x#3 bitmap_plot::y#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_plot::x#3 bitmap_plot::y#3 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
[711] call bitmap_plot param-assignment [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] )
to:bitmap_line_ydxd::@5
bitmap_line_ydxd::@5: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@1
[712] (byte) bitmap_line_ydxd::y#3 ← ++ (byte) bitmap_line_ydxd::y#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::e#3 bitmap_line_ydxd::y#3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::e#3 bitmap_line_ydxd::y#3 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::e#3 bitmap_line_ydxd::y#3 ] )
[713] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] )
[714] if((byte) bitmap_line_ydxd::yd#5>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] )
to:bitmap_line_ydxd::@3
bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@5
[715] (byte) bitmap_line_ydxd::x#2 ← -- (byte) bitmap_line_ydxd::x#3 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 bitmap_line_ydxd::x#2 ] )
[716] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (byte) bitmap_line_ydxd::yd#5 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] )
to:bitmap_line_ydxd::@2
bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap_line_ydxd::@5
[717] (byte) bitmap_line_ydxd::e#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::e#2 bitmap_line_ydxd::@5/(byte) bitmap_line_ydxd::e#1 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] )
[717] (byte) bitmap_line_ydxd::x#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::x#2 bitmap_line_ydxd::@5/(byte) bitmap_line_ydxd::x#3 ) [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] )
[718] (byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6 ← (byte) bitmap_line_ydxd::y1#6 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 bitmap_line_ydxd::$6 ] )
[719] if((byte) bitmap_line_ydxd::y#3!=(byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1 [ bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] )
to:bitmap_line_ydxd::@return
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
[720] return [ ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:617 [ mode_stdbitmap::l#2 ] main:2::menu:9::mode_stdbitmap:62::bitmap_line:586::bitmap_line_ydxd:633 [ mode_stdbitmap::l#2 ] )
to:@return
bitmap_clear: scope:[bitmap_clear] from mode_stdbitmap::@9
[721] (word~) bitmap_clear::$3 ← *((const byte[256]) bitmap_plot_xhi#0+(byte/signed byte/word/signed word/dword/signed dword) 0) w= *((const byte[256]) bitmap_plot_xlo#0+(byte/signed byte/word/signed word/dword/signed dword) 0) [ bitmap_clear::$3 ] ( main:2::menu:9::mode_stdbitmap:62::bitmap_clear:580 [ bitmap_clear::$3 ] )

File diff suppressed because one or more lines are too long

@ -216,21 +216,21 @@
(label) bitmap_line::@9
(label) bitmap_line::@return
(byte) bitmap_line::x0
(byte) bitmap_line::x0#0 x0 zp ZP_BYTE:11 5.173913043478264
(byte) bitmap_line::x0#0 x0 zp ZP_BYTE:9 5.173913043478264
(byte) bitmap_line::x1
(byte) bitmap_line::x1#0 x1 zp ZP_BYTE:12 5.409090909090908
(byte) bitmap_line::xd
(byte) bitmap_line::xd#0 xd zp ZP_BYTE:7 0.7
(byte) bitmap_line::xd#1 xd zp ZP_BYTE:7 0.7
(byte) bitmap_line::xd#0 xd zp ZP_BYTE:8 0.7
(byte) bitmap_line::xd#1 xd zp ZP_BYTE:8 0.7
(byte) bitmap_line::y0
(byte) bitmap_line::y0#0 y0 zp ZP_BYTE:9 5.952380952380948
(byte) bitmap_line::y0#0 y0 zp ZP_BYTE:10 5.952380952380948
(byte) bitmap_line::y1
(byte) bitmap_line::y1#0 reg byte y 6.249999999999996
(byte) bitmap_line::yd
(byte) bitmap_line::yd#0 yd zp ZP_BYTE:8 0.8888888888888888
(byte) bitmap_line::yd#1 yd zp ZP_BYTE:8 0.8888888888888888
(byte) bitmap_line::yd#10 yd zp ZP_BYTE:8 0.8888888888888888
(byte) bitmap_line::yd#3 yd zp ZP_BYTE:8 0.8888888888888888
(byte) bitmap_line::yd#0 yd zp ZP_BYTE:7 0.8888888888888888
(byte) bitmap_line::yd#1 yd zp ZP_BYTE:7 0.8888888888888888
(byte) bitmap_line::yd#10 yd zp ZP_BYTE:7 0.8888888888888888
(byte) bitmap_line::yd#3 yd zp ZP_BYTE:7 0.8888888888888888
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyd::$6 $6 zp ZP_BYTE:11 2002.0
(label) bitmap_line_xdyd::@1
@ -239,11 +239,11 @@
(label) bitmap_line_xdyd::@5
(label) bitmap_line_xdyd::@return
(byte) bitmap_line_xdyd::e
(byte) bitmap_line_xdyd::e#0 e zp ZP_BYTE:10 4.0
(byte) bitmap_line_xdyd::e#1 e zp ZP_BYTE:10 1334.6666666666667
(byte) bitmap_line_xdyd::e#2 e zp ZP_BYTE:10 2002.0
(byte) bitmap_line_xdyd::e#3 e zp ZP_BYTE:10 400.79999999999995
(byte) bitmap_line_xdyd::e#6 e zp ZP_BYTE:10 1001.0
(byte) bitmap_line_xdyd::e#0 e zp ZP_BYTE:9 4.0
(byte) bitmap_line_xdyd::e#1 e zp ZP_BYTE:9 1334.6666666666667
(byte) bitmap_line_xdyd::e#2 e zp ZP_BYTE:9 2002.0
(byte) bitmap_line_xdyd::e#3 e zp ZP_BYTE:9 400.79999999999995
(byte) bitmap_line_xdyd::e#6 e zp ZP_BYTE:9 1001.0
(byte) bitmap_line_xdyd::x
(byte) bitmap_line_xdyd::x#0 reg byte x 0.8
(byte) bitmap_line_xdyd::x#1 reg byte x 0.8
@ -255,20 +255,20 @@
(byte) bitmap_line_xdyd::x1#1 x1 zp ZP_BYTE:12 1.3333333333333333
(byte) bitmap_line_xdyd::x1#6 x1 zp ZP_BYTE:12 71.78571428571429
(byte) bitmap_line_xdyd::xd
(byte) bitmap_line_xdyd::xd#0 xd zp ZP_BYTE:7 2.0
(byte) bitmap_line_xdyd::xd#1 xd zp ZP_BYTE:7 2.0
(byte) bitmap_line_xdyd::xd#5 xd zp ZP_BYTE:7 143.28571428571428
(byte) bitmap_line_xdyd::xd#0 xd zp ZP_BYTE:8 2.0
(byte) bitmap_line_xdyd::xd#1 xd zp ZP_BYTE:8 2.0
(byte) bitmap_line_xdyd::xd#5 xd zp ZP_BYTE:8 143.28571428571428
(byte) bitmap_line_xdyd::y
(byte) bitmap_line_xdyd::y#0 y zp ZP_BYTE:9 1.0
(byte) bitmap_line_xdyd::y#1 y zp ZP_BYTE:9 1.0
(byte) bitmap_line_xdyd::y#2 y zp ZP_BYTE:9 1001.0
(byte) bitmap_line_xdyd::y#3 y zp ZP_BYTE:9 572.2857142857142
(byte) bitmap_line_xdyd::y#5 y zp ZP_BYTE:9 3.0
(byte) bitmap_line_xdyd::y#6 y zp ZP_BYTE:9 1001.0
(byte) bitmap_line_xdyd::y#0 y zp ZP_BYTE:10 1.0
(byte) bitmap_line_xdyd::y#1 y zp ZP_BYTE:10 1.0
(byte) bitmap_line_xdyd::y#2 y zp ZP_BYTE:10 1001.0
(byte) bitmap_line_xdyd::y#3 y zp ZP_BYTE:10 572.2857142857142
(byte) bitmap_line_xdyd::y#5 y zp ZP_BYTE:10 3.0
(byte) bitmap_line_xdyd::y#6 y zp ZP_BYTE:10 1001.0
(byte) bitmap_line_xdyd::yd
(byte) bitmap_line_xdyd::yd#0 yd zp ZP_BYTE:8 4.0
(byte) bitmap_line_xdyd::yd#1 yd zp ZP_BYTE:8 4.0
(byte) bitmap_line_xdyd::yd#2 yd zp ZP_BYTE:8 71.92857142857143
(byte) bitmap_line_xdyd::yd#0 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyd::yd#1 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyd::yd#2 yd zp ZP_BYTE:7 71.92857142857143
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
(byte/signed word/word/dword/signed dword~) bitmap_line_xdyi::$6 $6 zp ZP_BYTE:12 2002.0
(label) bitmap_line_xdyi::@1
@ -277,11 +277,11 @@
(label) bitmap_line_xdyi::@5
(label) bitmap_line_xdyi::@return
(byte) bitmap_line_xdyi::e
(byte) bitmap_line_xdyi::e#0 e zp ZP_BYTE:10 4.0
(byte) bitmap_line_xdyi::e#1 e zp ZP_BYTE:10 1334.6666666666667
(byte) bitmap_line_xdyi::e#2 e zp ZP_BYTE:10 2002.0
(byte) bitmap_line_xdyi::e#3 e zp ZP_BYTE:10 400.79999999999995
(byte) bitmap_line_xdyi::e#6 e zp ZP_BYTE:10 1001.0
(byte) bitmap_line_xdyi::e#0 e zp ZP_BYTE:11 4.0
(byte) bitmap_line_xdyi::e#1 e zp ZP_BYTE:11 1334.6666666666667
(byte) bitmap_line_xdyi::e#2 e zp ZP_BYTE:11 2002.0
(byte) bitmap_line_xdyi::e#3 e zp ZP_BYTE:11 400.79999999999995
(byte) bitmap_line_xdyi::e#6 e zp ZP_BYTE:11 1001.0
(byte) bitmap_line_xdyi::x
(byte) bitmap_line_xdyi::x#0 reg byte x 0.8
(byte) bitmap_line_xdyi::x#1 reg byte x 0.8
@ -289,24 +289,24 @@
(byte) bitmap_line_xdyi::x#3 reg byte x 751.25
(byte) bitmap_line_xdyi::x#6 reg byte x 3.0
(byte) bitmap_line_xdyi::x1
(byte) bitmap_line_xdyi::x1#0 x1 zp ZP_BYTE:11 1.3333333333333333
(byte) bitmap_line_xdyi::x1#1 x1 zp ZP_BYTE:11 1.3333333333333333
(byte) bitmap_line_xdyi::x1#6 x1 zp ZP_BYTE:11 71.78571428571429
(byte) bitmap_line_xdyi::x1#0 x1 zp ZP_BYTE:9 1.3333333333333333
(byte) bitmap_line_xdyi::x1#1 x1 zp ZP_BYTE:9 1.3333333333333333
(byte) bitmap_line_xdyi::x1#6 x1 zp ZP_BYTE:9 71.78571428571429
(byte) bitmap_line_xdyi::xd
(byte) bitmap_line_xdyi::xd#0 xd zp ZP_BYTE:7 2.0
(byte) bitmap_line_xdyi::xd#1 xd zp ZP_BYTE:7 2.0
(byte) bitmap_line_xdyi::xd#5 xd zp ZP_BYTE:7 143.28571428571428
(byte) bitmap_line_xdyi::xd#0 xd zp ZP_BYTE:8 2.0
(byte) bitmap_line_xdyi::xd#1 xd zp ZP_BYTE:8 2.0
(byte) bitmap_line_xdyi::xd#5 xd zp ZP_BYTE:8 143.28571428571428
(byte) bitmap_line_xdyi::y
(byte) bitmap_line_xdyi::y#0 y zp ZP_BYTE:9 1.0
(byte) bitmap_line_xdyi::y#1 y zp ZP_BYTE:9 1.0
(byte) bitmap_line_xdyi::y#2 y zp ZP_BYTE:9 1001.0
(byte) bitmap_line_xdyi::y#3 y zp ZP_BYTE:9 572.2857142857142
(byte) bitmap_line_xdyi::y#5 y zp ZP_BYTE:9 3.0
(byte) bitmap_line_xdyi::y#6 y zp ZP_BYTE:9 1001.0
(byte) bitmap_line_xdyi::y#0 y zp ZP_BYTE:10 1.0
(byte) bitmap_line_xdyi::y#1 y zp ZP_BYTE:10 1.0
(byte) bitmap_line_xdyi::y#2 y zp ZP_BYTE:10 1001.0
(byte) bitmap_line_xdyi::y#3 y zp ZP_BYTE:10 572.2857142857142
(byte) bitmap_line_xdyi::y#5 y zp ZP_BYTE:10 3.0
(byte) bitmap_line_xdyi::y#6 y zp ZP_BYTE:10 1001.0
(byte) bitmap_line_xdyi::yd
(byte) bitmap_line_xdyi::yd#0 yd zp ZP_BYTE:8 4.0
(byte) bitmap_line_xdyi::yd#1 yd zp ZP_BYTE:8 4.0
(byte) bitmap_line_xdyi::yd#2 yd zp ZP_BYTE:8 71.92857142857143
(byte) bitmap_line_xdyi::yd#0 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyi::yd#1 yd zp ZP_BYTE:7 4.0
(byte) bitmap_line_xdyi::yd#2 yd zp ZP_BYTE:7 71.92857142857143
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxd::$6 reg byte y 2002.0
(label) bitmap_line_ydxd::@1
@ -315,11 +315,11 @@
(label) bitmap_line_ydxd::@5
(label) bitmap_line_ydxd::@return
(byte) bitmap_line_ydxd::e
(byte) bitmap_line_ydxd::e#0 e zp ZP_BYTE:11 4.0
(byte) bitmap_line_ydxd::e#1 e zp ZP_BYTE:11 1334.6666666666667
(byte) bitmap_line_ydxd::e#2 e zp ZP_BYTE:11 2002.0
(byte) bitmap_line_ydxd::e#3 e zp ZP_BYTE:11 400.79999999999995
(byte) bitmap_line_ydxd::e#6 e zp ZP_BYTE:11 1001.0
(byte) bitmap_line_ydxd::e#0 e zp ZP_BYTE:9 4.0
(byte) bitmap_line_ydxd::e#1 e zp ZP_BYTE:9 1334.6666666666667
(byte) bitmap_line_ydxd::e#2 e zp ZP_BYTE:9 2002.0
(byte) bitmap_line_ydxd::e#3 e zp ZP_BYTE:9 400.79999999999995
(byte) bitmap_line_ydxd::e#6 e zp ZP_BYTE:9 1001.0
(byte) bitmap_line_ydxd::x
(byte) bitmap_line_ydxd::x#0 reg byte x 1.0
(byte) bitmap_line_ydxd::x#1 reg byte x 1.0
@ -328,23 +328,23 @@
(byte) bitmap_line_ydxd::x#5 reg byte x 3.0
(byte) bitmap_line_ydxd::x#6 reg byte x 1001.0
(byte) bitmap_line_ydxd::xd
(byte) bitmap_line_ydxd::xd#0 xd zp ZP_BYTE:7 4.0
(byte) bitmap_line_ydxd::xd#1 xd zp ZP_BYTE:7 4.0
(byte) bitmap_line_ydxd::xd#2 xd zp ZP_BYTE:7 71.92857142857143
(byte) bitmap_line_ydxd::xd#0 xd zp ZP_BYTE:8 4.0
(byte) bitmap_line_ydxd::xd#1 xd zp ZP_BYTE:8 4.0
(byte) bitmap_line_ydxd::xd#2 xd zp ZP_BYTE:8 71.92857142857143
(byte) bitmap_line_ydxd::y
(byte) bitmap_line_ydxd::y#0 y zp ZP_BYTE:10 0.8
(byte) bitmap_line_ydxd::y#1 y zp ZP_BYTE:10 0.8
(byte) bitmap_line_ydxd::y#2 y zp ZP_BYTE:10 751.25
(byte) bitmap_line_ydxd::y#3 y zp ZP_BYTE:10 375.375
(byte) bitmap_line_ydxd::y#7 y zp ZP_BYTE:10 3.0
(byte) bitmap_line_ydxd::y#0 y zp ZP_BYTE:11 0.8
(byte) bitmap_line_ydxd::y#1 y zp ZP_BYTE:11 0.8
(byte) bitmap_line_ydxd::y#2 y zp ZP_BYTE:11 751.25
(byte) bitmap_line_ydxd::y#3 y zp ZP_BYTE:11 375.375
(byte) bitmap_line_ydxd::y#7 y zp ZP_BYTE:11 3.0
(byte) bitmap_line_ydxd::y1
(byte) bitmap_line_ydxd::y1#0 y1 zp ZP_BYTE:9 1.3333333333333333
(byte) bitmap_line_ydxd::y1#1 y1 zp ZP_BYTE:9 1.3333333333333333
(byte) bitmap_line_ydxd::y1#6 y1 zp ZP_BYTE:9 71.78571428571429
(byte) bitmap_line_ydxd::y1#0 y1 zp ZP_BYTE:10 1.3333333333333333
(byte) bitmap_line_ydxd::y1#1 y1 zp ZP_BYTE:10 1.3333333333333333
(byte) bitmap_line_ydxd::y1#6 y1 zp ZP_BYTE:10 71.78571428571429
(byte) bitmap_line_ydxd::yd
(byte) bitmap_line_ydxd::yd#0 yd zp ZP_BYTE:8 2.0
(byte) bitmap_line_ydxd::yd#1 yd zp ZP_BYTE:8 2.0
(byte) bitmap_line_ydxd::yd#5 yd zp ZP_BYTE:8 143.28571428571428
(byte) bitmap_line_ydxd::yd#0 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxd::yd#1 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxd::yd#5 yd zp ZP_BYTE:7 143.28571428571428
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
(byte/signed word/word/dword/signed dword~) bitmap_line_ydxi::$6 reg byte y 2002.0
(label) bitmap_line_ydxi::@1
@ -353,11 +353,11 @@
(label) bitmap_line_ydxi::@5
(label) bitmap_line_ydxi::@return
(byte) bitmap_line_ydxi::e
(byte) bitmap_line_ydxi::e#0 e zp ZP_BYTE:11 4.0
(byte) bitmap_line_ydxi::e#1 e zp ZP_BYTE:11 1334.6666666666667
(byte) bitmap_line_ydxi::e#2 e zp ZP_BYTE:11 2002.0
(byte) bitmap_line_ydxi::e#3 e zp ZP_BYTE:11 400.79999999999995
(byte) bitmap_line_ydxi::e#6 e zp ZP_BYTE:11 1001.0
(byte) bitmap_line_ydxi::e#0 e zp ZP_BYTE:9 4.0
(byte) bitmap_line_ydxi::e#1 e zp ZP_BYTE:9 1334.6666666666667
(byte) bitmap_line_ydxi::e#2 e zp ZP_BYTE:9 2002.0
(byte) bitmap_line_ydxi::e#3 e zp ZP_BYTE:9 400.79999999999995
(byte) bitmap_line_ydxi::e#6 e zp ZP_BYTE:9 1001.0
(byte) bitmap_line_ydxi::x
(byte) bitmap_line_ydxi::x#0 reg byte x 1.0
(byte) bitmap_line_ydxi::x#1 reg byte x 1.0
@ -366,23 +366,23 @@
(byte) bitmap_line_ydxi::x#5 reg byte x 3.0
(byte) bitmap_line_ydxi::x#6 reg byte x 1001.0
(byte) bitmap_line_ydxi::xd
(byte) bitmap_line_ydxi::xd#0 xd zp ZP_BYTE:7 4.0
(byte) bitmap_line_ydxi::xd#1 xd zp ZP_BYTE:7 4.0
(byte) bitmap_line_ydxi::xd#2 xd zp ZP_BYTE:7 71.92857142857143
(byte) bitmap_line_ydxi::xd#0 xd zp ZP_BYTE:8 4.0
(byte) bitmap_line_ydxi::xd#1 xd zp ZP_BYTE:8 4.0
(byte) bitmap_line_ydxi::xd#2 xd zp ZP_BYTE:8 71.92857142857143
(byte) bitmap_line_ydxi::y
(byte) bitmap_line_ydxi::y#0 y zp ZP_BYTE:10 0.8
(byte) bitmap_line_ydxi::y#1 y zp ZP_BYTE:10 0.8
(byte) bitmap_line_ydxi::y#2 y zp ZP_BYTE:10 375.375
(byte) bitmap_line_ydxi::y#3 y zp ZP_BYTE:10 751.25
(byte) bitmap_line_ydxi::y#6 y zp ZP_BYTE:10 3.0
(byte) bitmap_line_ydxi::y#0 y zp ZP_BYTE:11 0.8
(byte) bitmap_line_ydxi::y#1 y zp ZP_BYTE:11 0.8
(byte) bitmap_line_ydxi::y#2 y zp ZP_BYTE:11 375.375
(byte) bitmap_line_ydxi::y#3 y zp ZP_BYTE:11 751.25
(byte) bitmap_line_ydxi::y#6 y zp ZP_BYTE:11 3.0
(byte) bitmap_line_ydxi::y1
(byte) bitmap_line_ydxi::y1#0 y1 zp ZP_BYTE:9 1.3333333333333333
(byte) bitmap_line_ydxi::y1#1 y1 zp ZP_BYTE:9 1.3333333333333333
(byte) bitmap_line_ydxi::y1#6 y1 zp ZP_BYTE:9 71.78571428571429
(byte) bitmap_line_ydxi::y1#0 y1 zp ZP_BYTE:10 1.3333333333333333
(byte) bitmap_line_ydxi::y1#1 y1 zp ZP_BYTE:10 1.3333333333333333
(byte) bitmap_line_ydxi::y1#6 y1 zp ZP_BYTE:10 71.78571428571429
(byte) bitmap_line_ydxi::yd
(byte) bitmap_line_ydxi::yd#0 yd zp ZP_BYTE:8 2.0
(byte) bitmap_line_ydxi::yd#1 yd zp ZP_BYTE:8 2.0
(byte) bitmap_line_ydxi::yd#5 yd zp ZP_BYTE:8 143.28571428571428
(byte) bitmap_line_ydxi::yd#0 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxi::yd#1 yd zp ZP_BYTE:7 2.0
(byte) bitmap_line_ydxi::yd#5 yd zp ZP_BYTE:7 143.28571428571428
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
(word~) bitmap_plot::$0 $0 zp ZP_WORD:2 1.0
(byte~) bitmap_plot::$1 reg byte a 4.0
@ -1189,9 +1189,9 @@ reg byte y [ keyboard_key_pressed::key#20 ]
reg byte a [ dtvSetCpuBankSegment1::cpuBankIdx#3 dtvSetCpuBankSegment1::cpuBankIdx#1 ]
reg byte x [ mode_8bpppixelcell::i#2 mode_8bpppixelcell::i#1 ]
reg byte x [ mode_8bpppixelcell::ax#2 mode_8bpppixelcell::ax#1 ]
zp ZP_BYTE:7 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::xd#0 bitmap_line::xd#1 bitmap_line::xd#0 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#0 bitmap_line_xdyi::xd#1 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#1 bitmap_line_ydxd::xd#0 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::xd#1 keyboard_key_pressed::colidx#0 mode_8bpppixelcell::$14 mode_twoplanebitmap::$16 mode_sixsfred2::$15 mode_hicolmcchar::$26 mode_hicolecmchar::$26 mode_hicolstdchar::$25 mode_stdbitmap::col2#0 mode_mcchar::$28 mode_ecmchar::$28 mode_stdchar::$27 ]
zp ZP_BYTE:8 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#1 bitmap_line_ydxi::yd#0 bitmap_line::yd#1 bitmap_line::yd#10 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#0 bitmap_line_xdyi::yd#1 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#1 bitmap_line_ydxd::yd#0 bitmap_line::yd#0 bitmap_line::yd#3 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#0 bitmap_line_xdyd::yd#1 ]
zp ZP_BYTE:9 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#1 bitmap_line_ydxi::y1#0 bitmap_line::y0#0 bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#1 bitmap_line_ydxd::y1#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
zp ZP_BYTE:7 [ mode_8bpppixelcell::cr#6 mode_8bpppixelcell::cr#1 bitmap_line_xdyi::yd#2 bitmap_line_xdyi::yd#1 bitmap_line_xdyi::yd#0 bitmap_line::yd#1 bitmap_line::yd#10 bitmap_line_ydxi::yd#5 bitmap_line_ydxi::yd#0 bitmap_line_ydxi::yd#1 bitmap_line_xdyd::yd#2 bitmap_line_xdyd::yd#1 bitmap_line_xdyd::yd#0 bitmap_line::yd#0 bitmap_line::yd#3 bitmap_line_ydxd::yd#5 bitmap_line_ydxd::yd#0 bitmap_line_ydxd::yd#1 keyboard_key_pressed::colidx#0 mode_8bpppixelcell::$14 mode_twoplanebitmap::$16 mode_sixsfred2::$15 mode_hicolmcchar::$26 mode_hicolecmchar::$26 mode_hicolstdchar::$25 mode_stdbitmap::col2#0 mode_mcchar::$28 mode_ecmchar::$28 mode_stdchar::$27 ]
zp ZP_BYTE:8 [ mode_8bpppixelcell::bits#2 mode_8bpppixelcell::bits#0 mode_8bpppixelcell::bits#1 bitmap_line_xdyi::xd#5 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::xd#0 bitmap_line::xd#1 bitmap_line::xd#0 bitmap_line_ydxi::xd#2 bitmap_line_ydxi::xd#0 bitmap_line_ydxi::xd#1 bitmap_line_xdyd::xd#5 bitmap_line_xdyd::xd#1 bitmap_line_xdyd::xd#0 bitmap_line_ydxd::xd#2 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::xd#1 ]
zp ZP_BYTE:9 [ mode_8bpppixelcell::col#2 mode_8bpppixelcell::col#5 mode_8bpppixelcell::col#7 mode_8bpppixelcell::col#1 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::x1#0 bitmap_line::x0#0 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
reg byte x [ mode_8bpppixelcell::cp#2 mode_8bpppixelcell::cp#1 ]
reg byte a [ mode_8bpppixelcell::c#2 mode_8bpppixelcell::c#3 ]
reg byte x [ mode_sixsfred::i#2 mode_sixsfred::i#1 ]
@ -1214,15 +1214,15 @@ reg byte x [ mode_hicolstdchar::i#2 mode_hicolstdchar::i#1 ]
reg byte x [ mode_hicolstdchar::cx#2 mode_hicolstdchar::cx#1 ]
reg byte x [ mode_stdbitmap::i#2 mode_stdbitmap::i#1 ]
reg byte x [ mode_stdbitmap::cx#2 mode_stdbitmap::cx#1 ]
reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
zp ZP_BYTE:10 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#2 bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#3 bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#0 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
zp ZP_BYTE:11 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 bitmap_line_xdyi::x1#6 bitmap_line_xdyi::x1#0 bitmap_line_xdyi::x1#1 bitmap_line::x0#0 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 bitmap_line_xdyd::$6 ]
reg byte x [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#2 ]
zp ZP_BYTE:10 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#5 bitmap_line_xdyi::y#1 bitmap_line_xdyi::y#0 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line::y0#0 bitmap_line_ydxi::y1#6 bitmap_line_ydxi::y1#0 bitmap_line_ydxi::y1#1 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#5 bitmap_line_xdyd::y#1 bitmap_line_xdyd::y#0 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y1#6 bitmap_line_ydxd::y1#0 bitmap_line_ydxd::y1#1 ]
zp ZP_BYTE:11 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#0 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#6 bitmap_line_ydxi::y#0 bitmap_line_ydxi::y#1 bitmap_line_ydxi::y#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#7 bitmap_line_ydxd::y#0 bitmap_line_ydxd::y#1 bitmap_line_ydxd::y#3 bitmap_line_xdyd::$6 ]
reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ]
reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ]
reg byte x [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#6 bitmap_line_xdyi::x#0 bitmap_line_xdyi::x#1 bitmap_line_xdyi::x#2 ]
reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
zp ZP_BYTE:12 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#0 bitmap_line_xdyd::x1#1 bitmap_line::x1#0 bitmap_line_xdyi::$6 ]
reg byte x [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#2 ]
reg byte x [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#5 bitmap_line_ydxi::x#0 bitmap_line_ydxi::x#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
zp ZP_BYTE:12 [ bitmap_line_xdyd::x1#6 bitmap_line_xdyd::x1#1 bitmap_line_xdyd::x1#0 bitmap_line::x1#0 bitmap_line_xdyi::$6 ]
reg byte x [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#6 bitmap_line_xdyd::x#1 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
reg byte x [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#5 bitmap_line_ydxd::x#0 bitmap_line_ydxd::x#1 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ]
reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ]
reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
@ -1312,8 +1312,8 @@ reg byte y [ mode_stdbitmap::col#0 ]
reg byte a [ mode_stdbitmap::$22 ]
reg byte a [ mode_stdbitmap::$23 ]
reg byte y [ bitmap_line::y1#0 ]
reg byte y [ bitmap_line_ydxi::$6 ]
reg byte a [ bitmap_plot::$1 ]
reg byte y [ bitmap_line_ydxi::$6 ]
reg byte y [ bitmap_line_ydxd::$6 ]
reg byte a [ bitmap_init::$0 ]
reg byte a [ bitmap_init::$7 ]

@ -15,17 +15,15 @@ main: {
sta SCREEN+0
lda #midb
sta SCREEN+1
ldx SCREEN+0
tay
stx $ff
cpy $ff
bne b1
lda #5
lda SCREEN+0
cmp SCREEN+1
beq b1
lda #2
sta BGCOL
breturn:
rts
b1:
lda #2
lda #5
sta BGCOL
jmp breturn
}

@ -10,14 +10,14 @@
main: scope:[main] from @1
[4] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (const byte) main::midw#0 [ ] ( main:2 [ ] )
[5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (const byte) main::midb#0 [ ] ( main:2 [ ] )
[6] if(*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0)!=*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1 [ ] ( main:2 [ ] )
[6] if(*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0)==*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1 [ ] ( main:2 [ ] )
to:main::@3
main::@3: scope:[main] from main
[7] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] )
[7] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] )
to:main::@return
main::@return: scope:[main] from main::@1 main::@3
[8] return [ ] ( main:2 [ ] )
to:@return
main::@1: scope:[main] from main
[9] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] )
[9] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] )
to:main::@return

@ -40,12 +40,11 @@ proc (void()) main()
*((byte*) main::SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) main::midb
(byte*) main::BGCOL ← (word/dword/signed dword) 53281
(boolean~) main::$7 ← *((byte*) main::SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) == *((byte*) main::SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 1)
(boolean~) main::$8 ← ! (boolean~) main::$7
if((boolean~) main::$8) goto main::@1
*((byte*) main::BGCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 5
if((boolean~) main::$7) goto main::@1
*((byte*) main::BGCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 2
goto main::@2
main::@1:
*((byte*) main::BGCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 2
*((byte*) main::BGCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 5
main::@2:
main::@return:
return
@ -62,7 +61,6 @@ SYMBOLS
(byte~) main::$5
(byte/signed word/word/dword/signed dword~) main::$6
(boolean~) main::$7
(boolean~) main::$8
(label) main::@1
(label) main::@2
(label) main::@return
@ -100,14 +98,13 @@ main: scope:[main] from
*((byte*) main::SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) main::midb
(byte*) main::BGCOL ← ((byte*)) (word/dword/signed dword) 53281
(boolean~) main::$7 ← *((byte*) main::SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) == *((byte*) main::SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 1)
(boolean~) main::$8 ← ! (boolean~) main::$7
if((boolean~) main::$8) goto main::@1
if((boolean~) main::$7) goto main::@1
to:main::@3
main::@1: scope:[main] from main main::@4
*((byte*) main::BGCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 2
*((byte*) main::BGCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 5
to:main::@2
main::@3: scope:[main] from main
*((byte*) main::BGCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 5
*((byte*) main::BGCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 2
to:main::@2
main::@2: scope:[main] from main::@1 main::@3
to:main::@return
@ -149,16 +146,15 @@ main: scope:[main] from @1
*((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) main::midb#0
(byte*) main::BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281
(boolean~) main::$7 ← *((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) == *((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1)
(boolean~) main::$8 ← ! (boolean~) main::$7
if((boolean~) main::$8) goto main::@1
if((boolean~) main::$7) goto main::@1
to:main::@3
main::@1: scope:[main] from main
(byte*) main::BGCOL#1 ← phi( main/(byte*) main::BGCOL#0 )
*((byte*) main::BGCOL#1) ← (byte/signed byte/word/signed word/dword/signed dword) 2
*((byte*) main::BGCOL#1) ← (byte/signed byte/word/signed word/dword/signed dword) 5
to:main::@return
main::@3: scope:[main] from main
(byte*) main::BGCOL#2 ← phi( main/(byte*) main::BGCOL#0 )
*((byte*) main::BGCOL#2) ← (byte/signed byte/word/signed word/dword/signed dword) 5
*((byte*) main::BGCOL#2) ← (byte/signed byte/word/signed word/dword/signed dword) 2
to:main::@return
main::@return: scope:[main] from main::@1 main::@3
return
@ -184,7 +180,6 @@ SYMBOL TABLE SSA
(byte~) main::$5
(byte/signed word/word/dword/signed dword~) main::$6
(boolean~) main::$7
(boolean~) main::$8
(label) main::@1
(label) main::@3
(label) main::@return
@ -210,14 +205,12 @@ SYMBOL TABLE SSA
OPTIMIZING CONTROL FLOW GRAPH
Culled Empty Block (label) @2
Succesful SSA optimization Pass2CullEmptyBlocks
Inversing boolean not (boolean~) main::$8 ← *((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) != *((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1) from (boolean~) main::$7 ← *((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) == *((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1)
Succesful SSA optimization Pass2UnaryNotSimplification
Alias (byte) main::midw#0 = (byte/signed word/word/dword/signed dword~) main::$3
Alias (byte) main::sumb#0 = (byte~) main::$4
Alias (byte) main::midb#0 = (byte/signed word/word/dword/signed dword~) main::$6
Alias (byte*) main::BGCOL#0 = (byte*) main::BGCOL#1 (byte*) main::BGCOL#2
Succesful SSA optimization Pass2AliasElimination
Simple Condition (boolean~) main::$8 if(*((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0)!=*((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1
Simple Condition (boolean~) main::$7 if(*((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0)==*((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1
Succesful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) main::SCREEN#0 = ((byte*))1024
Constant (const byte) main::min#0 = 10
@ -278,16 +271,16 @@ FINAL CONTROL FLOW GRAPH
main: scope:[main] from @1
[4] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (const byte) main::midw#0 [ ] ( main:2 [ ] )
[5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (const byte) main::midb#0 [ ] ( main:2 [ ] )
[6] if(*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0)!=*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1 [ ] ( main:2 [ ] )
[6] if(*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0)==*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1 [ ] ( main:2 [ ] )
to:main::@3
main::@3: scope:[main] from main
[7] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] )
[7] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] )
to:main::@return
main::@return: scope:[main] from main::@1 main::@3
[8] return [ ] ( main:2 [ ] )
to:@return
main::@1: scope:[main] from main
[9] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] )
[9] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] )
to:main::@return
DOMINATORS
@ -356,17 +349,15 @@ main: {
//SEG10 [5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (const byte) main::midb#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #midb
sta SCREEN+1
//SEG11 [6] if(*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0)!=*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1 [ ] ( main:2 [ ] ) -- _deref_pbuc1_neq__deref_pbuc2_then_la1
ldx SCREEN+0
ldy SCREEN+1
stx $ff
cpy $ff
bne b1
//SEG11 [6] if(*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0)==*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1 [ ] ( main:2 [ ] ) -- _deref_pbuc1_eq__deref_pbuc2_then_la1
lda SCREEN+0
cmp SCREEN+1
beq b1
jmp b3
//SEG12 main::@3
b3:
//SEG13 [7] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #5
//SEG13 [7] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #2
sta BGCOL
jmp breturn
//SEG14 main::@return
@ -375,8 +366,8 @@ main: {
rts
//SEG16 main::@1
b1:
//SEG17 [9] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #2
//SEG17 [9] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #5
sta BGCOL
jmp breturn
}
@ -384,16 +375,16 @@ main: {
REGISTER UPLIFT POTENTIAL REGISTERS
Statement [4] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (const byte) main::midw#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
Statement [5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (const byte) main::midb#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
Statement [6] if(*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0)!=*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1 [ ] ( main:2 [ ] ) always clobbers reg byte x reg byte y
Statement [7] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a
Statement [9] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a
Statement [6] if(*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0)==*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1 [ ] ( main:2 [ ] ) always clobbers reg byte a
Statement [7] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) always clobbers reg byte a
Statement [9] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a
REGISTER UPLIFT SCOPES
Uplift Scope [main]
Uplift Scope []
Uplifting [main] best 67 combination
Uplifting [] best 67 combination
Uplifting [main] best 61 combination
Uplifting [] best 61 combination
ASSEMBLER BEFORE OPTIMIZATION
//SEG0 Basic Upstart
@ -431,17 +422,15 @@ main: {
//SEG10 [5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (const byte) main::midb#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #midb
sta SCREEN+1
//SEG11 [6] if(*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0)!=*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1 [ ] ( main:2 [ ] ) -- _deref_pbuc1_neq__deref_pbuc2_then_la1
ldx SCREEN+0
ldy SCREEN+1
stx $ff
cpy $ff
bne b1
//SEG11 [6] if(*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0)==*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1 [ ] ( main:2 [ ] ) -- _deref_pbuc1_eq__deref_pbuc2_then_la1
lda SCREEN+0
cmp SCREEN+1
beq b1
jmp b3
//SEG12 main::@3
b3:
//SEG13 [7] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #5
//SEG13 [7] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #2
sta BGCOL
jmp breturn
//SEG14 main::@return
@ -450,8 +439,8 @@ main: {
rts
//SEG16 main::@1
b1:
//SEG17 [9] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #2
//SEG17 [9] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #5
sta BGCOL
jmp breturn
}
@ -462,7 +451,6 @@ Removing instruction jmp bend
Removing instruction jmp b3
Removing instruction jmp breturn
Succesful ASM optimization Pass5NextJumpElimination
Replacing instruction ldy SCREEN+1 with TAY
Removing instruction bbegin:
Removing instruction b1_from_bbegin:
Removing instruction bend_from_b1:
@ -500,7 +488,7 @@ FINAL SYMBOL TABLE
FINAL ASSEMBLER
Score: 53
Score: 49
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -530,15 +518,13 @@ main: {
//SEG10 [5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (const byte) main::midb#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #midb
sta SCREEN+1
//SEG11 [6] if(*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0)!=*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1 [ ] ( main:2 [ ] ) -- _deref_pbuc1_neq__deref_pbuc2_then_la1
ldx SCREEN+0
tay
stx $ff
cpy $ff
bne b1
//SEG11 [6] if(*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0)==*((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1)) goto main::@1 [ ] ( main:2 [ ] ) -- _deref_pbuc1_eq__deref_pbuc2_then_la1
lda SCREEN+0
cmp SCREEN+1
beq b1
//SEG12 main::@3
//SEG13 [7] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #5
//SEG13 [7] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #2
sta BGCOL
//SEG14 main::@return
breturn:
@ -546,8 +532,8 @@ main: {
rts
//SEG16 main::@1
b1:
//SEG17 [9] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #2
//SEG17 [9] *((const byte*) main::BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #5
sta BGCOL
jmp breturn
}

@ -169,12 +169,12 @@ main: {
ldx #KEY_LSHIFT
jsr keyboard_key_pressed
cmp #0
beq b8
lda #1
bne b8
lda #0
sta shift
jmp b9
b8:
lda #0
lda #1
sta shift
b9:
lda #0

@ -84,13 +84,13 @@ main::@7: scope:[main] from main::@33 main::@44
to:main::@34
main::@34: scope:[main] from main::@7
[45] (byte~) main::$27 ← (byte) keyboard_key_pressed::return#13 [ main::cur_pos#12 main::$27 ] ( main:2 [ main::cur_pos#12 main::$27 ] )
[46] if((byte~) main::$27==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@9 [ main::cur_pos#12 ] ( main:2 [ main::cur_pos#12 ] )
[46] if((byte~) main::$27!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@9 [ main::cur_pos#12 ] ( main:2 [ main::cur_pos#12 ] )
to:main::@19
main::@19: scope:[main] from main::@34
[47] phi() [ main::cur_pos#12 ] ( main:2 [ main::cur_pos#12 ] )
to:main::@9
main::@9: scope:[main] from main::@19 main::@34
[48] (byte) main::shift#10 ← phi( main::@19/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@34/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::cur_pos#12 main::shift#10 ] ( main:2 [ main::cur_pos#12 main::shift#10 ] )
[48] (byte) main::shift#10 ← phi( main::@19/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@34/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ main::cur_pos#12 main::shift#10 ] ( main:2 [ main::cur_pos#12 main::shift#10 ] )
to:main::@10
main::@10: scope:[main] from main::@12 main::@9
[49] (byte) main::ch#2 ← phi( main::@12/(byte) main::ch#1 main::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::cur_pos#12 main::shift#10 main::ch#2 ] ( main:2 [ main::cur_pos#12 main::shift#10 main::ch#2 ] )

@ -823,74 +823,72 @@ keyboard_event_scan::@1:
(byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row
(byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0
(boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row)
(boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1
if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2
if((boolean~) keyboard_event_scan::$1) goto keyboard_event_scan::@2
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2
goto keyboard_event_scan::@3
keyboard_event_scan::@2:
(byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0
keyboard_event_scan::@3:
keyboard_event_scan::@4:
(byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row)
(byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col)
(boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5
if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4
if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@5
(boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8
(boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7
if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5
if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@6
(byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col)
(byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9
(boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10
if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6
(byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
goto keyboard_event_scan::@7
keyboard_event_scan::@6:
if((boolean~) keyboard_event_scan::$10) goto keyboard_event_scan::@7
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
goto keyboard_event_scan::@8
keyboard_event_scan::@7:
(byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$11
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
keyboard_event_scan::@8:
keyboard_event_scan::@6:
keyboard_event_scan::@5:
keyboard_event_scan::@4:
(byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode
(byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col
(boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3
(boolean~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$12) goto keyboard_event_scan::@4
*((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan
goto keyboard_event_scan::@8
keyboard_event_scan::@2:
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14
keyboard_event_scan::@8:
keyboard_event_scan::@3:
(byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row
(boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1
(boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@1
(byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT
(boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17
if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9
(byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19
(byte~) keyboard_event_scan::$14 ← call keyboard_event_pressed (byte) KEY_LSHIFT
(boolean~) keyboard_event_scan::$15 ← (byte~) keyboard_event_scan::$14 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$16 ← ! (boolean~) keyboard_event_scan::$15
if((boolean~) keyboard_event_scan::$16) goto keyboard_event_scan::@9
(byte~) keyboard_event_scan::$17 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$17
keyboard_event_scan::@9:
(byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT
(boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21
if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10
(byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23
(byte~) keyboard_event_scan::$18 ← call keyboard_event_pressed (byte) KEY_RSHIFT
(boolean~) keyboard_event_scan::$19 ← (byte~) keyboard_event_scan::$18 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$20 ← ! (boolean~) keyboard_event_scan::$19
if((boolean~) keyboard_event_scan::$20) goto keyboard_event_scan::@10
(byte~) keyboard_event_scan::$21 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$21
keyboard_event_scan::@10:
(byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL
(boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25
if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11
(byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27
(byte~) keyboard_event_scan::$22 ← call keyboard_event_pressed (byte) KEY_CTRL
(boolean~) keyboard_event_scan::$23 ← (byte~) keyboard_event_scan::$22 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$24 ← ! (boolean~) keyboard_event_scan::$23
if((boolean~) keyboard_event_scan::$24) goto keyboard_event_scan::@11
(byte~) keyboard_event_scan::$25 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$25
keyboard_event_scan::@11:
(byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE
(boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29
if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12
(byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31
(byte~) keyboard_event_scan::$26 ← call keyboard_event_pressed (byte) KEY_COMMODORE
(boolean~) keyboard_event_scan::$27 ← (byte~) keyboard_event_scan::$26 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$28 ← ! (boolean~) keyboard_event_scan::$27
if((boolean~) keyboard_event_scan::$28) goto keyboard_event_scan::@12
(byte~) keyboard_event_scan::$29 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$29
keyboard_event_scan::@12:
keyboard_event_scan::@return:
return
@ -908,14 +906,13 @@ keyboard_event_pressed::@return:
endproc // keyboard_event_pressed()
proc (byte()) keyboard_event_get()
(boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0
if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1
(byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255
if((boolean~) keyboard_event_get::$0) goto keyboard_event_get::@1
(byte) keyboard_events_size ← -- (byte) keyboard_events_size
(byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size)
goto keyboard_event_get::@return
goto keyboard_event_get::@2
keyboard_event_get::@1:
(byte) keyboard_events_size ← -- (byte) keyboard_events_size
(byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size)
(byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255
goto keyboard_event_get::@return
keyboard_event_get::@2:
keyboard_event_get::@return:
@ -977,32 +974,31 @@ main::@6:
main::@7:
(byte~) main::$27 ← call keyboard_key_pressed (byte) KEY_LSHIFT
(boolean~) main::$28 ← (byte~) main::$27 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) main::$29 ← ! (boolean~) main::$28
if((boolean~) main::$29) goto main::@8
(byte) main::shift ← (byte/signed byte/word/signed word/dword/signed dword) 1
if((boolean~) main::$28) goto main::@8
(byte) main::shift ← (byte/signed byte/word/signed word/dword/signed dword) 0
goto main::@9
main::@8:
(byte) main::shift ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) main::shift ← (byte/signed byte/word/signed word/dword/signed dword) 1
main::@9:
(byte) main::ch ← (byte/signed byte/word/signed word/dword/signed dword) 0
main::@10:
(byte) main::pressed ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte~) main::$30 ← call keyboard_get_keycode (byte) main::ch
(byte) main::key ← (byte~) main::$30
(boolean~) main::$31 ← (byte) main::key != (byte/signed byte/word/signed word/dword/signed dword) 63
(boolean~) main::$32 ← ! (boolean~) main::$31
if((boolean~) main::$32) goto main::@11
(byte~) main::$33 ← call keyboard_key_pressed (byte) main::key
(byte) main::pressed ← (byte~) main::$33
(byte~) main::$29 ← call keyboard_get_keycode (byte) main::ch
(byte) main::key ← (byte~) main::$29
(boolean~) main::$30 ← (byte) main::key != (byte/signed byte/word/signed word/dword/signed dword) 63
(boolean~) main::$31 ← ! (boolean~) main::$30
if((boolean~) main::$31) goto main::@11
(byte~) main::$32 ← call keyboard_key_pressed (byte) main::key
(byte) main::pressed ← (byte~) main::$32
main::@11:
(boolean~) main::$34 ← (byte) main::pressed != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) main::$35 ← ! (boolean~) main::$34
if((boolean~) main::$35) goto main::@12
(void~) main::$36 ← call plot_chargen (byte) main::cur_pos (byte) main::ch (byte) main::shift
(boolean~) main::$33 ← (byte) main::pressed != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) main::$34 ← ! (boolean~) main::$33
if((boolean~) main::$34) goto main::@12
(void~) main::$35 ← call plot_chargen (byte) main::cur_pos (byte) main::ch (byte) main::shift
main::@12:
(byte) main::ch ← ++ (byte) main::ch
(boolean~) main::$37 ← (byte) main::ch != (byte/signed byte/word/signed word/dword/signed dword) 64
if((boolean~) main::$37) goto main::@10
(boolean~) main::$36 ← (byte) main::ch != (byte/signed byte/word/signed word/dword/signed dword) 64
if((boolean~) main::$36) goto main::@10
if(true) goto main::@3
main::@return:
return
@ -1210,7 +1206,6 @@ SYMBOLS
(byte[]) keyboard_char_keycodes
(byte()) keyboard_event_get()
(boolean~) keyboard_event_get::$0
(boolean~) keyboard_event_get::$1
(label) keyboard_event_get::@1
(label) keyboard_event_get::@2
(label) keyboard_event_get::@return
@ -1227,29 +1222,27 @@ SYMBOLS
(byte~) keyboard_event_scan::$0
(boolean~) keyboard_event_scan::$1
(boolean~) keyboard_event_scan::$10
(boolean~) keyboard_event_scan::$11
(byte/word/dword~) keyboard_event_scan::$12
(byte/word/dword~) keyboard_event_scan::$11
(boolean~) keyboard_event_scan::$12
(boolean~) keyboard_event_scan::$13
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14
(byte~) keyboard_event_scan::$14
(boolean~) keyboard_event_scan::$15
(byte~) keyboard_event_scan::$16
(boolean~) keyboard_event_scan::$17
(boolean~) keyboard_event_scan::$18
(byte~) keyboard_event_scan::$19
(boolean~) keyboard_event_scan::$2
(byte~) keyboard_event_scan::$20
(boolean~) keyboard_event_scan::$21
(boolean~) keyboard_event_scan::$22
(byte~) keyboard_event_scan::$23
(byte~) keyboard_event_scan::$24
(boolean~) keyboard_event_scan::$25
(boolean~) keyboard_event_scan::$26
(byte~) keyboard_event_scan::$27
(byte~) keyboard_event_scan::$28
(boolean~) keyboard_event_scan::$29
(boolean~) keyboard_event_scan::$16
(byte~) keyboard_event_scan::$17
(byte~) keyboard_event_scan::$18
(boolean~) keyboard_event_scan::$19
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2
(boolean~) keyboard_event_scan::$20
(byte~) keyboard_event_scan::$21
(byte~) keyboard_event_scan::$22
(boolean~) keyboard_event_scan::$23
(boolean~) keyboard_event_scan::$24
(byte~) keyboard_event_scan::$25
(byte~) keyboard_event_scan::$26
(boolean~) keyboard_event_scan::$27
(boolean~) keyboard_event_scan::$28
(byte~) keyboard_event_scan::$29
(byte~) keyboard_event_scan::$3
(boolean~) keyboard_event_scan::$30
(byte~) keyboard_event_scan::$31
(byte~) keyboard_event_scan::$4
(boolean~) keyboard_event_scan::$5
(boolean~) keyboard_event_scan::$6
@ -1325,16 +1318,15 @@ SYMBOLS
(boolean~) main::$26
(byte~) main::$27
(boolean~) main::$28
(boolean~) main::$29
(byte~) main::$29
(void~) main::$3
(byte~) main::$30
(boolean~) main::$30
(boolean~) main::$31
(boolean~) main::$32
(byte~) main::$33
(byte~) main::$32
(boolean~) main::$33
(boolean~) main::$34
(boolean~) main::$35
(void~) main::$36
(boolean~) main::$37
(void~) main::$35
(boolean~) main::$36
(byte*~) main::$4
(byte*~) main::$5
(void~) main::$6
@ -1942,112 +1934,110 @@ keyboard_event_scan: scope:[keyboard_event_scan] from
(byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:keyboard_event_scan::@1
keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8
keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3
(byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row
(byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0
(boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row)
(boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1
if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2
if((boolean~) keyboard_event_scan::$1) goto keyboard_event_scan::@2
to:keyboard_event_scan::@13
keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@1 keyboard_event_scan::@19
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14
to:keyboard_event_scan::@8
keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@1
keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@1 keyboard_event_scan::@14
(byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:keyboard_event_scan::@4
keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@1
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2
to:keyboard_event_scan::@3
keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@4
keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@19
(byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row
(boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@1
to:keyboard_event_scan::@20
keyboard_event_scan::@14: scope:[keyboard_event_scan] from
to:keyboard_event_scan::@2
keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@2 keyboard_event_scan::@5
(byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row)
(byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col)
(boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5
if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4
to:keyboard_event_scan::@14
keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@3 keyboard_event_scan::@5
if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@5
to:keyboard_event_scan::@15
keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@4 keyboard_event_scan::@6
(byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode
(byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col
(boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3
to:keyboard_event_scan::@18
keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@3
(boolean~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$12) goto keyboard_event_scan::@4
to:keyboard_event_scan::@19
keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@4
(boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8
(boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7
if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5
to:keyboard_event_scan::@15
keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@14 keyboard_event_scan::@7
to:keyboard_event_scan::@4
keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@14
if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@6
to:keyboard_event_scan::@16
keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@8
to:keyboard_event_scan::@5
keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15
(byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col)
(byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9
(boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10
if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6
to:keyboard_event_scan::@16
keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17
if((boolean~) keyboard_event_scan::$10) goto keyboard_event_scan::@7
to:keyboard_event_scan::@17
keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 keyboard_event_scan::@18
(byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$11
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
to:keyboard_event_scan::@8
keyboard_event_scan::@17: scope:[keyboard_event_scan] from keyboard_event_scan::@16
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
to:keyboard_event_scan::@7
keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15
(byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
to:keyboard_event_scan::@7
keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 keyboard_event_scan::@6
to:keyboard_event_scan::@5
keyboard_event_scan::@17: scope:[keyboard_event_scan] from
to:keyboard_event_scan::@6
keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@4
*((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan
to:keyboard_event_scan::@8
keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@2
(byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row
(boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1
to:keyboard_event_scan::@20
keyboard_event_scan::@19: scope:[keyboard_event_scan] from
to:keyboard_event_scan::@2
keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@8
keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@17 keyboard_event_scan::@7
to:keyboard_event_scan::@6
keyboard_event_scan::@18: scope:[keyboard_event_scan] from
to:keyboard_event_scan::@7
keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan::@5
*((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan
to:keyboard_event_scan::@3
keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@3
(byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT
(boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17
if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9
(byte~) keyboard_event_scan::$14 ← call keyboard_event_pressed (byte) KEY_LSHIFT
(boolean~) keyboard_event_scan::$15 ← (byte~) keyboard_event_scan::$14 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$16 ← ! (boolean~) keyboard_event_scan::$15
if((boolean~) keyboard_event_scan::$16) goto keyboard_event_scan::@9
to:keyboard_event_scan::@21
keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@20 keyboard_event_scan::@21
(byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT
(boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21
if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10
(byte~) keyboard_event_scan::$18 ← call keyboard_event_pressed (byte) KEY_RSHIFT
(boolean~) keyboard_event_scan::$19 ← (byte~) keyboard_event_scan::$18 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$20 ← ! (boolean~) keyboard_event_scan::$19
if((boolean~) keyboard_event_scan::$20) goto keyboard_event_scan::@10
to:keyboard_event_scan::@22
keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@20
(byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19
(byte~) keyboard_event_scan::$17 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$17
to:keyboard_event_scan::@9
keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@9
(byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL
(boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25
if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11
(byte~) keyboard_event_scan::$22 ← call keyboard_event_pressed (byte) KEY_CTRL
(boolean~) keyboard_event_scan::$23 ← (byte~) keyboard_event_scan::$22 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$24 ← ! (boolean~) keyboard_event_scan::$23
if((boolean~) keyboard_event_scan::$24) goto keyboard_event_scan::@11
to:keyboard_event_scan::@23
keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@9
(byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23
(byte~) keyboard_event_scan::$21 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$21
to:keyboard_event_scan::@10
keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@10 keyboard_event_scan::@23
(byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE
(boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29
if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12
(byte~) keyboard_event_scan::$26 ← call keyboard_event_pressed (byte) KEY_COMMODORE
(boolean~) keyboard_event_scan::$27 ← (byte~) keyboard_event_scan::$26 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$28 ← ! (boolean~) keyboard_event_scan::$27
if((boolean~) keyboard_event_scan::$28) goto keyboard_event_scan::@12
to:keyboard_event_scan::@24
keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@10
(byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27
(byte~) keyboard_event_scan::$25 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$25
to:keyboard_event_scan::@11
keyboard_event_scan::@12: scope:[keyboard_event_scan] from keyboard_event_scan::@11 keyboard_event_scan::@24
to:keyboard_event_scan::@return
keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@11
(byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31
(byte~) keyboard_event_scan::$29 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$29
to:keyboard_event_scan::@12
keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@12
return
@ -2071,15 +2061,14 @@ keyboard_event_pressed::@1: scope:[keyboard_event_pressed] from
to:@12
keyboard_event_get: scope:[keyboard_event_get] from
(boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0
if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1
if((boolean~) keyboard_event_get::$0) goto keyboard_event_get::@1
to:keyboard_event_get::@3
keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@5
(byte) keyboard_events_size ← -- (byte) keyboard_events_size
(byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size)
(byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255
to:keyboard_event_get::@return
keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get
(byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255
(byte) keyboard_events_size ← -- (byte) keyboard_events_size
(byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size)
to:keyboard_event_get::@return
keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get::@1 keyboard_event_get::@2 keyboard_event_get::@3
(byte) keyboard_event_get::return ← (byte) keyboard_event_get::return
@ -2166,17 +2155,16 @@ main::@17: scope:[main] from main::@5
main::@7: scope:[main] from main::@18 main::@6
(byte~) main::$27 ← call keyboard_key_pressed (byte) KEY_LSHIFT
(boolean~) main::$28 ← (byte~) main::$27 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) main::$29 ← ! (boolean~) main::$28
if((boolean~) main::$29) goto main::@8
if((boolean~) main::$28) goto main::@8
to:main::@19
main::@18: scope:[main] from main::@6
(byte) main::cur_pos ← (byte/signed byte/word/signed word/dword/signed dword) 3
to:main::@7
main::@8: scope:[main] from main::@20 main::@7
(byte) main::shift ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) main::shift ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:main::@9
main::@19: scope:[main] from main::@7
(byte) main::shift ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) main::shift ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:main::@9
main::@9: scope:[main] from main::@19 main::@8
(byte) main::ch ← (byte/signed byte/word/signed word/dword/signed dword) 0
@ -2185,28 +2173,28 @@ main::@20: scope:[main] from
to:main::@8
main::@10: scope:[main] from main::@12 main::@9
(byte) main::pressed ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte~) main::$30 ← call keyboard_get_keycode (byte) main::ch
(byte) main::key ← (byte~) main::$30
(boolean~) main::$31 ← (byte) main::key != (byte/signed byte/word/signed word/dword/signed dword) 63
(boolean~) main::$32 ← ! (boolean~) main::$31
if((boolean~) main::$32) goto main::@11
(byte~) main::$29 ← call keyboard_get_keycode (byte) main::ch
(byte) main::key ← (byte~) main::$29
(boolean~) main::$30 ← (byte) main::key != (byte/signed byte/word/signed word/dword/signed dword) 63
(boolean~) main::$31 ← ! (boolean~) main::$30
if((boolean~) main::$31) goto main::@11
to:main::@21
main::@11: scope:[main] from main::@10 main::@21
(boolean~) main::$34 ← (byte) main::pressed != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) main::$35 ← ! (boolean~) main::$34
if((boolean~) main::$35) goto main::@12
(boolean~) main::$33 ← (byte) main::pressed != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) main::$34 ← ! (boolean~) main::$33
if((boolean~) main::$34) goto main::@12
to:main::@22
main::@21: scope:[main] from main::@10
(byte~) main::$33 ← call keyboard_key_pressed (byte) main::key
(byte) main::pressed ← (byte~) main::$33
(byte~) main::$32 ← call keyboard_key_pressed (byte) main::key
(byte) main::pressed ← (byte~) main::$32
to:main::@11
main::@12: scope:[main] from main::@11 main::@22
(byte) main::ch ← ++ (byte) main::ch
(boolean~) main::$37 ← (byte) main::ch != (byte/signed byte/word/signed word/dword/signed dword) 64
if((boolean~) main::$37) goto main::@10
(boolean~) main::$36 ← (byte) main::ch != (byte/signed byte/word/signed word/dword/signed dword) 64
if((boolean~) main::$36) goto main::@10
to:main::@23
main::@22: scope:[main] from main::@11
(void~) main::$36 ← call plot_chargen (byte) main::cur_pos (byte) main::ch (byte) main::shift
(void~) main::$35 ← call plot_chargen (byte) main::cur_pos (byte) main::ch (byte) main::shift
to:main::@12
main::@23: scope:[main] from main::@12
if(true) goto main::@3
@ -2397,7 +2385,7 @@ Eliminating unused variable - keeping the call (void~) main::$6
Eliminating unused variable - keeping the call (void~) main::$9
Eliminating unused variable - keeping the call (void~) main::$12
Eliminating unused variable - keeping the call (void~) main::$13
Eliminating unused variable - keeping the call (void~) main::$36
Eliminating unused variable - keeping the call (void~) main::$35
Eliminating unused variable (byte~) $0 and assignment [99] (byte~) $0 ← (byte) KEY_MODIFIER_LSHIFT | (byte) KEY_MODIFIER_RSHIFT
Eliminating unused variable (byte) KEY_MODIFIER_LSHIFT and assignment [97] (byte) KEY_MODIFIER_LSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 1
Eliminating unused variable (byte) KEY_MODIFIER_RSHIFT and assignment [98] (byte) KEY_MODIFIER_RSHIFT ← (byte/signed byte/word/signed word/dword/signed dword) 2
@ -2769,8 +2757,7 @@ main::@34: scope:[main] from main::@7
(byte) keyboard_key_pressed::return#13 ← phi( main::@7/(byte) keyboard_key_pressed::return#6 )
(byte~) main::$27 ← (byte) keyboard_key_pressed::return#13
(boolean~) main::$28 ← (byte~) main::$27 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) main::$29 ← ! (boolean~) main::$28
if((boolean~) main::$29) goto main::@8
if((boolean~) main::$28) goto main::@8
to:main::@19
main::@18: scope:[main] from main::@33
(byte*) SCREEN#27 ← phi( main::@33/(byte*) SCREEN#28 )
@ -2779,12 +2766,12 @@ main::@18: scope:[main] from main::@33
main::@8: scope:[main] from main::@34
(byte*) SCREEN#23 ← phi( main::@34/(byte*) SCREEN#25 )
(byte) main::cur_pos#14 ← phi( main::@34/(byte) main::cur_pos#16 )
(byte) main::shift#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) main::shift#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:main::@9
main::@19: scope:[main] from main::@34
(byte*) SCREEN#22 ← phi( main::@34/(byte*) SCREEN#25 )
(byte) main::cur_pos#13 ← phi( main::@34/(byte) main::cur_pos#16 )
(byte) main::shift#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) main::shift#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:main::@9
main::@9: scope:[main] from main::@19 main::@8
(byte*) SCREEN#21 ← phi( main::@19/(byte*) SCREEN#22 main::@8/(byte*) SCREEN#23 )
@ -2809,11 +2796,11 @@ main::@35: scope:[main] from main::@10
(byte) main::ch#7 ← phi( main::@10/(byte) main::ch#2 )
(byte) main::pressed#3 ← phi( main::@10/(byte) main::pressed#0 )
(byte) keyboard_get_keycode::return#4 ← phi( main::@10/(byte) keyboard_get_keycode::return#2 )
(byte~) main::$30 ← (byte) keyboard_get_keycode::return#4
(byte) main::key#0 ← (byte~) main::$30
(boolean~) main::$31 ← (byte) main::key#0 != (byte/signed byte/word/signed word/dword/signed dword) 63
(boolean~) main::$32 ← ! (boolean~) main::$31
if((boolean~) main::$32) goto main::@11
(byte~) main::$29 ← (byte) keyboard_get_keycode::return#4
(byte) main::key#0 ← (byte~) main::$29
(boolean~) main::$30 ← (byte) main::key#0 != (byte/signed byte/word/signed word/dword/signed dword) 63
(boolean~) main::$31 ← ! (boolean~) main::$30
if((boolean~) main::$31) goto main::@11
to:main::@21
main::@11: scope:[main] from main::@35 main::@36
(byte*) SCREEN#15 ← phi( main::@35/(byte*) SCREEN#16 main::@36/(byte*) SCREEN#17 )
@ -2821,9 +2808,9 @@ main::@11: scope:[main] from main::@35 main::@36
(byte) main::cur_pos#6 ← phi( main::@35/(byte) main::cur_pos#7 main::@36/(byte) main::cur_pos#8 )
(byte) main::ch#5 ← phi( main::@35/(byte) main::ch#7 main::@36/(byte) main::ch#8 )
(byte) main::pressed#2 ← phi( main::@35/(byte) main::pressed#3 main::@36/(byte) main::pressed#1 )
(boolean~) main::$34 ← (byte) main::pressed#2 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) main::$35 ← ! (boolean~) main::$34
if((boolean~) main::$35) goto main::@12
(boolean~) main::$33 ← (byte) main::pressed#2 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) main::$34 ← ! (boolean~) main::$33
if((boolean~) main::$34) goto main::@12
to:main::@22
main::@21: scope:[main] from main::@35
(byte*) SCREEN#19 ← phi( main::@35/(byte*) SCREEN#16 )
@ -2841,8 +2828,8 @@ main::@36: scope:[main] from main::@21
(byte) main::cur_pos#8 ← phi( main::@21/(byte) main::cur_pos#10 )
(byte) main::ch#8 ← phi( main::@21/(byte) main::ch#9 )
(byte) keyboard_key_pressed::return#14 ← phi( main::@21/(byte) keyboard_key_pressed::return#7 )
(byte~) main::$33 ← (byte) keyboard_key_pressed::return#14
(byte) main::pressed#1 ← (byte~) main::$33
(byte~) main::$32 ← (byte) keyboard_key_pressed::return#14
(byte) main::pressed#1 ← (byte~) main::$32
to:main::@11
main::@12: scope:[main] from main::@11 main::@37
(byte*) SCREEN#20 ← phi( main::@11/(byte*) SCREEN#15 main::@37/(byte*) SCREEN#24 )
@ -2850,8 +2837,8 @@ main::@12: scope:[main] from main::@11 main::@37
(byte) main::cur_pos#11 ← phi( main::@11/(byte) main::cur_pos#6 main::@37/(byte) main::cur_pos#15 )
(byte) main::ch#3 ← phi( main::@11/(byte) main::ch#5 main::@37/(byte) main::ch#6 )
(byte) main::ch#1 ← ++ (byte) main::ch#3
(boolean~) main::$37 ← (byte) main::ch#1 != (byte/signed byte/word/signed word/dword/signed dword) 64
if((boolean~) main::$37) goto main::@10
(boolean~) main::$36 ← (byte) main::ch#1 != (byte/signed byte/word/signed word/dword/signed dword) 64
if((boolean~) main::$36) goto main::@10
to:main::@23
main::@22: scope:[main] from main::@11
(byte*) SCREEN#12 ← phi( main::@11/(byte*) SCREEN#15 )
@ -3260,14 +3247,13 @@ SYMBOL TABLE SSA
(boolean~) main::$26
(byte~) main::$27
(boolean~) main::$28
(boolean~) main::$29
(byte~) main::$30
(byte~) main::$29
(boolean~) main::$30
(boolean~) main::$31
(boolean~) main::$32
(byte~) main::$33
(byte~) main::$32
(boolean~) main::$33
(boolean~) main::$34
(boolean~) main::$35
(boolean~) main::$37
(boolean~) main::$36
(byte*~) main::$4
(byte*~) main::$5
(byte*~) main::$7
@ -3545,9 +3531,8 @@ Inversing boolean not (boolean~) main::$17 ← (byte~) main::$15 == (byte/signed
Inversing boolean not (boolean~) main::$20 ← (byte~) main::$18 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) main::$19 ← (byte~) main::$18 != (byte/signed byte/word/signed word/dword/signed dword) 0
Inversing boolean not (boolean~) main::$23 ← (byte~) main::$21 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) main::$22 ← (byte~) main::$21 != (byte/signed byte/word/signed word/dword/signed dword) 0
Inversing boolean not (boolean~) main::$26 ← (byte~) main::$24 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) main::$25 ← (byte~) main::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0
Inversing boolean not (boolean~) main::$29 ← (byte~) main::$27 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) main::$28 ← (byte~) main::$27 != (byte/signed byte/word/signed word/dword/signed dword) 0
Inversing boolean not (boolean~) main::$32 ← (byte) main::key#0 == (byte/signed byte/word/signed word/dword/signed dword) 63 from (boolean~) main::$31 ← (byte) main::key#0 != (byte/signed byte/word/signed word/dword/signed dword) 63
Inversing boolean not (boolean~) main::$35 ← (byte) main::pressed#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) main::$34 ← (byte) main::pressed#2 != (byte/signed byte/word/signed word/dword/signed dword) 0
Inversing boolean not (boolean~) main::$31 ← (byte) main::key#0 == (byte/signed byte/word/signed word/dword/signed dword) 63 from (boolean~) main::$30 ← (byte) main::key#0 != (byte/signed byte/word/signed word/dword/signed dword) 63
Inversing boolean not (boolean~) main::$34 ← (byte) main::pressed#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) main::$33 ← (byte) main::pressed#2 != (byte/signed byte/word/signed word/dword/signed dword) 0
Inversing boolean not (boolean~) plot_chargen::$4 ← (byte) plot_chargen::shift#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) plot_chargen::$3 ← (byte) plot_chargen::shift#2 != (byte/signed byte/word/signed word/dword/signed dword) 0
Inversing boolean not (boolean~) plot_chargen::$12 ← (byte~) plot_chargen::$10 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) plot_chargen::$11 ← (byte~) plot_chargen::$10 != (byte/signed byte/word/signed word/dword/signed dword) 0
Succesful SSA optimization Pass2UnaryNotSimplification
@ -3579,10 +3564,10 @@ Not aliassing across scopes: keyboard_key_pressed::return#6 keyboard_key_pressed
Not aliassing across scopes: main::$27 keyboard_key_pressed::return#13
Not aliassing across scopes: keyboard_get_keycode::ch#0 main::ch#2
Not aliassing across scopes: keyboard_get_keycode::return#2 keyboard_get_keycode::return#1
Not aliassing across scopes: main::$30 keyboard_get_keycode::return#4
Not aliassing across scopes: main::$29 keyboard_get_keycode::return#4
Not aliassing across scopes: keyboard_key_pressed::key#5 main::key#1
Not aliassing across scopes: keyboard_key_pressed::return#7 keyboard_key_pressed::return#1
Not aliassing across scopes: main::$33 keyboard_key_pressed::return#14
Not aliassing across scopes: main::$32 keyboard_key_pressed::return#14
Not aliassing across scopes: plot_chargen::pos#1 main::cur_pos#5
Not aliassing across scopes: plot_chargen::ch#1 main::ch#4
Not aliassing across scopes: plot_chargen::shift#1 main::shift#3
@ -3635,9 +3620,9 @@ Alias (byte) main::ch#2 = (byte) main::ch#7 (byte) main::ch#9 (byte) main::ch#8
Alias (byte) main::cur_pos#10 = (byte) main::cur_pos#7 (byte) main::cur_pos#9 (byte) main::cur_pos#8
Alias (byte) main::shift#5 = (byte) main::shift#7 (byte) main::shift#8 (byte) main::shift#6
Alias (byte*) SCREEN#16 = (byte*) SCREEN#18 (byte*) SCREEN#19 (byte*) SCREEN#17
Alias (byte) main::key#0 = (byte~) main::$30 (byte) main::key#1
Alias (byte) main::key#0 = (byte~) main::$29 (byte) main::key#1
Alias (byte) keyboard_key_pressed::return#14 = (byte) keyboard_key_pressed::return#7
Alias (byte) main::pressed#1 = (byte~) main::$33
Alias (byte) main::pressed#1 = (byte~) main::$32
Alias (byte) main::cur_pos#15 = (byte) main::cur_pos#5 (byte) main::cur_pos#6
Alias (byte) main::ch#4 = (byte) main::ch#5 (byte) main::ch#6
Alias (byte) main::shift#11 = (byte) main::shift#3 (byte) main::shift#4
@ -3801,10 +3786,10 @@ Simple Condition (boolean~) main::$17 if((byte~) main::$15==(byte/signed byte/wo
Simple Condition (boolean~) main::$20 if((byte~) main::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5
Simple Condition (boolean~) main::$23 if((byte~) main::$21==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@6
Simple Condition (boolean~) main::$26 if((byte~) main::$24==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7
Simple Condition (boolean~) main::$29 if((byte~) main::$27==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8
Simple Condition (boolean~) main::$32 if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11
Simple Condition (boolean~) main::$35 if((byte) main::pressed#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@12
Simple Condition (boolean~) main::$37 if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@10
Simple Condition (boolean~) main::$28 if((byte~) main::$27!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8
Simple Condition (boolean~) main::$31 if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11
Simple Condition (boolean~) main::$34 if((byte) main::pressed#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@12
Simple Condition (boolean~) main::$36 if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@10
Simple Condition (boolean~) print_str_at::$0 if(*((byte*) print_str_at::str#5)!=(byte) '@') goto print_str_at::@2
Simple Condition (boolean~) plot_chargen::$4 if((byte) plot_chargen::shift#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot_chargen::@1
Simple Condition (boolean~) plot_chargen::$12 if((byte~) plot_chargen::$10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto plot_chargen::@4
@ -3887,8 +3872,8 @@ Constant (const byte) main::cur_pos#1 = 0
Constant (const byte) main::cur_pos#2 = 1
Constant (const byte) main::cur_pos#3 = 2
Constant (const byte) main::cur_pos#4 = 3
Constant (const byte) main::shift#1 = 0
Constant (const byte) main::shift#2 = 1
Constant (const byte) main::shift#1 = 1
Constant (const byte) main::shift#2 = 0
Constant (const byte) main::ch#0 = 0
Constant (const byte) main::pressed#0 = 0
Constant (const byte) mul8u::b#0 = 10
@ -3921,10 +3906,10 @@ Multiple usages for variable. Not optimizing sub-constant (byte*) plot_chargen::
Succesful SSA optimization Pass2ConstantAdditionElimination
Multiple usages for variable. Not optimizing sub-constant (byte*) plot_chargen::chargen#0
Multiple usages for variable. Not optimizing sub-constant (byte*) plot_chargen::sc#1
Eliminating unused constant (const byte) main::shift#0
Succesful SSA optimization PassNEliminateUnusedVars
if() condition always true - replacing block destination if(true) goto main::@3
Succesful SSA optimization Pass2ConstantIfs
Eliminating unused constant (const byte) main::shift#0
Succesful SSA optimization PassNEliminateUnusedVars
Removing unused block main::@return
Succesful SSA optimization Pass2EliminateUnusedBlocks
Culled Empty Block (label) mul8u::@3
@ -4150,7 +4135,7 @@ Inlining constant with different constant siblings (const byte) plot_chargen::c#
Inlining constant with var siblings (const byte) plot_chargen::c#1
Inlining constant with different constant siblings (const byte) plot_chargen::c#1
Constant inlined print_str_at::str#1 = (const string) main::str1
Constant inlined main::shift#1 = (byte/signed byte/word/signed word/dword/signed dword) 0
Constant inlined main::shift#1 = (byte/signed byte/word/signed word/dword/signed dword) 1
Constant inlined print_str_at::str#2 = (const string) main::str2
Constant inlined print_str_at::at#3 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 30
Constant inlined print_str_at::str#3 = (const string) main::str3
@ -4161,7 +4146,7 @@ Constant inlined plot_chargen::c#1 = (byte) '*'
Constant inlined print_str_at::at#0 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1
Constant inlined print_str_at::str#0 = (const string) main::str
Constant inlined main::$10 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1
Constant inlined main::shift#2 = (byte/signed byte/word/signed word/dword/signed dword) 1
Constant inlined main::shift#2 = (byte/signed byte/word/signed word/dword/signed dword) 0
Constant inlined plot_chargen::$7 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 1
Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
Constant inlined plot_chargen::$6 = (const byte*) SCREEN#0
@ -4413,13 +4398,13 @@ main::@7: scope:[main] from main::@33 main::@44
to:main::@34
main::@34: scope:[main] from main::@7
[45] (byte~) main::$27 ← (byte) keyboard_key_pressed::return#13 [ main::cur_pos#12 main::$27 ] ( main:2 [ main::cur_pos#12 main::$27 ] )
[46] if((byte~) main::$27==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@9 [ main::cur_pos#12 ] ( main:2 [ main::cur_pos#12 ] )
[46] if((byte~) main::$27!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@9 [ main::cur_pos#12 ] ( main:2 [ main::cur_pos#12 ] )
to:main::@19
main::@19: scope:[main] from main::@34
[47] phi() [ main::cur_pos#12 ] ( main:2 [ main::cur_pos#12 ] )
to:main::@9
main::@9: scope:[main] from main::@19 main::@34
[48] (byte) main::shift#10 ← phi( main::@19/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@34/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::cur_pos#12 main::shift#10 ] ( main:2 [ main::cur_pos#12 main::shift#10 ] )
[48] (byte) main::shift#10 ← phi( main::@19/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@34/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ main::cur_pos#12 main::shift#10 ] ( main:2 [ main::cur_pos#12 main::shift#10 ] )
to:main::@10
main::@10: scope:[main] from main::@12 main::@9
[49] (byte) main::ch#2 ← phi( main::@12/(byte) main::ch#1 main::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ main::cur_pos#12 main::shift#10 main::ch#2 ] ( main:2 [ main::cur_pos#12 main::shift#10 main::ch#2 ] )
@ -5417,9 +5402,9 @@ main: {
//SEG104 [45] (byte~) main::$27 ← (byte) keyboard_key_pressed::return#13 [ main::cur_pos#12 main::$27 ] ( main:2 [ main::cur_pos#12 main::$27 ] ) -- vbuz1=vbuz2
lda keyboard_key_pressed.return_13
sta _27
//SEG105 [46] if((byte~) main::$27==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@9 [ main::cur_pos#12 ] ( main:2 [ main::cur_pos#12 ] ) -- vbuz1_eq_0_then_la1
//SEG105 [46] if((byte~) main::$27!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@9 [ main::cur_pos#12 ] ( main:2 [ main::cur_pos#12 ] ) -- vbuz1_neq_0_then_la1
lda _27
beq b9_from_b34
bne b9_from_b34
//SEG106 [47] phi from main::@34 to main::@19 [phi:main::@34->main::@19]
b19_from_b34:
jmp b19
@ -5427,14 +5412,14 @@ main: {
b19:
//SEG108 [48] phi from main::@19 to main::@9 [phi:main::@19->main::@9]
b9_from_b19:
//SEG109 [48] phi (byte) main::shift#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main::@19->main::@9#0] -- vbuz1=vbuc1
lda #1
//SEG109 [48] phi (byte) main::shift#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@19->main::@9#0] -- vbuz1=vbuc1
lda #0
sta shift
jmp b9
//SEG110 [48] phi from main::@34 to main::@9 [phi:main::@34->main::@9]
b9_from_b34:
//SEG111 [48] phi (byte) main::shift#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@34->main::@9#0] -- vbuz1=vbuc1
lda #0
//SEG111 [48] phi (byte) main::shift#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main::@34->main::@9#0] -- vbuz1=vbuc1
lda #1
sta shift
jmp b9
//SEG112 main::@9
@ -6519,9 +6504,9 @@ main: {
b34:
//SEG104 [45] (byte~) main::$27 ← (byte) keyboard_key_pressed::return#13 [ main::cur_pos#12 main::$27 ] ( main:2 [ main::cur_pos#12 main::$27 ] )
// (byte~) main::$27 = (byte) keyboard_key_pressed::return#13 // register copy reg byte a
//SEG105 [46] if((byte~) main::$27==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@9 [ main::cur_pos#12 ] ( main:2 [ main::cur_pos#12 ] ) -- vbuaa_eq_0_then_la1
//SEG105 [46] if((byte~) main::$27!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@9 [ main::cur_pos#12 ] ( main:2 [ main::cur_pos#12 ] ) -- vbuaa_neq_0_then_la1
cmp #0
beq b9_from_b34
bne b9_from_b34
//SEG106 [47] phi from main::@34 to main::@19 [phi:main::@34->main::@19]
b19_from_b34:
jmp b19
@ -6529,14 +6514,14 @@ main: {
b19:
//SEG108 [48] phi from main::@19 to main::@9 [phi:main::@19->main::@9]
b9_from_b19:
//SEG109 [48] phi (byte) main::shift#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main::@19->main::@9#0] -- vbuz1=vbuc1
lda #1
//SEG109 [48] phi (byte) main::shift#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@19->main::@9#0] -- vbuz1=vbuc1
lda #0
sta shift
jmp b9
//SEG110 [48] phi from main::@34 to main::@9 [phi:main::@34->main::@9]
b9_from_b34:
//SEG111 [48] phi (byte) main::shift#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@34->main::@9#0] -- vbuz1=vbuc1
lda #0
//SEG111 [48] phi (byte) main::shift#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main::@34->main::@9#0] -- vbuz1=vbuc1
lda #1
sta shift
jmp b9
//SEG112 main::@9
@ -7839,20 +7824,20 @@ main: {
//SEG103 main::@34
//SEG104 [45] (byte~) main::$27 ← (byte) keyboard_key_pressed::return#13 [ main::cur_pos#12 main::$27 ] ( main:2 [ main::cur_pos#12 main::$27 ] )
// (byte~) main::$27 = (byte) keyboard_key_pressed::return#13 // register copy reg byte a
//SEG105 [46] if((byte~) main::$27==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@9 [ main::cur_pos#12 ] ( main:2 [ main::cur_pos#12 ] ) -- vbuaa_eq_0_then_la1
//SEG105 [46] if((byte~) main::$27!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@9 [ main::cur_pos#12 ] ( main:2 [ main::cur_pos#12 ] ) -- vbuaa_neq_0_then_la1
cmp #0
beq b8
bne b8
//SEG106 [47] phi from main::@34 to main::@19 [phi:main::@34->main::@19]
//SEG107 main::@19
//SEG108 [48] phi from main::@19 to main::@9 [phi:main::@19->main::@9]
//SEG109 [48] phi (byte) main::shift#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main::@19->main::@9#0] -- vbuz1=vbuc1
lda #1
//SEG109 [48] phi (byte) main::shift#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@19->main::@9#0] -- vbuz1=vbuc1
lda #0
sta shift
jmp b9
//SEG110 [48] phi from main::@34 to main::@9 [phi:main::@34->main::@9]
b8:
//SEG111 [48] phi (byte) main::shift#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@34->main::@9#0] -- vbuz1=vbuc1
lda #0
//SEG111 [48] phi (byte) main::shift#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main::@34->main::@9#0] -- vbuz1=vbuc1
lda #1
sta shift
//SEG112 main::@9
b9:

@ -0,0 +1,10 @@
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
jsr main
main: {
.label SCREEN = $400
lda #'!'
sta SCREEN+0
rts
}

@ -0,0 +1,18 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@1
@1: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @1
[3] phi() [ ] ( )
main: scope:[main] from @1
[4] phi() [ ] ( main:2 [ ] )
to:main::@3
main::@3: scope:[main] from main
[5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) '!' [ ] ( main:2 [ ] )
to:main::@return
main::@return: scope:[main] from main::@3
[6] return [ ] ( main:2 [ ] )
to:@return

@ -0,0 +1,326 @@
PARSING src/test/java/dk/camelot64/kickc/test/kc/const-condition.kc
// Ensure that if()'s with constant comparisons are identified and eliminated
void main() {
const byte* SCREEN = $0400;
if(7<4) {
SCREEN[0] = '*';
} else {
SCREEN[0] = '!';
}
}
STATEMENTS
proc (void()) main()
(byte*) main::SCREEN ← (word/signed word/dword/signed dword) 1024
(boolean~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 < (byte/signed byte/word/signed word/dword/signed dword) 4
if((boolean~) main::$0) goto main::@1
*((byte*) main::SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) '!'
goto main::@2
main::@1:
*((byte*) main::SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) '*'
main::@2:
main::@return:
return
endproc // main()
call main
SYMBOLS
(void()) main()
(boolean~) main::$0
(label) main::@1
(label) main::@2
(label) main::@return
(byte*) main::SCREEN
Promoting word/signed word/dword/signed dword to byte* in main::SCREEN ← ((byte*)) 1024
INITIAL CONTROL FLOW GRAPH
@begin: scope:[] from
to:@1
main: scope:[main] from
(byte*) main::SCREEN ← ((byte*)) (word/signed word/dword/signed dword) 1024
(boolean~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 < (byte/signed byte/word/signed word/dword/signed dword) 4
if((boolean~) main::$0) goto main::@1
to:main::@3
main::@1: scope:[main] from main main::@4
*((byte*) main::SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) '*'
to:main::@2
main::@3: scope:[main] from main
*((byte*) main::SCREEN + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) '!'
to:main::@2
main::@2: scope:[main] from main::@1 main::@3
to:main::@return
main::@4: scope:[main] from
to:main::@1
main::@return: scope:[main] from main::@2
return
to:@return
@1: scope:[] from @begin
call main
to:@end
@end: scope:[] from @1
Removing empty block main::@2
Removing empty block main::@4
PROCEDURE MODIFY VARIABLE ANALYSIS
Completing Phi functions...
CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
@begin: scope:[] from
to:@1
main: scope:[main] from @1
(byte*) main::SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
(boolean~) main::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 < (byte/signed byte/word/signed word/dword/signed dword) 4
if((boolean~) main::$0) goto main::@1
to:main::@3
main::@1: scope:[main] from main
*((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) '*'
to:main::@return
main::@3: scope:[main] from main
*((byte*) main::SCREEN#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) '!'
to:main::@return
main::@return: scope:[main] from main::@1 main::@3
return
to:@return
@1: scope:[] from @begin
call main param-assignment
to:@2
@2: scope:[] from @1
to:@end
@end: scope:[] from @2
SYMBOL TABLE SSA
(label) @1
(label) @2
(label) @begin
(label) @end
(void()) main()
(boolean~) main::$0
(label) main::@1
(label) main::@3
(label) main::@return
(byte*) main::SCREEN
(byte*) main::SCREEN#0
OPTIMIZING CONTROL FLOW GRAPH
Culled Empty Block (label) @2
Succesful SSA optimization Pass2CullEmptyBlocks
Simple Condition (boolean~) main::$0 if((byte/signed byte/word/signed word/dword/signed dword) 7<(byte/signed byte/word/signed word/dword/signed dword) 4) goto main::@1
Succesful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) main::SCREEN#0 = ((byte*))1024
Succesful SSA optimization Pass2ConstantIdentification
Consolidated array index constant in *(main::SCREEN#0+0)
Consolidated array index constant in *(main::SCREEN#0+0)
Succesful SSA optimization Pass2ConstantAdditionElimination
if() condition always false - eliminating if((byte/signed byte/word/signed word/dword/signed dword) 7<(byte/signed byte/word/signed word/dword/signed dword) 4) goto main::@1
Succesful SSA optimization Pass2ConstantIfs
Removing unused block main::@1
Succesful SSA optimization Pass2EliminateUnusedBlocks
OPTIMIZING CONTROL FLOW GRAPH
Block Sequence Planned @begin @1 @end main main::@3 main::@return
Block Sequence Planned @begin @1 @end main main::@3 main::@return
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @1
Adding NOP phi() at start of @end
Adding NOP phi() at start of main
CALL GRAPH
Calls in [] to main:2
Propagating live ranges...
Created 0 initial phi equivalence classes
Coalesced down to 0 phi equivalence classes
Block Sequence Planned @begin @1 @end main main::@3 main::@return
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @1
Adding NOP phi() at start of @end
Adding NOP phi() at start of main
Propagating live ranges...
FINAL CONTROL FLOW GRAPH
@begin: scope:[] from
[0] phi() [ ] ( )
to:@1
@1: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @1
[3] phi() [ ] ( )
main: scope:[main] from @1
[4] phi() [ ] ( main:2 [ ] )
to:main::@3
main::@3: scope:[main] from main
[5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) '!' [ ] ( main:2 [ ] )
to:main::@return
main::@return: scope:[main] from main::@3
[6] return [ ] ( main:2 [ ] )
to:@return
DOMINATORS
@begin dominated by @begin
@1 dominated by @1 @begin
@end dominated by @1 @begin @end
main dominated by @1 @begin main
main::@3 dominated by @1 @begin main main::@3
main::@return dominated by main::@return @1 @begin main main::@3
NATURAL LOOPS
NATURAL LOOPS WITH DEPTH
Found 0 loops in scope []
Found 0 loops in scope [main]
VARIABLE REGISTER WEIGHTS
(void()) main()
(byte*) main::SCREEN
Initial phi equivalence classes
Complete equivalence classes
INITIAL ASM
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
//SEG1 Global Constants & labels
//SEG2 @begin
bbegin:
//SEG3 [1] phi from @begin to @1 [phi:@begin->@1]
b1_from_bbegin:
jmp b1
//SEG4 @1
b1:
//SEG5 [2] call main param-assignment [ ] ( )
//SEG6 [4] phi from @1 to main [phi:@1->main]
main_from_b1:
jsr main
//SEG7 [3] phi from @1 to @end [phi:@1->@end]
bend_from_b1:
jmp bend
//SEG8 @end
bend:
//SEG9 main
main: {
.label SCREEN = $400
jmp b3
//SEG10 main::@3
b3:
//SEG11 [5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) '!' [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #'!'
sta SCREEN+0
jmp breturn
//SEG12 main::@return
breturn:
//SEG13 [6] return [ ] ( main:2 [ ] )
rts
}
REGISTER UPLIFT POTENTIAL REGISTERS
Statement [5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) '!' [ ] ( main:2 [ ] ) always clobbers reg byte a
REGISTER UPLIFT SCOPES
Uplift Scope [main]
Uplift Scope []
Uplifting [main] best 57 combination
Uplifting [] best 57 combination
ASSEMBLER BEFORE OPTIMIZATION
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
//SEG1 Global Constants & labels
//SEG2 @begin
bbegin:
//SEG3 [1] phi from @begin to @1 [phi:@begin->@1]
b1_from_bbegin:
jmp b1
//SEG4 @1
b1:
//SEG5 [2] call main param-assignment [ ] ( )
//SEG6 [4] phi from @1 to main [phi:@1->main]
main_from_b1:
jsr main
//SEG7 [3] phi from @1 to @end [phi:@1->@end]
bend_from_b1:
jmp bend
//SEG8 @end
bend:
//SEG9 main
main: {
.label SCREEN = $400
jmp b3
//SEG10 main::@3
b3:
//SEG11 [5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) '!' [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #'!'
sta SCREEN+0
jmp breturn
//SEG12 main::@return
breturn:
//SEG13 [6] return [ ] ( main:2 [ ] )
rts
}
ASSEMBLER OPTIMIZATIONS
Removing instruction jmp b1
Removing instruction jmp bend
Removing instruction jmp b3
Removing instruction jmp breturn
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction bbegin:
Removing instruction b1_from_bbegin:
Removing instruction main_from_b1:
Removing instruction bend_from_b1:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction b1:
Removing instruction bend:
Removing instruction b3:
Removing instruction breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
(label) @1
(label) @begin
(label) @end
(void()) main()
(label) main::@3
(label) main::@return
(byte*) main::SCREEN
(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
FINAL ASSEMBLER
Score: 18
//SEG0 Basic Upstart
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
//SEG1 Global Constants & labels
//SEG2 @begin
//SEG3 [1] phi from @begin to @1 [phi:@begin->@1]
//SEG4 @1
//SEG5 [2] call main param-assignment [ ] ( )
//SEG6 [4] phi from @1 to main [phi:@1->main]
jsr main
//SEG7 [3] phi from @1 to @end [phi:@1->@end]
//SEG8 @end
//SEG9 main
main: {
.label SCREEN = $400
//SEG10 main::@3
//SEG11 [5] *((const byte*) main::SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) '!' [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #'!'
sta SCREEN+0
//SEG12 main::@return
//SEG13 [6] return [ ] ( main:2 [ ] )
rts
}

@ -0,0 +1,9 @@
(label) @1
(label) @begin
(label) @end
(void()) main()
(label) main::@3
(label) main::@return
(byte*) main::SCREEN
(const byte*) main::SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024

@ -21,24 +21,14 @@ main: {
line: {
.const x0 = 0
.const x1 = $a
.label x = 2
lda #x0
cmp #x1
bcs b1
sta x
b2:
ldx x
jsr plot
inc x
lda #x1
cmp x
bcs b2
breturn:
rts
b1:
ldx #x0
b3:
jsr plot
jmp breturn
inx
cpx #x1
bcc b3
beq b3
rts
}
plot: {
ldy plots,x

@ -22,30 +22,25 @@ main::@2: scope:[main] from main::@1 main::@2
[11] call line param-assignment [ ] ( main:2 [ ] )
to:main::@2
line: scope:[line] from main::@2
[12] if((const byte) line::x0#0>=(const byte) line::x1#0) goto line::@1 [ ] ( main:2::line:11 [ ] )
to:line::@2
line::@2: scope:[line] from line line::@8
[12] phi() [ ] ( main:2::line:11 [ ] )
to:line::@3
line::@3: scope:[line] from line line::@8
[13] (byte) line::x#2 ← phi( line/(const byte) line::x0#0 line::@8/(byte) line::x#1 ) [ line::x#2 ] ( main:2::line:11 [ line::x#2 ] )
[14] (byte) plot::x#1 ← (byte) line::x#2 [ line::x#2 plot::x#1 ] ( main:2::line:11 [ line::x#2 plot::x#1 ] )
[15] call plot param-assignment [ line::x#2 ] ( main:2::line:11 [ line::x#2 ] )
to:line::@8
line::@8: scope:[line] from line::@2
line::@8: scope:[line] from line::@3
[16] (byte) line::x#1 ← ++ (byte) line::x#2 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] )
[17] if((byte) line::x#1<=(const byte) line::x1#0) goto line::@2 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] )
[17] if((byte) line::x#1<=(const byte) line::x1#0) goto line::@3 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] )
to:line::@return
line::@return: scope:[line] from line::@1 line::@8
line::@return: scope:[line] from line::@8
[18] return [ ] ( main:2::line:11 [ ] )
to:@return
line::@1: scope:[line] from line
[19] phi() [ ] ( main:2::line:11 [ ] )
[20] call plot param-assignment [ ] ( main:2::line:11 [ ] )
to:line::@return
plot: scope:[plot] from line::@1 line::@2
[21] (byte) plot::x#2 ← phi( line::@1/(const byte) line::x0#0 line::@2/(byte) plot::x#1 ) [ plot::x#2 ] ( main:2::line:11::plot:15 [ line::x#2 plot::x#2 ] main:2::line:11::plot:20 [ plot::x#2 ] )
[22] (byte) plot::idx#0 ← *((const byte*) plots#0 + (byte) plot::x#2) [ plot::idx#0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 ] main:2::line:11::plot:20 [ plot::idx#0 ] )
[23] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] main:2::line:11::plot:20 [ plot::idx#0 plot::$0 ] )
[24] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte/signed word/word/dword/signed dword~) plot::$0 [ ] ( main:2::line:11::plot:15 [ line::x#2 ] main:2::line:11::plot:20 [ ] )
plot: scope:[plot] from line::@3
[19] (byte) plot::idx#0 ← *((const byte*) plots#0 + (byte) plot::x#1) [ plot::idx#0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 ] )
[20] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] )
[21] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte/signed word/word/dword/signed dword~) plot::$0 [ ] ( main:2::line:11::plot:15 [ line::x#2 ] )
to:plot::@return
plot::@return: scope:[plot] from plot
[25] return [ ] ( main:2::line:11::plot:15 [ line::x#2 ] main:2::line:11::plot:20 [ ] )
[22] return [ ] ( main:2::line:11::plot:15 [ line::x#2 ] )
to:@return

@ -48,18 +48,17 @@ main::@return:
endproc // main()
proc (void()) line((byte) line::x0 , (byte) line::x1)
(boolean~) line::$0 ← (byte) line::x0 < (byte) line::x1
(boolean~) line::$1 ← ! (boolean~) line::$0
if((boolean~) line::$1) goto line::@1
if((boolean~) line::$0) goto line::@1
(void~) line::$1 ← call plot (byte) line::x0
goto line::@2
line::@1:
(byte) line::x ← (byte) line::x0
line::@2:
line::@3:
(void~) line::$2 ← call plot (byte) line::x
(byte) line::x ← ++ (byte) line::x
(boolean~) line::$3 ← (byte) line::x <= (byte) line::x1
if((boolean~) line::$3) goto line::@2
goto line::@3
line::@1:
(void~) line::$4 ← call plot (byte) line::x0
line::@3:
if((boolean~) line::$3) goto line::@3
line::@2:
line::@return:
return
endproc // line()
@ -76,10 +75,9 @@ SYMBOLS
(byte*) SCREEN
(void()) line((byte) line::x0 , (byte) line::x1)
(boolean~) line::$0
(boolean~) line::$1
(void~) line::$1
(void~) line::$2
(boolean~) line::$3
(void~) line::$4
(label) line::@1
(label) line::@2
(label) line::@3
@ -133,28 +131,27 @@ main::@return: scope:[main] from main::@4
to:@2
line: scope:[line] from
(boolean~) line::$0 ← (byte) line::x0 < (byte) line::x1
(boolean~) line::$1 ← ! (boolean~) line::$0
if((boolean~) line::$1) goto line::@1
if((boolean~) line::$0) goto line::@1
to:line::@4
line::@1: scope:[line] from line line::@6
(void~) line::$4 ← call plot (byte) line::x0
line::@1: scope:[line] from line line::@5
(byte) line::x ← (byte) line::x0
to:line::@3
line::@4: scope:[line] from line
(byte) line::x ← (byte) line::x0
(void~) line::$1 ← call plot (byte) line::x0
to:line::@2
line::@2: scope:[line] from line::@2 line::@4
line::@2: scope:[line] from line::@4 line::@6
to:line::@return
line::@5: scope:[line] from
to:line::@1
line::@3: scope:[line] from line::@1 line::@3
(void~) line::$2 ← call plot (byte) line::x
(byte) line::x ← ++ (byte) line::x
(boolean~) line::$3 ← (byte) line::x <= (byte) line::x1
if((boolean~) line::$3) goto line::@2
to:line::@5
line::@5: scope:[line] from line::@2
to:line::@3
line::@3: scope:[line] from line::@1 line::@5
to:line::@return
line::@6: scope:[line] from
to:line::@1
line::@return: scope:[line] from line::@3
if((boolean~) line::$3) goto line::@3
to:line::@6
line::@6: scope:[line] from line::@3
to:line::@2
line::@return: scope:[line] from line::@2
return
to:@return
@2: scope:[] from @1
@ -173,13 +170,13 @@ plot::@return: scope:[plot] from plot
@end: scope:[] from @3
Eliminating unused variable - keeping the call (void~) main::$1
Eliminating unused variable - keeping the call (void~) line::$4
Eliminating unused variable - keeping the call (void~) line::$1
Eliminating unused variable - keeping the call (void~) line::$2
Removing empty block main::@3
Removing empty block main::@4
Removing empty block @1
Removing empty block line::@2
Removing empty block line::@5
Removing empty block line::@3
Removing empty block line::@6
Removing empty block @2
PROCEDURE MODIFY VARIABLE ANALYSIS
@ -219,39 +216,38 @@ line: scope:[line] from main::@2
(byte) line::x1#1 ← phi( main::@2/(byte) line::x1#0 )
(byte) line::x0#1 ← phi( main::@2/(byte) line::x0#0 )
(boolean~) line::$0 ← (byte) line::x0#1 < (byte) line::x1#1
(boolean~) line::$1 ← ! (boolean~) line::$0
if((boolean~) line::$1) goto line::@1
if((boolean~) line::$0) goto line::@1
to:line::@4
line::@1: scope:[line] from line
(byte) line::x1#4 ← phi( line/(byte) line::x1#1 )
(byte) line::x0#2 ← phi( line/(byte) line::x0#1 )
(byte) plot::x#0 ← (byte) line::x0#2
(byte) line::x#0 ← (byte) line::x0#2
to:line::@3
line::@4: scope:[line] from line
(byte) line::x0#3 ← phi( line/(byte) line::x0#1 )
(byte) plot::x#0 ← (byte) line::x0#3
call plot param-assignment
to:line::@7
line::@7: scope:[line] from line::@1
line::@7: scope:[line] from line::@4
to:line::@return
line::@4: scope:[line] from line
(byte) line::x1#4 ← phi( line/(byte) line::x1#1 )
(byte) line::x0#3 ← phi( line/(byte) line::x0#1 )
(byte) line::x#0 ← (byte) line::x0#3
to:line::@2
line::@2: scope:[line] from line::@4 line::@8
(byte) line::x1#3 ← phi( line::@4/(byte) line::x1#4 line::@8/(byte) line::x1#2 )
(byte) line::x#2 ← phi( line::@4/(byte) line::x#0 line::@8/(byte) line::x#1 )
line::@3: scope:[line] from line::@1 line::@8
(byte) line::x1#3 ← phi( line::@1/(byte) line::x1#4 line::@8/(byte) line::x1#2 )
(byte) line::x#2 ← phi( line::@1/(byte) line::x#0 line::@8/(byte) line::x#1 )
(byte) plot::x#1 ← (byte) line::x#2
call plot param-assignment
to:line::@8
line::@8: scope:[line] from line::@2
(byte) line::x1#2 ← phi( line::@2/(byte) line::x1#3 )
(byte) line::x#3 ← phi( line::@2/(byte) line::x#2 )
line::@8: scope:[line] from line::@3
(byte) line::x1#2 ← phi( line::@3/(byte) line::x1#3 )
(byte) line::x#3 ← phi( line::@3/(byte) line::x#2 )
(byte) line::x#1 ← ++ (byte) line::x#3
(boolean~) line::$3 ← (byte) line::x#1 <= (byte) line::x1#2
if((boolean~) line::$3) goto line::@2
if((boolean~) line::$3) goto line::@3
to:line::@return
line::@return: scope:[line] from line::@7 line::@8
return
to:@return
plot: scope:[plot] from line::@1 line::@2
(byte) plot::x#2 ← phi( line::@1/(byte) plot::x#0 line::@2/(byte) plot::x#1 )
plot: scope:[plot] from line::@3 line::@4
(byte) plot::x#2 ← phi( line::@3/(byte) plot::x#1 line::@4/(byte) plot::x#0 )
(byte) plot::idx#0 ← *((byte*) plots#0 + (byte) plot::x#2)
(byte/signed word/word/dword/signed dword~) plot::$0 ← *((byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1
*((byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte/signed word/word/dword/signed dword~) plot::$0
@ -275,10 +271,9 @@ SYMBOL TABLE SSA
(byte*) SCREEN#0
(void()) line((byte) line::x0 , (byte) line::x1)
(boolean~) line::$0
(boolean~) line::$1
(boolean~) line::$3
(label) line::@1
(label) line::@2
(label) line::@3
(label) line::@4
(label) line::@7
(label) line::@8
@ -325,14 +320,12 @@ OPTIMIZING CONTROL FLOW GRAPH
Culled Empty Block (label) line::@7
Culled Empty Block (label) @4
Succesful SSA optimization Pass2CullEmptyBlocks
Inversing boolean not (boolean~) line::$1 ← (byte) line::x0#1 >= (byte) line::x1#1 from (boolean~) line::$0 ← (byte) line::x0#1 < (byte) line::x1#1
Succesful SSA optimization Pass2UnaryNotSimplification
Not aliassing across scopes: line::x0#1 line::x0#0
Not aliassing across scopes: line::x1#1 line::x1#0
Not aliassing across scopes: plot::x#0 line::x0#2
Not aliassing across scopes: plot::x#0 line::x0#3
Not aliassing across scopes: plot::x#1 line::x#2
Not aliassing across scopes: plot::x#2 plot::x#0
Alias (byte) line::x0#1 = (byte) line::x0#2 (byte) line::x0#3 (byte) line::x#0
Not aliassing across scopes: plot::x#2 plot::x#1
Alias (byte) line::x0#1 = (byte) line::x0#2 (byte) line::x#0 (byte) line::x0#3
Alias (byte) line::x1#1 = (byte) line::x1#4
Alias (byte) line::x#2 = (byte) line::x#3
Alias (byte) line::x1#2 = (byte) line::x1#3
@ -341,7 +334,7 @@ Not aliassing across scopes: line::x0#1 line::x0#0
Not aliassing across scopes: line::x1#1 line::x1#0
Not aliassing across scopes: plot::x#0 line::x0#1
Not aliassing across scopes: plot::x#1 line::x#2
Not aliassing across scopes: plot::x#2 plot::x#0
Not aliassing across scopes: plot::x#2 plot::x#1
Self Phi Eliminated (byte) line::x1#2
Succesful SSA optimization Pass2SelfPhiElimination
Redundant Phi (byte) line::x0#1 (byte) line::x0#0
@ -349,8 +342,8 @@ Redundant Phi (byte) line::x1#1 (byte) line::x1#0
Redundant Phi (byte) line::x1#2 (byte) line::x1#1
Succesful SSA optimization Pass2RedundantPhiElimination
Simple Condition (boolean~) main::$0 if((byte) main::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto main::@1
Simple Condition (boolean~) line::$1 if((byte) line::x0#0>=(byte) line::x1#0) goto line::@1
Simple Condition (boolean~) line::$3 if((byte) line::x#1<=(byte) line::x1#0) goto line::@2
Simple Condition (boolean~) line::$0 if((byte) line::x0#0<(byte) line::x1#0) goto line::@1
Simple Condition (boolean~) line::$3 if((byte) line::x#1<=(byte) line::x1#0) goto line::@3
Succesful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) plots#0 = ((byte*))4096
Constant (const byte*) SCREEN#0 = ((byte*))1024
@ -363,59 +356,62 @@ Succesful SSA optimization Pass2ConstantIdentification
Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
if() condition always true - replacing block destination if(true) goto main::@2
if() condition always true - replacing block destination if((const byte) line::x0#0<(const byte) line::x1#0) goto line::@1
Succesful SSA optimization Pass2ConstantIfs
Removing unused block main::@return
Removing PHI-reference to removed block (line::@4) in block plot
Removing unused block line::@4
Succesful SSA optimization Pass2EliminateUnusedBlocks
Culled Empty Block (label) main::@5
Culled Empty Block (label) line::@4
Culled Empty Block (label) line::@1
Succesful SSA optimization Pass2CullEmptyBlocks
Not aliassing across scopes: plot::x#1 line::x#2
Not aliassing across scopes: plot::x#2 plot::x#1
Redundant Phi (byte) plot::x#2 (byte) plot::x#1
Succesful SSA optimization Pass2RedundantPhiElimination
Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
Eliminating unused constant (const byte) plot::x#0
Succesful SSA optimization PassNEliminateUnusedVars
Not aliassing across scopes: plot::x#1 line::x#2
Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
OPTIMIZING CONTROL FLOW GRAPH
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) plot::x#0
Inlining constant with var siblings (const byte) plot::x#0
Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
Constant inlined plot::x#0 = (const byte) line::x0#0
Succesful SSA optimization Pass2ConstantInlining
Block Sequence Planned @begin @3 @end main main::@1 main::@2 line line::@2 line::@8 line::@return line::@1 plot plot::@return
Block Sequence Planned @begin @3 @end main main::@1 main::@2 line line::@3 line::@8 line::@return plot plot::@return
Added new block during phi lifting main::@6(between main::@1 and main::@1)
Added new block during phi lifting line::@9(between line::@8 and line::@2)
Block Sequence Planned @begin @3 @end main main::@1 main::@2 main::@6 line line::@2 line::@8 line::@return line::@9 line::@1 plot plot::@return
Added new block during phi lifting line::@9(between line::@8 and line::@3)
Block Sequence Planned @begin @3 @end main main::@1 main::@2 main::@6 line line::@3 line::@8 line::@return line::@9 plot plot::@return
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @3
Adding NOP phi() at start of @end
Adding NOP phi() at start of main
Adding NOP phi() at start of main::@2
Adding NOP phi() at start of line::@1
Adding NOP phi() at start of line
CALL GRAPH
Calls in [] to main:2
Calls in [main] to line:11
Calls in [line] to plot:17 plot:23
Calls in [line] to plot:16
Propagating live ranges...
Propagating live ranges...
Propagating live ranges...
Propagating live ranges...
Created 3 initial phi equivalence classes
Created 2 initial phi equivalence classes
Coalesced [12] main::i#3 ← main::i#1
Coalesced [16] plot::x#3 ← plot::x#1
Coalesced [21] line::x#4 ← line::x#1
Coalesced down to 3 phi equivalence classes
Coalesced [20] line::x#4 ← line::x#1
Coalesced down to 2 phi equivalence classes
Culled Empty Block (label) main::@6
Culled Empty Block (label) line::@9
Block Sequence Planned @begin @3 @end main main::@1 main::@2 line line::@2 line::@8 line::@return line::@1 plot plot::@return
Block Sequence Planned @begin @3 @end main main::@1 main::@2 line line::@3 line::@8 line::@return plot plot::@return
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @3
Adding NOP phi() at start of @end
Adding NOP phi() at start of main
Adding NOP phi() at start of main::@2
Adding NOP phi() at start of line::@1
Adding NOP phi() at start of line
Propagating live ranges...
Propagating live ranges...
Propagating live ranges...
@ -445,59 +441,53 @@ main::@2: scope:[main] from main::@1 main::@2
[11] call line param-assignment [ ] ( main:2 [ ] )
to:main::@2
line: scope:[line] from main::@2
[12] if((const byte) line::x0#0>=(const byte) line::x1#0) goto line::@1 [ ] ( main:2::line:11 [ ] )
to:line::@2
line::@2: scope:[line] from line line::@8
[12] phi() [ ] ( main:2::line:11 [ ] )
to:line::@3
line::@3: scope:[line] from line line::@8
[13] (byte) line::x#2 ← phi( line/(const byte) line::x0#0 line::@8/(byte) line::x#1 ) [ line::x#2 ] ( main:2::line:11 [ line::x#2 ] )
[14] (byte) plot::x#1 ← (byte) line::x#2 [ line::x#2 plot::x#1 ] ( main:2::line:11 [ line::x#2 plot::x#1 ] )
[15] call plot param-assignment [ line::x#2 ] ( main:2::line:11 [ line::x#2 ] )
to:line::@8
line::@8: scope:[line] from line::@2
line::@8: scope:[line] from line::@3
[16] (byte) line::x#1 ← ++ (byte) line::x#2 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] )
[17] if((byte) line::x#1<=(const byte) line::x1#0) goto line::@2 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] )
[17] if((byte) line::x#1<=(const byte) line::x1#0) goto line::@3 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] )
to:line::@return
line::@return: scope:[line] from line::@1 line::@8
line::@return: scope:[line] from line::@8
[18] return [ ] ( main:2::line:11 [ ] )
to:@return
line::@1: scope:[line] from line
[19] phi() [ ] ( main:2::line:11 [ ] )
[20] call plot param-assignment [ ] ( main:2::line:11 [ ] )
to:line::@return
plot: scope:[plot] from line::@1 line::@2
[21] (byte) plot::x#2 ← phi( line::@1/(const byte) line::x0#0 line::@2/(byte) plot::x#1 ) [ plot::x#2 ] ( main:2::line:11::plot:15 [ line::x#2 plot::x#2 ] main:2::line:11::plot:20 [ plot::x#2 ] )
[22] (byte) plot::idx#0 ← *((const byte*) plots#0 + (byte) plot::x#2) [ plot::idx#0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 ] main:2::line:11::plot:20 [ plot::idx#0 ] )
[23] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] main:2::line:11::plot:20 [ plot::idx#0 plot::$0 ] )
[24] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte/signed word/word/dword/signed dword~) plot::$0 [ ] ( main:2::line:11::plot:15 [ line::x#2 ] main:2::line:11::plot:20 [ ] )
plot: scope:[plot] from line::@3
[19] (byte) plot::idx#0 ← *((const byte*) plots#0 + (byte) plot::x#1) [ plot::idx#0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 ] )
[20] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] )
[21] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte/signed word/word/dword/signed dword~) plot::$0 [ ] ( main:2::line:11::plot:15 [ line::x#2 ] )
to:plot::@return
plot::@return: scope:[plot] from plot
[25] return [ ] ( main:2::line:11::plot:15 [ line::x#2 ] main:2::line:11::plot:20 [ ] )
[22] return [ ] ( main:2::line:11::plot:15 [ line::x#2 ] )
to:@return
DOMINATORS
@begin dominated by @begin
@3 dominated by @begin @3
@end dominated by @begin @end @3
main dominated by @begin main @3
main::@1 dominated by @begin main @3 main::@1
main::@2 dominated by @begin main @3 main::@1 main::@2
line dominated by @begin line main @3 main::@1 main::@2
line::@2 dominated by @begin line main line::@2 @3 main::@1 main::@2
line::@8 dominated by line::@8 @begin line main line::@2 @3 main::@1 main::@2
line::@return dominated by @begin line main @3 main::@1 line::@return main::@2
line::@1 dominated by @begin line line::@1 main @3 main::@1 main::@2
plot dominated by @begin line main @3 plot main::@1 main::@2
plot::@return dominated by @begin line main @3 plot main::@1 plot::@return main::@2
@end dominated by @begin @3 @end
main dominated by @begin @3 main
main::@1 dominated by @begin @3 main::@1 main
main::@2 dominated by @begin @3 main::@1 main::@2 main
line dominated by @begin @3 line main::@1 main::@2 main
line::@3 dominated by @begin @3 line main::@1 main::@2 main line::@3
line::@8 dominated by line::@8 @begin @3 line main::@1 main::@2 main line::@3
line::@return dominated by line::@8 @begin @3 line main::@1 line::@return main::@2 main line::@3
plot dominated by @begin @3 plot line main::@1 main::@2 main line::@3
plot::@return dominated by @begin @3 plot line main::@1 plot::@return main::@2 main line::@3
NATURAL LOOPS
Found back edge: Loop head: main::@1 tails: main::@1 blocks: null
Found back edge: Loop head: main::@2 tails: main::@2 blocks: null
Found back edge: Loop head: line::@2 tails: line::@8 blocks: null
Found back edge: Loop head: line::@3 tails: line::@8 blocks: null
Populated: Loop head: main::@1 tails: main::@1 blocks: main::@1
Populated: Loop head: main::@2 tails: main::@2 blocks: main::@2
Populated: Loop head: line::@2 tails: line::@8 blocks: line::@8 line::@2
Populated: Loop head: line::@3 tails: line::@8 blocks: line::@8 line::@3
Loop head: main::@1 tails: main::@1 blocks: main::@1
Loop head: main::@2 tails: main::@2 blocks: main::@2
Loop head: line::@2 tails: line::@8 blocks: line::@8 line::@2
Loop head: line::@3 tails: line::@8 blocks: line::@8 line::@3
NATURAL LOOPS WITH DEPTH
Found 0 loops in scope []
@ -505,11 +495,11 @@ Found 2 loops in scope [main]
Loop head: main::@1 tails: main::@1 blocks: main::@1
Loop head: main::@2 tails: main::@2 blocks: main::@2
Found 1 loops in scope [line]
Loop head: line::@2 tails: line::@8 blocks: line::@8 line::@2
Loop head: line::@3 tails: line::@8 blocks: line::@8 line::@3
Found 0 loops in scope [plot]
Loop head: main::@1 tails: main::@1 blocks: main::@1 depth: 1
Loop head: main::@2 tails: main::@2 blocks: main::@2 depth: 1
Loop head: line::@2 tails: line::@8 blocks: line::@8 line::@2 depth: 2
Loop head: line::@3 tails: line::@8 blocks: line::@8 line::@3 depth: 2
VARIABLE REGISTER WEIGHTS
@ -529,25 +519,24 @@ VARIABLE REGISTER WEIGHTS
(byte) plot::idx
(byte) plot::idx#0 3.0
(byte) plot::x
(byte) plot::x#1 202.0
(byte) plot::x#2 103.0
(byte) plot::x#1 103.0
(byte*) plots
Initial phi equivalence classes
[ main::i#2 main::i#1 ]
[ line::x#2 line::x#1 ]
[ plot::x#2 plot::x#1 ]
Added variable plot::x#1 to zero page equivalence class [ plot::x#1 ]
Added variable plot::idx#0 to zero page equivalence class [ plot::idx#0 ]
Added variable plot::$0 to zero page equivalence class [ plot::$0 ]
Complete equivalence classes
[ main::i#2 main::i#1 ]
[ line::x#2 line::x#1 ]
[ plot::x#2 plot::x#1 ]
[ plot::x#1 ]
[ plot::idx#0 ]
[ plot::$0 ]
Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
Allocated zp ZP_BYTE:3 [ line::x#2 line::x#1 ]
Allocated zp ZP_BYTE:4 [ plot::x#2 plot::x#1 ]
Allocated zp ZP_BYTE:4 [ plot::x#1 ]
Allocated zp ZP_BYTE:5 [ plot::idx#0 ]
Allocated zp ZP_BYTE:6 [ plot::$0 ]
@ -611,122 +600,99 @@ main: {
//SEG20 main::@2
b2:
//SEG21 [11] call line param-assignment [ ] ( main:2 [ ] )
//SEG22 [12] phi from main::@2 to line [phi:main::@2->line]
line_from_b2:
jsr line
jmp b2_from_b2
}
//SEG22 line
//SEG23 line
line: {
.const x0 = 0
.const x1 = $a
.label x = 3
//SEG23 [12] if((const byte) line::x0#0>=(const byte) line::x1#0) goto line::@1 [ ] ( main:2::line:11 [ ] ) -- vbuc1_ge_vbuc2_then_la1
lda #x0
cmp #x1
bcs b1_from_line
//SEG24 [13] phi from line to line::@2 [phi:line->line::@2]
b2_from_line:
//SEG25 [13] phi (byte) line::x#2 = (const byte) line::x0#0 [phi:line->line::@2#0] -- vbuz1=vbuc1
//SEG24 [13] phi from line to line::@3 [phi:line->line::@3]
b3_from_line:
//SEG25 [13] phi (byte) line::x#2 = (const byte) line::x0#0 [phi:line->line::@3#0] -- vbuz1=vbuc1
lda #x0
sta x
jmp b2
//SEG26 [13] phi from line::@8 to line::@2 [phi:line::@8->line::@2]
b2_from_b8:
//SEG27 [13] phi (byte) line::x#2 = (byte) line::x#1 [phi:line::@8->line::@2#0] -- register_copy
jmp b2
//SEG28 line::@2
b2:
jmp b3
//SEG26 [13] phi from line::@8 to line::@3 [phi:line::@8->line::@3]
b3_from_b8:
//SEG27 [13] phi (byte) line::x#2 = (byte) line::x#1 [phi:line::@8->line::@3#0] -- register_copy
jmp b3
//SEG28 line::@3
b3:
//SEG29 [14] (byte) plot::x#1 ← (byte) line::x#2 [ line::x#2 plot::x#1 ] ( main:2::line:11 [ line::x#2 plot::x#1 ] ) -- vbuz1=vbuz2
lda x
sta plot.x
//SEG30 [15] call plot param-assignment [ line::x#2 ] ( main:2::line:11 [ line::x#2 ] )
//SEG31 [21] phi from line::@2 to plot [phi:line::@2->plot]
plot_from_b2:
//SEG32 [21] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@2->plot#0] -- register_copy
jsr plot
jmp b8
//SEG33 line::@8
//SEG31 line::@8
b8:
//SEG34 [16] (byte) line::x#1 ← ++ (byte) line::x#2 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] ) -- vbuz1=_inc_vbuz1
//SEG32 [16] (byte) line::x#1 ← ++ (byte) line::x#2 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] ) -- vbuz1=_inc_vbuz1
inc x
//SEG35 [17] if((byte) line::x#1<=(const byte) line::x1#0) goto line::@2 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] ) -- vbuz1_le_vbuc1_then_la1
//SEG33 [17] if((byte) line::x#1<=(const byte) line::x1#0) goto line::@3 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] ) -- vbuz1_le_vbuc1_then_la1
lda #x1
cmp x
bcs b2_from_b8
bcs b3_from_b8
jmp breturn
//SEG36 line::@return
//SEG34 line::@return
breturn:
//SEG37 [18] return [ ] ( main:2::line:11 [ ] )
//SEG35 [18] return [ ] ( main:2::line:11 [ ] )
rts
//SEG38 [19] phi from line to line::@1 [phi:line->line::@1]
b1_from_line:
jmp b1
//SEG39 line::@1
b1:
//SEG40 [20] call plot param-assignment [ ] ( main:2::line:11 [ ] )
//SEG41 [21] phi from line::@1 to plot [phi:line::@1->plot]
plot_from_b1:
//SEG42 [21] phi (byte) plot::x#2 = (const byte) line::x0#0 [phi:line::@1->plot#0] -- vbuz1=vbuc1
lda #x0
sta plot.x
jsr plot
jmp breturn
}
//SEG43 plot
//SEG36 plot
plot: {
.label _0 = 6
.label x = 4
.label idx = 5
//SEG44 [22] (byte) plot::idx#0 ← *((const byte*) plots#0 + (byte) plot::x#2) [ plot::idx#0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 ] main:2::line:11::plot:20 [ plot::idx#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2
//SEG37 [19] (byte) plot::idx#0 ← *((const byte*) plots#0 + (byte) plot::x#1) [ plot::idx#0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2
ldy x
lda plots,y
sta idx
//SEG45 [23] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] main:2::line:11::plot:20 [ plot::idx#0 plot::$0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2_plus_1
//SEG38 [20] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] ) -- vbuz1=pbuc1_derefidx_vbuz2_plus_1
ldy idx
lda SCREEN,y
clc
adc #1
sta _0
//SEG46 [24] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte/signed word/word/dword/signed dword~) plot::$0 [ ] ( main:2::line:11::plot:15 [ line::x#2 ] main:2::line:11::plot:20 [ ] ) -- pbuc1_derefidx_vbuz1=vbuz2
//SEG39 [21] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte/signed word/word/dword/signed dword~) plot::$0 [ ] ( main:2::line:11::plot:15 [ line::x#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2
lda _0
ldy idx
sta SCREEN,y
jmp breturn
//SEG47 plot::@return
//SEG40 plot::@return
breturn:
//SEG48 [25] return [ ] ( main:2::line:11::plot:15 [ line::x#2 ] main:2::line:11::plot:20 [ ] )
//SEG41 [22] return [ ] ( main:2::line:11::plot:15 [ line::x#2 ] )
rts
}
REGISTER UPLIFT POTENTIAL REGISTERS
Statement [7] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
Statement [12] if((const byte) line::x0#0>=(const byte) line::x1#0) goto line::@1 [ ] ( main:2::line:11 [ ] ) always clobbers reg byte a
Statement [23] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] main:2::line:11::plot:20 [ plot::idx#0 plot::$0 ] ) always clobbers reg byte a
Statement [20] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] ) always clobbers reg byte a
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ line::x#2 line::x#1 ]
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ plot::idx#0 ]
Statement [6] *((const byte*) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
Statement [7] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::i#2 ] ( main:2 [ main::i#2 ] ) always clobbers reg byte a
Statement [12] if((const byte) line::x0#0>=(const byte) line::x1#0) goto line::@1 [ ] ( main:2::line:11 [ ] ) always clobbers reg byte a
Statement [23] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] main:2::line:11::plot:20 [ plot::idx#0 plot::$0 ] ) always clobbers reg byte a
Statement [20] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] ) always clobbers reg byte a
Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y ,
Potential registers zp ZP_BYTE:3 [ line::x#2 line::x#1 ] : zp ZP_BYTE:3 , reg byte x , reg byte y ,
Potential registers zp ZP_BYTE:4 [ plot::x#2 plot::x#1 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y ,
Potential registers zp ZP_BYTE:4 [ plot::x#1 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y ,
Potential registers zp ZP_BYTE:5 [ plot::idx#0 ] : zp ZP_BYTE:5 , reg byte x , reg byte y ,
Potential registers zp ZP_BYTE:6 [ plot::$0 ] : zp ZP_BYTE:6 , reg byte a , reg byte x , reg byte y ,
REGISTER UPLIFT SCOPES
Uplift Scope [plot] 305: zp ZP_BYTE:4 [ plot::x#2 plot::x#1 ] 4: zp ZP_BYTE:6 [ plot::$0 ] 3: zp ZP_BYTE:5 [ plot::idx#0 ]
Uplift Scope [line] 252.5: zp ZP_BYTE:3 [ line::x#2 line::x#1 ]
Uplift Scope [plot] 103: zp ZP_BYTE:4 [ plot::x#1 ] 4: zp ZP_BYTE:6 [ plot::$0 ] 3: zp ZP_BYTE:5 [ plot::idx#0 ]
Uplift Scope [main] 34.83: zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
Uplift Scope []
Uplifting [plot] best 3578 combination reg byte x [ plot::x#2 plot::x#1 ] reg byte a [ plot::$0 ] reg byte y [ plot::idx#0 ]
Uplifting [line] best 3578 combination zp ZP_BYTE:3 [ line::x#2 line::x#1 ]
Uplifting [main] best 3428 combination reg byte x [ main::i#2 main::i#1 ]
Uplifting [] best 3428 combination
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ line::x#2 line::x#1 ]
Uplifting [line] best 3428 combination zp ZP_BYTE:3 [ line::x#2 line::x#1 ]
Allocated (was zp ZP_BYTE:3) zp ZP_BYTE:2 [ line::x#2 line::x#1 ]
Uplifting [line] best 3736 combination reg byte x [ line::x#2 line::x#1 ]
Uplifting [plot] best 3418 combination reg byte x [ plot::x#1 ] reg byte a [ plot::$0 ] reg byte y [ plot::idx#0 ]
Uplifting [main] best 3268 combination reg byte x [ main::i#2 main::i#1 ]
Uplifting [] best 3268 combination
ASSEMBLER BEFORE OPTIMIZATION
//SEG0 Basic Upstart
@ -783,78 +749,59 @@ main: {
//SEG20 main::@2
b2:
//SEG21 [11] call line param-assignment [ ] ( main:2 [ ] )
//SEG22 [12] phi from main::@2 to line [phi:main::@2->line]
line_from_b2:
jsr line
jmp b2_from_b2
}
//SEG22 line
//SEG23 line
line: {
.const x0 = 0
.const x1 = $a
.label x = 2
//SEG23 [12] if((const byte) line::x0#0>=(const byte) line::x1#0) goto line::@1 [ ] ( main:2::line:11 [ ] ) -- vbuc1_ge_vbuc2_then_la1
lda #x0
cmp #x1
bcs b1_from_line
//SEG24 [13] phi from line to line::@2 [phi:line->line::@2]
b2_from_line:
//SEG25 [13] phi (byte) line::x#2 = (const byte) line::x0#0 [phi:line->line::@2#0] -- vbuz1=vbuc1
lda #x0
sta x
jmp b2
//SEG26 [13] phi from line::@8 to line::@2 [phi:line::@8->line::@2]
b2_from_b8:
//SEG27 [13] phi (byte) line::x#2 = (byte) line::x#1 [phi:line::@8->line::@2#0] -- register_copy
jmp b2
//SEG28 line::@2
b2:
//SEG29 [14] (byte) plot::x#1 ← (byte) line::x#2 [ line::x#2 plot::x#1 ] ( main:2::line:11 [ line::x#2 plot::x#1 ] ) -- vbuxx=vbuz1
ldx x
//SEG24 [13] phi from line to line::@3 [phi:line->line::@3]
b3_from_line:
//SEG25 [13] phi (byte) line::x#2 = (const byte) line::x0#0 [phi:line->line::@3#0] -- vbuxx=vbuc1
ldx #x0
jmp b3
//SEG26 [13] phi from line::@8 to line::@3 [phi:line::@8->line::@3]
b3_from_b8:
//SEG27 [13] phi (byte) line::x#2 = (byte) line::x#1 [phi:line::@8->line::@3#0] -- register_copy
jmp b3
//SEG28 line::@3
b3:
//SEG29 [14] (byte) plot::x#1 ← (byte) line::x#2 [ line::x#2 plot::x#1 ] ( main:2::line:11 [ line::x#2 plot::x#1 ] )
// (byte) plot::x#1 = (byte) line::x#2 // register copy reg byte x
//SEG30 [15] call plot param-assignment [ line::x#2 ] ( main:2::line:11 [ line::x#2 ] )
//SEG31 [21] phi from line::@2 to plot [phi:line::@2->plot]
plot_from_b2:
//SEG32 [21] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@2->plot#0] -- register_copy
jsr plot
jmp b8
//SEG33 line::@8
//SEG31 line::@8
b8:
//SEG34 [16] (byte) line::x#1 ← ++ (byte) line::x#2 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] ) -- vbuz1=_inc_vbuz1
inc x
//SEG35 [17] if((byte) line::x#1<=(const byte) line::x1#0) goto line::@2 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] ) -- vbuz1_le_vbuc1_then_la1
lda #x1
cmp x
bcs b2_from_b8
//SEG32 [16] (byte) line::x#1 ← ++ (byte) line::x#2 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] ) -- vbuxx=_inc_vbuxx
inx
//SEG33 [17] if((byte) line::x#1<=(const byte) line::x1#0) goto line::@3 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] ) -- vbuxx_le_vbuc1_then_la1
cpx #x1
bcc b3_from_b8
beq b3_from_b8
jmp breturn
//SEG36 line::@return
//SEG34 line::@return
breturn:
//SEG37 [18] return [ ] ( main:2::line:11 [ ] )
//SEG35 [18] return [ ] ( main:2::line:11 [ ] )
rts
//SEG38 [19] phi from line to line::@1 [phi:line->line::@1]
b1_from_line:
jmp b1
//SEG39 line::@1
b1:
//SEG40 [20] call plot param-assignment [ ] ( main:2::line:11 [ ] )
//SEG41 [21] phi from line::@1 to plot [phi:line::@1->plot]
plot_from_b1:
//SEG42 [21] phi (byte) plot::x#2 = (const byte) line::x0#0 [phi:line::@1->plot#0] -- vbuxx=vbuc1
ldx #x0
jsr plot
jmp breturn
}
//SEG43 plot
//SEG36 plot
plot: {
//SEG44 [22] (byte) plot::idx#0 ← *((const byte*) plots#0 + (byte) plot::x#2) [ plot::idx#0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 ] main:2::line:11::plot:20 [ plot::idx#0 ] ) -- vbuyy=pbuc1_derefidx_vbuxx
//SEG37 [19] (byte) plot::idx#0 ← *((const byte*) plots#0 + (byte) plot::x#1) [ plot::idx#0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 ] ) -- vbuyy=pbuc1_derefidx_vbuxx
ldy plots,x
//SEG45 [23] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] main:2::line:11::plot:20 [ plot::idx#0 plot::$0 ] ) -- vbuaa=pbuc1_derefidx_vbuyy_plus_1
//SEG38 [20] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] ) -- vbuaa=pbuc1_derefidx_vbuyy_plus_1
lda SCREEN,y
clc
adc #1
//SEG46 [24] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte/signed word/word/dword/signed dword~) plot::$0 [ ] ( main:2::line:11::plot:15 [ line::x#2 ] main:2::line:11::plot:20 [ ] ) -- pbuc1_derefidx_vbuyy=vbuaa
//SEG39 [21] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte/signed word/word/dword/signed dword~) plot::$0 [ ] ( main:2::line:11::plot:15 [ line::x#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa
sta SCREEN,y
jmp breturn
//SEG47 plot::@return
//SEG40 plot::@return
breturn:
//SEG48 [25] return [ ] ( main:2::line:11::plot:15 [ line::x#2 ] main:2::line:11::plot:20 [ ] )
//SEG41 [22] return [ ] ( main:2::line:11::plot:15 [ line::x#2 ] )
rts
}
@ -863,16 +810,15 @@ Removing instruction jmp b3
Removing instruction jmp bend
Removing instruction jmp b1
Removing instruction jmp b2
Removing instruction jmp b2
Removing instruction jmp b3
Removing instruction jmp b8
Removing instruction jmp breturn
Removing instruction jmp b1
Removing instruction jmp breturn
Succesful ASM optimization Pass5NextJumpElimination
Replacing label b1_from_b1 with b1
Replacing label b2_from_b2 with b2
Replacing label b1_from_line with b1
Replacing label b2_from_b8 with b2
Replacing label b3_from_b8 with b3
Replacing label b3_from_b8 with b3
Removing instruction bbegin:
Removing instruction b3_from_bbegin:
Removing instruction main_from_b3:
@ -880,23 +826,20 @@ Removing instruction bend_from_b3:
Removing instruction b1_from_b1:
Removing instruction b2_from_b1:
Removing instruction b2_from_b2:
Removing instruction b2_from_b8:
Removing instruction b1_from_line:
Removing instruction plot_from_b1:
Removing instruction line_from_b2:
Removing instruction b3_from_b8:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction b3:
Removing instruction bend:
Removing instruction b1_from_main:
Removing instruction b2_from_line:
Removing instruction plot_from_b2:
Removing instruction b3_from_line:
Removing instruction b8:
Removing instruction breturn:
Removing instruction breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
Removing instruction jmp b1
Removing instruction jmp b2
Removing instruction jmp b3
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction lda #x0
Succesful ASM optimization Pass5UnnecesaryLoadElimination
FINAL SYMBOL TABLE
(label) @3
@ -905,13 +848,12 @@ FINAL SYMBOL TABLE
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
(void()) line((byte) line::x0 , (byte) line::x1)
(label) line::@1
(label) line::@2
(label) line::@3
(label) line::@8
(label) line::@return
(byte) line::x
(byte) line::x#1 x zp ZP_BYTE:2 151.5
(byte) line::x#2 x zp ZP_BYTE:2 101.0
(byte) line::x#1 reg byte x 151.5
(byte) line::x#2 reg byte x 101.0
(byte) line::x0
(const byte) line::x0#0 x0 = (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) line::x1
@ -928,20 +870,19 @@ FINAL SYMBOL TABLE
(byte) plot::idx
(byte) plot::idx#0 reg byte y 3.0
(byte) plot::x
(byte) plot::x#1 reg byte x 202.0
(byte) plot::x#2 reg byte x 103.0
(byte) plot::x#1 reg byte x 103.0
(byte*) plots
(const byte*) plots#0 plots = ((byte*))(word/signed word/dword/signed dword) 4096
reg byte x [ main::i#2 main::i#1 ]
zp ZP_BYTE:2 [ line::x#2 line::x#1 ]
reg byte x [ plot::x#2 plot::x#1 ]
reg byte x [ line::x#2 line::x#1 ]
reg byte x [ plot::x#1 ]
reg byte y [ plot::idx#0 ]
reg byte a [ plot::$0 ]
FINAL ASSEMBLER
Score: 2223
Score: 1969
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -982,64 +923,48 @@ main: {
//SEG20 main::@2
b2:
//SEG21 [11] call line param-assignment [ ] ( main:2 [ ] )
//SEG22 [12] phi from main::@2 to line [phi:main::@2->line]
jsr line
jmp b2
}
//SEG22 line
//SEG23 line
line: {
.const x0 = 0
.const x1 = $a
.label x = 2
//SEG23 [12] if((const byte) line::x0#0>=(const byte) line::x1#0) goto line::@1 [ ] ( main:2::line:11 [ ] ) -- vbuc1_ge_vbuc2_then_la1
lda #x0
cmp #x1
bcs b1
//SEG24 [13] phi from line to line::@2 [phi:line->line::@2]
//SEG25 [13] phi (byte) line::x#2 = (const byte) line::x0#0 [phi:line->line::@2#0] -- vbuz1=vbuc1
sta x
//SEG26 [13] phi from line::@8 to line::@2 [phi:line::@8->line::@2]
//SEG27 [13] phi (byte) line::x#2 = (byte) line::x#1 [phi:line::@8->line::@2#0] -- register_copy
//SEG28 line::@2
b2:
//SEG29 [14] (byte) plot::x#1 ← (byte) line::x#2 [ line::x#2 plot::x#1 ] ( main:2::line:11 [ line::x#2 plot::x#1 ] ) -- vbuxx=vbuz1
ldx x
//SEG30 [15] call plot param-assignment [ line::x#2 ] ( main:2::line:11 [ line::x#2 ] )
//SEG31 [21] phi from line::@2 to plot [phi:line::@2->plot]
//SEG32 [21] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@2->plot#0] -- register_copy
jsr plot
//SEG33 line::@8
//SEG34 [16] (byte) line::x#1 ← ++ (byte) line::x#2 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] ) -- vbuz1=_inc_vbuz1
inc x
//SEG35 [17] if((byte) line::x#1<=(const byte) line::x1#0) goto line::@2 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] ) -- vbuz1_le_vbuc1_then_la1
lda #x1
cmp x
bcs b2
//SEG36 line::@return
breturn:
//SEG37 [18] return [ ] ( main:2::line:11 [ ] )
rts
//SEG38 [19] phi from line to line::@1 [phi:line->line::@1]
//SEG39 line::@1
b1:
//SEG40 [20] call plot param-assignment [ ] ( main:2::line:11 [ ] )
//SEG41 [21] phi from line::@1 to plot [phi:line::@1->plot]
//SEG42 [21] phi (byte) plot::x#2 = (const byte) line::x0#0 [phi:line::@1->plot#0] -- vbuxx=vbuc1
//SEG24 [13] phi from line to line::@3 [phi:line->line::@3]
//SEG25 [13] phi (byte) line::x#2 = (const byte) line::x0#0 [phi:line->line::@3#0] -- vbuxx=vbuc1
ldx #x0
//SEG26 [13] phi from line::@8 to line::@3 [phi:line::@8->line::@3]
//SEG27 [13] phi (byte) line::x#2 = (byte) line::x#1 [phi:line::@8->line::@3#0] -- register_copy
//SEG28 line::@3
b3:
//SEG29 [14] (byte) plot::x#1 ← (byte) line::x#2 [ line::x#2 plot::x#1 ] ( main:2::line:11 [ line::x#2 plot::x#1 ] )
// (byte) plot::x#1 = (byte) line::x#2 // register copy reg byte x
//SEG30 [15] call plot param-assignment [ line::x#2 ] ( main:2::line:11 [ line::x#2 ] )
jsr plot
jmp breturn
//SEG31 line::@8
//SEG32 [16] (byte) line::x#1 ← ++ (byte) line::x#2 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] ) -- vbuxx=_inc_vbuxx
inx
//SEG33 [17] if((byte) line::x#1<=(const byte) line::x1#0) goto line::@3 [ line::x#1 ] ( main:2::line:11 [ line::x#1 ] ) -- vbuxx_le_vbuc1_then_la1
cpx #x1
bcc b3
beq b3
//SEG34 line::@return
//SEG35 [18] return [ ] ( main:2::line:11 [ ] )
rts
}
//SEG43 plot
//SEG36 plot
plot: {
//SEG44 [22] (byte) plot::idx#0 ← *((const byte*) plots#0 + (byte) plot::x#2) [ plot::idx#0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 ] main:2::line:11::plot:20 [ plot::idx#0 ] ) -- vbuyy=pbuc1_derefidx_vbuxx
//SEG37 [19] (byte) plot::idx#0 ← *((const byte*) plots#0 + (byte) plot::x#1) [ plot::idx#0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 ] ) -- vbuyy=pbuc1_derefidx_vbuxx
ldy plots,x
//SEG45 [23] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] main:2::line:11::plot:20 [ plot::idx#0 plot::$0 ] ) -- vbuaa=pbuc1_derefidx_vbuyy_plus_1
//SEG38 [20] (byte/signed word/word/dword/signed dword~) plot::$0 ← *((const byte*) SCREEN#0 + (byte) plot::idx#0) + (byte/signed byte/word/signed word/dword/signed dword) 1 [ plot::idx#0 plot::$0 ] ( main:2::line:11::plot:15 [ line::x#2 plot::idx#0 plot::$0 ] ) -- vbuaa=pbuc1_derefidx_vbuyy_plus_1
lda SCREEN,y
clc
adc #1
//SEG46 [24] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte/signed word/word/dword/signed dword~) plot::$0 [ ] ( main:2::line:11::plot:15 [ line::x#2 ] main:2::line:11::plot:20 [ ] ) -- pbuc1_derefidx_vbuyy=vbuaa
//SEG39 [21] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte/signed word/word/dword/signed dword~) plot::$0 [ ] ( main:2::line:11::plot:15 [ line::x#2 ] ) -- pbuc1_derefidx_vbuyy=vbuaa
sta SCREEN,y
//SEG47 plot::@return
//SEG48 [25] return [ ] ( main:2::line:11::plot:15 [ line::x#2 ] main:2::line:11::plot:20 [ ] )
//SEG40 plot::@return
//SEG41 [22] return [ ] ( main:2::line:11::plot:15 [ line::x#2 ] )
rts
}

@ -4,13 +4,12 @@
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
(void()) line((byte) line::x0 , (byte) line::x1)
(label) line::@1
(label) line::@2
(label) line::@3
(label) line::@8
(label) line::@return
(byte) line::x
(byte) line::x#1 x zp ZP_BYTE:2 151.5
(byte) line::x#2 x zp ZP_BYTE:2 101.0
(byte) line::x#1 reg byte x 151.5
(byte) line::x#2 reg byte x 101.0
(byte) line::x0
(const byte) line::x0#0 x0 = (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) line::x1
@ -27,13 +26,12 @@
(byte) plot::idx
(byte) plot::idx#0 reg byte y 3.0
(byte) plot::x
(byte) plot::x#1 reg byte x 202.0
(byte) plot::x#2 reg byte x 103.0
(byte) plot::x#1 reg byte x 103.0
(byte*) plots
(const byte*) plots#0 plots = ((byte*))(word/signed word/dword/signed dword) 4096
reg byte x [ main::i#2 main::i#1 ]
zp ZP_BYTE:2 [ line::x#2 line::x#1 ]
reg byte x [ plot::x#2 plot::x#1 ]
reg byte x [ line::x#2 line::x#1 ]
reg byte x [ plot::x#1 ]
reg byte y [ plot::idx#0 ]
reg byte a [ plot::$0 ]

@ -82,9 +82,7 @@ assert_sbyte: {
sta print_str.str+1
jsr print_str
cpx c
beq b1
lda #RED
sta BGCOL
bne b1
lda #<str2
sta print_str.str
lda #>str2
@ -94,6 +92,8 @@ assert_sbyte: {
jsr print_ln
rts
b1:
lda #RED
sta BGCOL
lda #<str1
sta print_str.str
lda #>str1
@ -101,8 +101,8 @@ assert_sbyte: {
jsr print_str
jmp b2
str: .text " @"
str1: .text "ok@"
str2: .text "fail!@"
str1: .text "fail!@"
str2: .text "ok@"
}
print_str: {
.label str = 2
@ -204,9 +204,7 @@ assert_byte: {
sta print_str.str+1
jsr print_str
cpx c
beq b1
lda #RED
sta BGCOL
bne b1
lda #<str2
sta print_str.str
lda #>str2
@ -216,6 +214,8 @@ assert_byte: {
jsr print_ln
rts
b1:
lda #RED
sta BGCOL
lda #<str1
sta print_str.str
lda #>str1
@ -223,8 +223,8 @@ assert_byte: {
jsr print_str
jmp b2
str: .text " @"
str1: .text "ok@"
str2: .text "fail!@"
str1: .text "fail!@"
str2: .text "ok@"
}
print_cls: {
.label sc = 2

@ -58,10 +58,10 @@ assert_sbyte::@5: scope:[assert_sbyte] from assert_sbyte
[27] call print_str param-assignment [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 ] )
to:assert_sbyte::@6
assert_sbyte::@6: scope:[assert_sbyte] from assert_sbyte::@5
[28] if((signed byte) assert_sbyte::b#5==(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
[28] if((signed byte) assert_sbyte::b#5!=(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
to:assert_sbyte::@3
assert_sbyte::@3: scope:[assert_sbyte] from assert_sbyte::@6
[29] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
[29] phi() [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
[30] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
to:assert_sbyte::@2
assert_sbyte::@2: scope:[assert_sbyte] from assert_sbyte::@1 assert_sbyte::@3
@ -72,7 +72,7 @@ assert_sbyte::@return: scope:[assert_sbyte] from assert_sbyte::@2
[33] return [ print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 ] )
to:@return
assert_sbyte::@1: scope:[assert_sbyte] from assert_sbyte::@6
[34] phi() [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
[34] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
[35] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
to:assert_sbyte::@2
print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 assert_byte::@5 assert_sbyte assert_sbyte::@1 assert_sbyte::@3 assert_sbyte::@5
@ -132,10 +132,10 @@ assert_byte::@5: scope:[assert_byte] from assert_byte
[59] call print_str param-assignment [ print_char_cursor#2 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] )
to:assert_byte::@6
assert_byte::@6: scope:[assert_byte] from assert_byte::@5
[60] if((byte) assert_byte::b#3==(byte) assert_byte::c#3) goto assert_byte::@1 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
[60] if((byte) assert_byte::b#3!=(byte) assert_byte::c#3) goto assert_byte::@1 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
to:assert_byte::@3
assert_byte::@3: scope:[assert_byte] from assert_byte::@6
[61] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
[61] phi() [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
[62] call print_str param-assignment [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
to:assert_byte::@2
assert_byte::@2: scope:[assert_byte] from assert_byte::@1 assert_byte::@3
@ -146,7 +146,7 @@ assert_byte::@return: scope:[assert_byte] from assert_byte::@2
[65] return [ print_line_cursor#1 ] ( main:2::test_bytes:7::assert_byte:49 [ print_line_cursor#1 ] main:2::test_bytes:7::assert_byte:51 [ print_line_cursor#1 ] main:2::test_bytes:7::assert_byte:53 [ print_line_cursor#1 ] )
to:@return
assert_byte::@1: scope:[assert_byte] from assert_byte::@6
[66] phi() [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
[66] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
[67] call print_str param-assignment [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
to:assert_byte::@2
print_cls: scope:[print_cls] from main

@ -376,15 +376,14 @@ proc (void()) assert_byte((byte*) assert_byte::msg , (byte) assert_byte::b , (by
(void~) assert_byte::$0 ← call print_str (byte*) assert_byte::msg
(void~) assert_byte::$1 ← call print_str (string) " @"
(boolean~) assert_byte::$2 ← (byte) assert_byte::b != (byte) assert_byte::c
(boolean~) assert_byte::$3 ← ! (boolean~) assert_byte::$2
if((boolean~) assert_byte::$3) goto assert_byte::@1
*((byte*) BGCOL) ← (byte) RED
(void~) assert_byte::$4 ← call print_str (string) "fail!@"
if((boolean~) assert_byte::$2) goto assert_byte::@1
(void~) assert_byte::$3 ← call print_str (string) "ok@"
goto assert_byte::@2
assert_byte::@1:
(void~) assert_byte::$5 ← call print_str (string) "ok@"
*((byte*) BGCOL) ← (byte) RED
(void~) assert_byte::$4 ← call print_str (string) "fail!@"
assert_byte::@2:
(void~) assert_byte::$6 ← call print_ln
(void~) assert_byte::$5 ← call print_ln
assert_byte::@return:
return
endproc // assert_byte()
@ -413,15 +412,14 @@ proc (void()) assert_sbyte((byte*) assert_sbyte::msg , (signed byte) assert_sbyt
(void~) assert_sbyte::$0 ← call print_str (byte*) assert_sbyte::msg
(void~) assert_sbyte::$1 ← call print_str (string) " @"
(boolean~) assert_sbyte::$2 ← (signed byte) assert_sbyte::b != (signed byte) assert_sbyte::c
(boolean~) assert_sbyte::$3 ← ! (boolean~) assert_sbyte::$2
if((boolean~) assert_sbyte::$3) goto assert_sbyte::@1
*((byte*) BGCOL) ← (byte) RED
(void~) assert_sbyte::$4 ← call print_str (string) "fail!@"
if((boolean~) assert_sbyte::$2) goto assert_sbyte::@1
(void~) assert_sbyte::$3 ← call print_str (string) "ok@"
goto assert_sbyte::@2
assert_sbyte::@1:
(void~) assert_sbyte::$5 ← call print_str (string) "ok@"
*((byte*) BGCOL) ← (byte) RED
(void~) assert_sbyte::$4 ← call print_str (string) "fail!@"
assert_sbyte::@2:
(void~) assert_sbyte::$6 ← call print_ln
(void~) assert_sbyte::$5 ← call print_ln
assert_sbyte::@return:
return
endproc // assert_sbyte()
@ -435,10 +433,9 @@ SYMBOLS
(void~) assert_byte::$0
(void~) assert_byte::$1
(boolean~) assert_byte::$2
(boolean~) assert_byte::$3
(void~) assert_byte::$3
(void~) assert_byte::$4
(void~) assert_byte::$5
(void~) assert_byte::$6
(label) assert_byte::@1
(label) assert_byte::@2
(label) assert_byte::@return
@ -449,10 +446,9 @@ SYMBOLS
(void~) assert_sbyte::$0
(void~) assert_sbyte::$1
(boolean~) assert_sbyte::$2
(boolean~) assert_sbyte::$3
(void~) assert_sbyte::$3
(void~) assert_sbyte::$4
(void~) assert_sbyte::$5
(void~) assert_sbyte::$6
(label) assert_sbyte::@1
(label) assert_sbyte::@2
(label) assert_sbyte::@return
@ -886,18 +882,17 @@ assert_byte: scope:[assert_byte] from
(void~) assert_byte::$0 ← call print_str (byte*) assert_byte::msg
(void~) assert_byte::$1 ← call print_str (string) " @"
(boolean~) assert_byte::$2 ← (byte) assert_byte::b != (byte) assert_byte::c
(boolean~) assert_byte::$3 ← ! (boolean~) assert_byte::$2
if((boolean~) assert_byte::$3) goto assert_byte::@1
if((boolean~) assert_byte::$2) goto assert_byte::@1
to:assert_byte::@3
assert_byte::@1: scope:[assert_byte] from assert_byte assert_byte::@4
(void~) assert_byte::$5 ← call print_str (string) "ok@"
to:assert_byte::@2
assert_byte::@3: scope:[assert_byte] from assert_byte
*((byte*) BGCOL) ← (byte) RED
(void~) assert_byte::$4 ← call print_str (string) "fail!@"
to:assert_byte::@2
assert_byte::@3: scope:[assert_byte] from assert_byte
(void~) assert_byte::$3 ← call print_str (string) "ok@"
to:assert_byte::@2
assert_byte::@2: scope:[assert_byte] from assert_byte::@1 assert_byte::@3
(void~) assert_byte::$6 ← call print_ln
(void~) assert_byte::$5 ← call print_ln
to:assert_byte::@return
assert_byte::@4: scope:[assert_byte] from
to:assert_byte::@1
@ -934,18 +929,17 @@ assert_sbyte: scope:[assert_sbyte] from
(void~) assert_sbyte::$0 ← call print_str (byte*) assert_sbyte::msg
(void~) assert_sbyte::$1 ← call print_str (string) " @"
(boolean~) assert_sbyte::$2 ← (signed byte) assert_sbyte::b != (signed byte) assert_sbyte::c
(boolean~) assert_sbyte::$3 ← ! (boolean~) assert_sbyte::$2
if((boolean~) assert_sbyte::$3) goto assert_sbyte::@1
if((boolean~) assert_sbyte::$2) goto assert_sbyte::@1
to:assert_sbyte::@3
assert_sbyte::@1: scope:[assert_sbyte] from assert_sbyte assert_sbyte::@4
(void~) assert_sbyte::$5 ← call print_str (string) "ok@"
to:assert_sbyte::@2
assert_sbyte::@3: scope:[assert_sbyte] from assert_sbyte
*((byte*) BGCOL) ← (byte) RED
(void~) assert_sbyte::$4 ← call print_str (string) "fail!@"
to:assert_sbyte::@2
assert_sbyte::@3: scope:[assert_sbyte] from assert_sbyte
(void~) assert_sbyte::$3 ← call print_str (string) "ok@"
to:assert_sbyte::@2
assert_sbyte::@2: scope:[assert_sbyte] from assert_sbyte::@1 assert_sbyte::@3
(void~) assert_sbyte::$6 ← call print_ln
(void~) assert_sbyte::$5 ← call print_ln
to:assert_sbyte::@return
assert_sbyte::@4: scope:[assert_sbyte] from
to:assert_sbyte::@1
@ -977,9 +971,9 @@ Eliminating unused variable - keeping the call (void~) test_bytes::$2
Eliminating unused variable - keeping the call (void~) test_bytes::$6
Eliminating unused variable - keeping the call (void~) assert_byte::$0
Eliminating unused variable - keeping the call (void~) assert_byte::$1
Eliminating unused variable - keeping the call (void~) assert_byte::$5
Eliminating unused variable - keeping the call (void~) assert_byte::$4
Eliminating unused variable - keeping the call (void~) assert_byte::$6
Eliminating unused variable - keeping the call (void~) assert_byte::$3
Eliminating unused variable - keeping the call (void~) assert_byte::$5
Eliminating unused variable - keeping the call (void~) test_sbytes::$0
Eliminating unused variable - keeping the call (void~) test_sbytes::$2
Eliminating unused variable - keeping the call (void~) test_sbytes::$5
@ -987,23 +981,23 @@ Eliminating unused variable - keeping the call (void~) test_sbytes::$7
Eliminating unused variable - keeping the call (void~) test_sbytes::$11
Eliminating unused variable - keeping the call (void~) assert_sbyte::$0
Eliminating unused variable - keeping the call (void~) assert_sbyte::$1
Eliminating unused variable - keeping the call (void~) assert_sbyte::$5
Eliminating unused variable - keeping the call (void~) assert_sbyte::$4
Eliminating unused variable - keeping the call (void~) assert_sbyte::$6
Eliminating unused variable - keeping the call (void~) assert_sbyte::$3
Eliminating unused variable - keeping the call (void~) assert_sbyte::$5
Creating constant string variable for inline (const string) test_bytes::msg "0=0@"
Creating constant string variable for inline (const string) test_bytes::msg1 "0+2=2@"
Creating constant string variable for inline (const string) test_bytes::msg2 "0+2-4=254@"
Creating constant string variable for inline (const string) assert_byte::str " @"
Creating constant string variable for inline (const string) assert_byte::str1 "ok@"
Creating constant string variable for inline (const string) assert_byte::str2 "fail!@"
Creating constant string variable for inline (const string) assert_byte::str1 "fail!@"
Creating constant string variable for inline (const string) assert_byte::str2 "ok@"
Creating constant string variable for inline (const string) test_sbytes::msg "0=0@"
Creating constant string variable for inline (const string) test_sbytes::msg1 "0+2=2@"
Creating constant string variable for inline (const string) test_sbytes::msg2 "0+2-4=-2@"
Creating constant string variable for inline (const string) test_sbytes::msg3 "-(0+2-4)=2@"
Creating constant string variable for inline (const string) test_sbytes::msg4 "-127-127=2@"
Creating constant string variable for inline (const string) assert_sbyte::str " @"
Creating constant string variable for inline (const string) assert_sbyte::str1 "ok@"
Creating constant string variable for inline (const string) assert_sbyte::str2 "fail!@"
Creating constant string variable for inline (const string) assert_sbyte::str1 "fail!@"
Creating constant string variable for inline (const string) assert_sbyte::str2 "ok@"
Removing empty block @1
Removing empty block @2
Removing empty block print_str::@4
@ -1245,12 +1239,12 @@ assert_byte::@6: scope:[assert_byte] from assert_byte::@5
(byte*) print_char_cursor#48 ← phi( assert_byte::@5/(byte*) print_char_cursor#2 )
(byte*) print_char_cursor#16 ← (byte*) print_char_cursor#48
(boolean~) assert_byte::$2 ← (byte) assert_byte::b#3 != (byte) assert_byte::c#3
(boolean~) assert_byte::$3 ← ! (boolean~) assert_byte::$2
if((boolean~) assert_byte::$3) goto assert_byte::@1
if((boolean~) assert_byte::$2) goto assert_byte::@1
to:assert_byte::@3
assert_byte::@1: scope:[assert_byte] from assert_byte::@6
(byte*) print_line_cursor#59 ← phi( assert_byte::@6/(byte*) print_line_cursor#63 )
(byte*) print_char_cursor#71 ← phi( assert_byte::@6/(byte*) print_char_cursor#16 )
*((byte*) BGCOL#0) ← (byte) RED#0
(byte*) print_str::str#3 ← (const string) assert_byte::str1
call print_str param-assignment
to:assert_byte::@7
@ -1262,7 +1256,6 @@ assert_byte::@7: scope:[assert_byte] from assert_byte::@1
assert_byte::@3: scope:[assert_byte] from assert_byte::@6
(byte*) print_line_cursor#60 ← phi( assert_byte::@6/(byte*) print_line_cursor#63 )
(byte*) print_char_cursor#72 ← phi( assert_byte::@6/(byte*) print_char_cursor#16 )
*((byte*) BGCOL#0) ← (byte) RED#0
(byte*) print_str::str#4 ← (const string) assert_byte::str2
call print_str param-assignment
to:assert_byte::@8
@ -1390,12 +1383,12 @@ assert_sbyte::@6: scope:[assert_sbyte] from assert_sbyte::@5
(byte*) print_char_cursor#60 ← phi( assert_sbyte::@5/(byte*) print_char_cursor#2 )
(byte*) print_char_cursor#28 ← (byte*) print_char_cursor#60
(boolean~) assert_sbyte::$2 ← (signed byte) assert_sbyte::b#5 != (signed byte) assert_sbyte::c#5
(boolean~) assert_sbyte::$3 ← ! (boolean~) assert_sbyte::$2
if((boolean~) assert_sbyte::$3) goto assert_sbyte::@1
if((boolean~) assert_sbyte::$2) goto assert_sbyte::@1
to:assert_sbyte::@3
assert_sbyte::@1: scope:[assert_sbyte] from assert_sbyte::@6
(byte*) print_line_cursor#61 ← phi( assert_sbyte::@6/(byte*) print_line_cursor#64 )
(byte*) print_char_cursor#76 ← phi( assert_sbyte::@6/(byte*) print_char_cursor#28 )
*((byte*) BGCOL#0) ← (byte) RED#0
(byte*) print_str::str#7 ← (const string) assert_sbyte::str1
call print_str param-assignment
to:assert_sbyte::@7
@ -1407,7 +1400,6 @@ assert_sbyte::@7: scope:[assert_sbyte] from assert_sbyte::@1
assert_sbyte::@3: scope:[assert_sbyte] from assert_sbyte::@6
(byte*) print_line_cursor#62 ← phi( assert_sbyte::@6/(byte*) print_line_cursor#64 )
(byte*) print_char_cursor#77 ← phi( assert_sbyte::@6/(byte*) print_char_cursor#28 )
*((byte*) BGCOL#0) ← (byte) RED#0
(byte*) print_str::str#8 ← (const string) assert_sbyte::str2
call print_str param-assignment
to:assert_sbyte::@8
@ -1462,7 +1454,6 @@ SYMBOL TABLE SSA
(byte) RED#0
(void()) assert_byte((byte*) assert_byte::msg , (byte) assert_byte::b , (byte) assert_byte::c)
(boolean~) assert_byte::$2
(boolean~) assert_byte::$3
(label) assert_byte::@1
(label) assert_byte::@2
(label) assert_byte::@3
@ -1492,11 +1483,10 @@ SYMBOL TABLE SSA
(byte*) assert_byte::msg#2
(byte*) assert_byte::msg#3
(const string) assert_byte::str = (string) " @"
(const string) assert_byte::str1 = (string) "ok@"
(const string) assert_byte::str2 = (string) "fail!@"
(const string) assert_byte::str1 = (string) "fail!@"
(const string) assert_byte::str2 = (string) "ok@"
(void()) assert_sbyte((byte*) assert_sbyte::msg , (signed byte) assert_sbyte::b , (signed byte) assert_sbyte::c)
(boolean~) assert_sbyte::$2
(boolean~) assert_sbyte::$3
(label) assert_sbyte::@1
(label) assert_sbyte::@2
(label) assert_sbyte::@3
@ -1532,8 +1522,8 @@ SYMBOL TABLE SSA
(byte*) assert_sbyte::msg#4
(byte*) assert_sbyte::msg#5
(const string) assert_sbyte::str = (string) " @"
(const string) assert_sbyte::str1 = (string) "ok@"
(const string) assert_sbyte::str2 = (string) "fail!@"
(const string) assert_sbyte::str1 = (string) "fail!@"
(const string) assert_sbyte::str2 = (string) "ok@"
(void()) main()
(label) main::@1
(label) main::@2
@ -1788,9 +1778,6 @@ SYMBOL TABLE SSA
(const string) test_sbytes::msg4 = (string) "-127-127=2@"
OPTIMIZING CONTROL FLOW GRAPH
Inversing boolean not (boolean~) assert_byte::$3 ← (byte) assert_byte::b#3 == (byte) assert_byte::c#3 from (boolean~) assert_byte::$2 ← (byte) assert_byte::b#3 != (byte) assert_byte::c#3
Inversing boolean not (boolean~) assert_sbyte::$3 ← (signed byte) assert_sbyte::b#5 == (signed byte) assert_sbyte::c#5 from (boolean~) assert_sbyte::$2 ← (signed byte) assert_sbyte::b#5 != (signed byte) assert_sbyte::c#5
Succesful SSA optimization Pass2UnaryNotSimplification
Not aliassing across scopes: print_str::str#11 print_str::str#1
Not aliassing across scopes: print_char_cursor#80 print_char_cursor#70
Not aliassing across scopes: print_line_cursor#47 print_line_cursor#50
@ -2118,8 +2105,8 @@ Succesful SSA optimization Pass2RedundantPhiElimination
Simple Condition (boolean~) print_str::$0 if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2
Simple Condition (boolean~) print_ln::$1 if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto print_ln::@1
Simple Condition (boolean~) print_cls::$1 if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1
Simple Condition (boolean~) assert_byte::$3 if((byte) assert_byte::b#3==(byte) assert_byte::c#3) goto assert_byte::@1
Simple Condition (boolean~) assert_sbyte::$3 if((signed byte) assert_sbyte::b#5==(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1
Simple Condition (boolean~) assert_byte::$2 if((byte) assert_byte::b#3!=(byte) assert_byte::c#3) goto assert_byte::@1
Simple Condition (boolean~) assert_sbyte::$2 if((signed byte) assert_sbyte::b#5!=(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1
Succesful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) print_line_cursor#0 = ((byte*))1024
Constant (const byte*) BGCOL#0 = ((byte*))53281
@ -2338,9 +2325,9 @@ CALL GRAPH
Calls in [] to main:2
Calls in [main] to print_cls:5 test_bytes:7 test_sbytes:9
Calls in [test_sbytes] to assert_sbyte:12 assert_sbyte:14 assert_sbyte:16 assert_sbyte:18 assert_sbyte:20
Calls in [assert_sbyte] to print_str:26 print_str:28 print_str:32 print_ln:34 print_str:37
Calls in [assert_sbyte] to print_str:26 print_str:28 print_str:31 print_ln:33 print_str:37
Calls in [test_bytes] to assert_byte:57 assert_byte:60 assert_byte:63
Calls in [assert_byte] to print_str:69 print_str:71 print_str:75 print_ln:77 print_str:80
Calls in [assert_byte] to print_str:69 print_str:71 print_str:74 print_ln:76 print_str:80
Propagating live ranges...
Propagating live ranges...
@ -2352,12 +2339,13 @@ Propagating live ranges...
Propagating live ranges...
Propagating live ranges...
Propagating live ranges...
Propagating live ranges...
Created 15 initial phi equivalence classes
Coalesced [24] print_str::str#13 ← print_str::str#5
Not coalescing [25] print_char_cursor#86 ← print_line_cursor#1
Coalesced [27] print_char_cursor#89 ← print_char_cursor#2
Coalesced (already) [31] print_char_cursor#88 ← print_char_cursor#2
Coalesced [33] print_line_cursor#70 ← print_line_cursor#1
Coalesced (already) [30] print_char_cursor#88 ← print_char_cursor#2
Coalesced [32] print_line_cursor#70 ← print_line_cursor#1
Coalesced (already) [36] print_char_cursor#87 ← print_char_cursor#2
Coalesced [39] print_str::str#14 ← print_str::str#11
Coalesced (already) [40] print_char_cursor#90 ← print_char_cursor#80
@ -2372,8 +2360,8 @@ Coalesced (already) [62] print_line_cursor#74 ← print_line_cursor#1
Coalesced [67] print_str::str#12 ← print_str::str#1
Coalesced [68] print_char_cursor#82 ← print_char_cursor#70
Coalesced (already) [70] print_char_cursor#85 ← print_char_cursor#2
Coalesced (already) [74] print_char_cursor#84 ← print_char_cursor#2
Coalesced (already) [76] print_line_cursor#69 ← print_line_cursor#50
Coalesced (already) [73] print_char_cursor#84 ← print_char_cursor#2
Coalesced (already) [75] print_line_cursor#69 ← print_line_cursor#50
Coalesced (already) [79] print_char_cursor#83 ← print_char_cursor#2
Coalesced [87] print_cls::sc#3 ← print_cls::sc#1
Coalesced down to 10 phi equivalence classes
@ -2391,12 +2379,12 @@ Adding NOP phi() at start of test_sbytes::@2
Adding NOP phi() at start of test_sbytes::@3
Adding NOP phi() at start of test_sbytes::@4
Adding NOP phi() at start of assert_sbyte::@5
Adding NOP phi() at start of assert_sbyte::@3
Adding NOP phi() at start of assert_sbyte::@2
Adding NOP phi() at start of assert_sbyte::@1
Adding NOP phi() at start of test_bytes
Adding NOP phi() at start of assert_byte::@5
Adding NOP phi() at start of assert_byte::@3
Adding NOP phi() at start of assert_byte::@2
Adding NOP phi() at start of assert_byte::@1
Adding NOP phi() at start of print_cls
Propagating live ranges...
Propagating live ranges...
@ -2468,10 +2456,10 @@ assert_sbyte::@5: scope:[assert_sbyte] from assert_sbyte
[27] call print_str param-assignment [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 ] )
to:assert_sbyte::@6
assert_sbyte::@6: scope:[assert_sbyte] from assert_sbyte::@5
[28] if((signed byte) assert_sbyte::b#5==(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
[28] if((signed byte) assert_sbyte::b#5!=(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
to:assert_sbyte::@3
assert_sbyte::@3: scope:[assert_sbyte] from assert_sbyte::@6
[29] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
[29] phi() [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
[30] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
to:assert_sbyte::@2
assert_sbyte::@2: scope:[assert_sbyte] from assert_sbyte::@1 assert_sbyte::@3
@ -2482,7 +2470,7 @@ assert_sbyte::@return: scope:[assert_sbyte] from assert_sbyte::@2
[33] return [ print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 ] )
to:@return
assert_sbyte::@1: scope:[assert_sbyte] from assert_sbyte::@6
[34] phi() [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
[34] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
[35] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
to:assert_sbyte::@2
print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 assert_byte::@5 assert_sbyte assert_sbyte::@1 assert_sbyte::@3 assert_sbyte::@5
@ -2542,10 +2530,10 @@ assert_byte::@5: scope:[assert_byte] from assert_byte
[59] call print_str param-assignment [ print_char_cursor#2 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] )
to:assert_byte::@6
assert_byte::@6: scope:[assert_byte] from assert_byte::@5
[60] if((byte) assert_byte::b#3==(byte) assert_byte::c#3) goto assert_byte::@1 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
[60] if((byte) assert_byte::b#3!=(byte) assert_byte::c#3) goto assert_byte::@1 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
to:assert_byte::@3
assert_byte::@3: scope:[assert_byte] from assert_byte::@6
[61] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
[61] phi() [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
[62] call print_str param-assignment [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
to:assert_byte::@2
assert_byte::@2: scope:[assert_byte] from assert_byte::@1 assert_byte::@3
@ -2556,7 +2544,7 @@ assert_byte::@return: scope:[assert_byte] from assert_byte::@2
[65] return [ print_line_cursor#1 ] ( main:2::test_bytes:7::assert_byte:49 [ print_line_cursor#1 ] main:2::test_bytes:7::assert_byte:51 [ print_line_cursor#1 ] main:2::test_bytes:7::assert_byte:53 [ print_line_cursor#1 ] )
to:@return
assert_byte::@1: scope:[assert_byte] from assert_byte::@6
[66] phi() [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
[66] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
[67] call print_str param-assignment [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
to:assert_byte::@2
print_cls: scope:[print_cls] from main
@ -2943,16 +2931,15 @@ assert_sbyte: {
jmp b6
//SEG71 assert_sbyte::@6
b6:
//SEG72 [28] if((signed byte) assert_sbyte::b#5==(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) -- vbsz1_eq_vbsz2_then_la1
//SEG72 [28] if((signed byte) assert_sbyte::b#5!=(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) -- vbsz1_neq_vbsz2_then_la1
lda b
cmp c
beq b1_from_b6
bne b1
//SEG73 [29] phi from assert_sbyte::@6 to assert_sbyte::@3 [phi:assert_sbyte::@6->assert_sbyte::@3]
b3_from_b6:
jmp b3
//SEG73 assert_sbyte::@3
//SEG74 assert_sbyte::@3
b3:
//SEG74 [29] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) -- _deref_pbuc1=vbuc2
lda #RED
sta BGCOL
//SEG75 [30] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
//SEG76 [36] phi from assert_sbyte::@3 to print_str [phi:assert_sbyte::@3->print_str]
print_str_from_b3:
@ -2979,11 +2966,11 @@ assert_sbyte: {
breturn:
//SEG85 [33] return [ print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 ] )
rts
//SEG86 [34] phi from assert_sbyte::@6 to assert_sbyte::@1 [phi:assert_sbyte::@6->assert_sbyte::@1]
b1_from_b6:
jmp b1
//SEG87 assert_sbyte::@1
//SEG86 assert_sbyte::@1
b1:
//SEG87 [34] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) -- _deref_pbuc1=vbuc2
lda #RED
sta BGCOL
//SEG88 [35] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
//SEG89 [36] phi from assert_sbyte::@1 to print_str [phi:assert_sbyte::@1->print_str]
print_str_from_b1:
@ -2996,8 +2983,8 @@ assert_sbyte: {
jsr print_str
jmp b2_from_b1
str: .text " @"
str1: .text "ok@"
str2: .text "fail!@"
str1: .text "fail!@"
str2: .text "ok@"
}
//SEG92 print_str
print_str: {
@ -3194,16 +3181,15 @@ assert_byte: {
jmp b6
//SEG152 assert_byte::@6
b6:
//SEG153 [60] if((byte) assert_byte::b#3==(byte) assert_byte::c#3) goto assert_byte::@1 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) -- vbuz1_eq_vbuz2_then_la1
//SEG153 [60] if((byte) assert_byte::b#3!=(byte) assert_byte::c#3) goto assert_byte::@1 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) -- vbuz1_neq_vbuz2_then_la1
lda b
cmp c
beq b1_from_b6
bne b1
//SEG154 [61] phi from assert_byte::@6 to assert_byte::@3 [phi:assert_byte::@6->assert_byte::@3]
b3_from_b6:
jmp b3
//SEG154 assert_byte::@3
//SEG155 assert_byte::@3
b3:
//SEG155 [61] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) -- _deref_pbuc1=vbuc2
lda #RED
sta BGCOL
//SEG156 [62] call print_str param-assignment [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
//SEG157 [36] phi from assert_byte::@3 to print_str [phi:assert_byte::@3->print_str]
print_str_from_b3:
@ -3230,11 +3216,11 @@ assert_byte: {
breturn:
//SEG166 [65] return [ print_line_cursor#1 ] ( main:2::test_bytes:7::assert_byte:49 [ print_line_cursor#1 ] main:2::test_bytes:7::assert_byte:51 [ print_line_cursor#1 ] main:2::test_bytes:7::assert_byte:53 [ print_line_cursor#1 ] )
rts
//SEG167 [66] phi from assert_byte::@6 to assert_byte::@1 [phi:assert_byte::@6->assert_byte::@1]
b1_from_b6:
jmp b1
//SEG168 assert_byte::@1
//SEG167 assert_byte::@1
b1:
//SEG168 [66] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) -- _deref_pbuc1=vbuc2
lda #RED
sta BGCOL
//SEG169 [67] call print_str param-assignment [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
//SEG170 [36] phi from assert_byte::@1 to print_str [phi:assert_byte::@1->print_str]
print_str_from_b1:
@ -3247,8 +3233,8 @@ assert_byte: {
jsr print_str
jmp b2_from_b1
str: .text " @"
str1: .text "ok@"
str2: .text "fail!@"
str1: .text "fail!@"
str2: .text "ok@"
}
//SEG173 print_cls
print_cls: {
@ -3296,7 +3282,7 @@ Statement [23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5 [ assert
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ assert_sbyte::b#5 ]
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ assert_sbyte::c#5 ]
Statement [24] (byte*~) print_char_cursor#86 ← (byte*) print_line_cursor#1 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] ) always clobbers reg byte a
Statement [29] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
Statement [34] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
Statement [38] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#10 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:4 [ assert_sbyte::b#5 ]
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ assert_sbyte::c#5 ]
@ -3310,13 +3296,13 @@ Statement [46] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto
Statement [50] (byte*~) print_char_cursor#92 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#92 ] ( main:2::test_bytes:7 [ print_line_cursor#1 print_char_cursor#92 ] ) always clobbers reg byte a
Statement [52] (byte*~) print_char_cursor#93 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#93 ] ( main:2::test_bytes:7 [ print_line_cursor#1 print_char_cursor#93 ] ) always clobbers reg byte a
Statement [56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] ) always clobbers reg byte a
Statement [61] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) always clobbers reg byte a
Statement [66] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) always clobbers reg byte a
Statement [70] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y
Statement [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a
Statement [6] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
Statement [23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_line_cursor#1 ] ) always clobbers reg byte a
Statement [24] (byte*~) print_char_cursor#86 ← (byte*) print_line_cursor#1 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ assert_sbyte::b#5 assert_sbyte::c#5 print_str::str#5 print_char_cursor#86 print_line_cursor#1 ] ) always clobbers reg byte a
Statement [29] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
Statement [34] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
Statement [38] if(*((byte*) print_str::str#10)!=(byte) '@') goto print_str::@2 [ print_char_cursor#2 print_str::str#10 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
Statement [40] *((byte*) print_char_cursor#2) ← *((byte*) print_str::str#10) [ print_char_cursor#2 print_str::str#10 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:25 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:27 [ assert_sbyte::b#5 assert_sbyte::c#5 print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:30 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:12::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:14::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:16::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:18::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_sbytes:9::assert_sbyte:20::print_str:35 [ print_line_cursor#1 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:57 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:59 [ print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:62 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:49::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:51::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] main:2::test_bytes:7::assert_byte:53::print_str:67 [ print_line_cursor#50 print_char_cursor#2 print_str::str#10 ] ) always clobbers reg byte a reg byte y
Statement [45] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#24 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20::print_ln:32 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:49::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:51::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_bytes:7::assert_byte:53::print_ln:64 [ print_line_cursor#1 print_char_cursor#2 ] ) always clobbers reg byte a
@ -3324,7 +3310,7 @@ Statement [46] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#2) goto
Statement [50] (byte*~) print_char_cursor#92 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#92 ] ( main:2::test_bytes:7 [ print_line_cursor#1 print_char_cursor#92 ] ) always clobbers reg byte a
Statement [52] (byte*~) print_char_cursor#93 ← (byte*) print_line_cursor#1 [ print_line_cursor#1 print_char_cursor#93 ] ( main:2::test_bytes:7 [ print_line_cursor#1 print_char_cursor#93 ] ) always clobbers reg byte a
Statement [56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] ( main:2::test_bytes:7::assert_byte:49 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:51 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] main:2::test_bytes:7::assert_byte:53 [ print_str::str#1 print_char_cursor#70 print_line_cursor#50 assert_byte::b#3 assert_byte::c#3 ] ) always clobbers reg byte a
Statement [61] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) always clobbers reg byte a
Statement [66] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) always clobbers reg byte a
Statement [70] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y
Statement [72] if((byte*) print_cls::sc#1!=((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a
Potential registers zp ZP_WORD:2 [ assert_sbyte::msg#5 ] : zp ZP_WORD:2 ,
@ -3349,19 +3335,19 @@ Uplift Scope [main]
Uplift Scope [test_bytes]
Uplift Scope [test_sbytes]
Uplifting [] best 2205 combination zp ZP_WORD:6 [ print_char_cursor#80 print_char_cursor#70 print_char_cursor#2 print_char_cursor#86 print_char_cursor#1 print_char_cursor#92 print_char_cursor#93 ] zp ZP_WORD:10 [ print_line_cursor#24 print_line_cursor#47 print_line_cursor#50 print_line_cursor#1 ]
Uplifting [print_str] best 2205 combination zp ZP_WORD:8 [ print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 ]
Uplifting [print_cls] best 2205 combination zp ZP_WORD:16 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [assert_byte] best 2193 combination zp ZP_WORD:12 [ assert_byte::msg#3 ] reg byte x [ assert_byte::b#3 ] zp ZP_BYTE:15 [ assert_byte::c#3 ]
Uplifting [assert_sbyte] best 2175 combination zp ZP_WORD:2 [ assert_sbyte::msg#5 ] reg byte x [ assert_sbyte::b#5 ] zp ZP_BYTE:5 [ assert_sbyte::c#5 ]
Uplifting [print_ln] best 2175 combination
Uplifting [main] best 2175 combination
Uplifting [test_bytes] best 2175 combination
Uplifting [test_sbytes] best 2175 combination
Uplifting [] best 2199 combination zp ZP_WORD:6 [ print_char_cursor#80 print_char_cursor#70 print_char_cursor#2 print_char_cursor#86 print_char_cursor#1 print_char_cursor#92 print_char_cursor#93 ] zp ZP_WORD:10 [ print_line_cursor#24 print_line_cursor#47 print_line_cursor#50 print_line_cursor#1 ]
Uplifting [print_str] best 2199 combination zp ZP_WORD:8 [ print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 ]
Uplifting [print_cls] best 2199 combination zp ZP_WORD:16 [ print_cls::sc#2 print_cls::sc#1 ]
Uplifting [assert_byte] best 2187 combination zp ZP_WORD:12 [ assert_byte::msg#3 ] reg byte x [ assert_byte::b#3 ] zp ZP_BYTE:15 [ assert_byte::c#3 ]
Uplifting [assert_sbyte] best 2169 combination zp ZP_WORD:2 [ assert_sbyte::msg#5 ] reg byte x [ assert_sbyte::b#5 ] zp ZP_BYTE:5 [ assert_sbyte::c#5 ]
Uplifting [print_ln] best 2169 combination
Uplifting [main] best 2169 combination
Uplifting [test_bytes] best 2169 combination
Uplifting [test_sbytes] best 2169 combination
Attempting to uplift remaining variables inzp ZP_BYTE:15 [ assert_byte::c#3 ]
Uplifting [assert_byte] best 2175 combination zp ZP_BYTE:15 [ assert_byte::c#3 ]
Uplifting [assert_byte] best 2169 combination zp ZP_BYTE:15 [ assert_byte::c#3 ]
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ assert_sbyte::c#5 ]
Uplifting [assert_sbyte] best 2175 combination zp ZP_BYTE:5 [ assert_sbyte::c#5 ]
Uplifting [assert_sbyte] best 2169 combination zp ZP_BYTE:5 [ assert_sbyte::c#5 ]
Coalescing zero page register with common assignment [ zp ZP_WORD:2 [ assert_sbyte::msg#5 ] ] with [ zp ZP_WORD:8 [ print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:2 [ assert_sbyte::msg#5 print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 ] ] with [ zp ZP_WORD:12 [ assert_byte::msg#3 ] ] - score: 1
Coalescing zero page register [ zp ZP_WORD:2 [ assert_sbyte::msg#5 print_str::str#10 print_str::str#11 print_str::str#1 print_str::str#5 print_str::str#0 assert_byte::msg#3 ] ] with [ zp ZP_WORD:16 [ print_cls::sc#2 print_cls::sc#1 ] ]
@ -3571,15 +3557,14 @@ assert_sbyte: {
jmp b6
//SEG71 assert_sbyte::@6
b6:
//SEG72 [28] if((signed byte) assert_sbyte::b#5==(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) -- vbsxx_eq_vbsz1_then_la1
//SEG72 [28] if((signed byte) assert_sbyte::b#5!=(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) -- vbsxx_neq_vbsz1_then_la1
cpx c
beq b1_from_b6
bne b1
//SEG73 [29] phi from assert_sbyte::@6 to assert_sbyte::@3 [phi:assert_sbyte::@6->assert_sbyte::@3]
b3_from_b6:
jmp b3
//SEG73 assert_sbyte::@3
//SEG74 assert_sbyte::@3
b3:
//SEG74 [29] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) -- _deref_pbuc1=vbuc2
lda #RED
sta BGCOL
//SEG75 [30] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
//SEG76 [36] phi from assert_sbyte::@3 to print_str [phi:assert_sbyte::@3->print_str]
print_str_from_b3:
@ -3606,11 +3591,11 @@ assert_sbyte: {
breturn:
//SEG85 [33] return [ print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 ] )
rts
//SEG86 [34] phi from assert_sbyte::@6 to assert_sbyte::@1 [phi:assert_sbyte::@6->assert_sbyte::@1]
b1_from_b6:
jmp b1
//SEG87 assert_sbyte::@1
//SEG86 assert_sbyte::@1
b1:
//SEG87 [34] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) -- _deref_pbuc1=vbuc2
lda #RED
sta BGCOL
//SEG88 [35] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
//SEG89 [36] phi from assert_sbyte::@1 to print_str [phi:assert_sbyte::@1->print_str]
print_str_from_b1:
@ -3623,8 +3608,8 @@ assert_sbyte: {
jsr print_str
jmp b2_from_b1
str: .text " @"
str1: .text "ok@"
str2: .text "fail!@"
str1: .text "fail!@"
str2: .text "ok@"
}
//SEG92 print_str
print_str: {
@ -3814,15 +3799,14 @@ assert_byte: {
jmp b6
//SEG152 assert_byte::@6
b6:
//SEG153 [60] if((byte) assert_byte::b#3==(byte) assert_byte::c#3) goto assert_byte::@1 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) -- vbuxx_eq_vbuz1_then_la1
//SEG153 [60] if((byte) assert_byte::b#3!=(byte) assert_byte::c#3) goto assert_byte::@1 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) -- vbuxx_neq_vbuz1_then_la1
cpx c
beq b1_from_b6
bne b1
//SEG154 [61] phi from assert_byte::@6 to assert_byte::@3 [phi:assert_byte::@6->assert_byte::@3]
b3_from_b6:
jmp b3
//SEG154 assert_byte::@3
//SEG155 assert_byte::@3
b3:
//SEG155 [61] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) -- _deref_pbuc1=vbuc2
lda #RED
sta BGCOL
//SEG156 [62] call print_str param-assignment [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
//SEG157 [36] phi from assert_byte::@3 to print_str [phi:assert_byte::@3->print_str]
print_str_from_b3:
@ -3849,11 +3833,11 @@ assert_byte: {
breturn:
//SEG166 [65] return [ print_line_cursor#1 ] ( main:2::test_bytes:7::assert_byte:49 [ print_line_cursor#1 ] main:2::test_bytes:7::assert_byte:51 [ print_line_cursor#1 ] main:2::test_bytes:7::assert_byte:53 [ print_line_cursor#1 ] )
rts
//SEG167 [66] phi from assert_byte::@6 to assert_byte::@1 [phi:assert_byte::@6->assert_byte::@1]
b1_from_b6:
jmp b1
//SEG168 assert_byte::@1
//SEG167 assert_byte::@1
b1:
//SEG168 [66] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) -- _deref_pbuc1=vbuc2
lda #RED
sta BGCOL
//SEG169 [67] call print_str param-assignment [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
//SEG170 [36] phi from assert_byte::@1 to print_str [phi:assert_byte::@1->print_str]
print_str_from_b1:
@ -3866,8 +3850,8 @@ assert_byte: {
jsr print_str
jmp b2_from_b1
str: .text " @"
str1: .text "ok@"
str2: .text "fail!@"
str1: .text "fail!@"
str2: .text "ok@"
}
//SEG173 print_cls
print_cls: {
@ -3926,7 +3910,6 @@ Removing instruction jmp b3
Removing instruction jmp b2
Removing instruction jmp breturn
Removing instruction jmp b1
Removing instruction jmp b1
Removing instruction jmp breturn
Removing instruction jmp b1
Removing instruction jmp breturn
@ -3939,17 +3922,14 @@ Removing instruction jmp b3
Removing instruction jmp b2
Removing instruction jmp breturn
Removing instruction jmp b1
Removing instruction jmp b1
Removing instruction jmp breturn
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction ldy #0
Succesful ASM optimization Pass5UnnecesaryLoadElimination
Replacing label b1_from_b6 with b1
Replacing label b2_from_b1 with b2
Replacing label b1_from_b2 with b1
Replacing label b1_from_b1 with b1
Replacing label b1_from_b1 with b1
Replacing label b1_from_b6 with b1
Replacing label b2_from_b1 with b2
Replacing label b1_from_b1 with b1
Replacing label b1_from_b1 with b1
@ -3969,22 +3949,22 @@ Removing instruction b4_from_b3:
Removing instruction assert_sbyte_from_b4:
Removing instruction b5_from_assert_sbyte:
Removing instruction print_str_from_b5:
Removing instruction b3_from_b6:
Removing instruction print_str_from_b3:
Removing instruction b2_from_b1:
Removing instruction b2_from_b3:
Removing instruction print_ln_from_b2:
Removing instruction b1_from_b6:
Removing instruction print_str_from_b1:
Removing instruction b1_from_print_str:
Removing instruction b1_from_b2:
Removing instruction b1_from_print_ln:
Removing instruction b1_from_b1:
Removing instruction b5_from_assert_byte:
Removing instruction print_str_from_b5:
Removing instruction b3_from_b6:
Removing instruction print_str_from_b3:
Removing instruction b2_from_b1:
Removing instruction b2_from_b3:
Removing instruction print_ln_from_b2:
Removing instruction b1_from_b6:
Removing instruction print_str_from_b1:
Removing instruction b1_from_b1:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction b19:
@ -4004,8 +3984,8 @@ Removing instruction print_str_from_assert_sbyte:
Removing instruction b5:
Removing instruction b6:
Removing instruction b3:
Removing instruction print_str_from_b3:
Removing instruction breturn:
Removing instruction print_str_from_b1:
Removing instruction breturn:
Removing instruction breturn:
Removing instruction assert_byte_from_test_bytes:
@ -4018,8 +3998,8 @@ Removing instruction print_str_from_assert_byte:
Removing instruction b5:
Removing instruction b6:
Removing instruction b3:
Removing instruction print_str_from_b3:
Removing instruction breturn:
Removing instruction print_str_from_b1:
Removing instruction b1_from_print_cls:
Removing instruction breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
@ -4050,8 +4030,8 @@ FINAL SYMBOL TABLE
(byte*) assert_byte::msg
(byte*) assert_byte::msg#3 msg zp ZP_WORD:2 2.0
(const string) assert_byte::str str = (string) " @"
(const string) assert_byte::str1 str1 = (string) "ok@"
(const string) assert_byte::str2 str2 = (string) "fail!@"
(const string) assert_byte::str1 str1 = (string) "fail!@"
(const string) assert_byte::str2 str2 = (string) "ok@"
(void()) assert_sbyte((byte*) assert_sbyte::msg , (signed byte) assert_sbyte::b , (signed byte) assert_sbyte::c)
(label) assert_sbyte::@1
(label) assert_sbyte::@2
@ -4066,8 +4046,8 @@ FINAL SYMBOL TABLE
(byte*) assert_sbyte::msg
(byte*) assert_sbyte::msg#5 msg zp ZP_WORD:2 2.0
(const string) assert_sbyte::str str = (string) " @"
(const string) assert_sbyte::str1 str1 = (string) "ok@"
(const string) assert_sbyte::str2 str2 = (string) "fail!@"
(const string) assert_sbyte::str1 str1 = (string) "fail!@"
(const string) assert_sbyte::str2 str2 = (string) "ok@"
(void()) main()
(label) main::@1
(label) main::@2
@ -4307,13 +4287,11 @@ assert_sbyte: {
sta print_str.str+1
jsr print_str
//SEG71 assert_sbyte::@6
//SEG72 [28] if((signed byte) assert_sbyte::b#5==(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) -- vbsxx_eq_vbsz1_then_la1
//SEG72 [28] if((signed byte) assert_sbyte::b#5!=(signed byte) assert_sbyte::c#5) goto assert_sbyte::@1 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) -- vbsxx_neq_vbsz1_then_la1
cpx c
beq b1
//SEG73 assert_sbyte::@3
//SEG74 [29] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) -- _deref_pbuc1=vbuc2
lda #RED
sta BGCOL
bne b1
//SEG73 [29] phi from assert_sbyte::@6 to assert_sbyte::@3 [phi:assert_sbyte::@6->assert_sbyte::@3]
//SEG74 assert_sbyte::@3
//SEG75 [30] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
//SEG76 [36] phi from assert_sbyte::@3 to print_str [phi:assert_sbyte::@3->print_str]
//SEG77 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@3->print_str#0] -- register_copy
@ -4333,9 +4311,11 @@ assert_sbyte: {
//SEG84 assert_sbyte::@return
//SEG85 [33] return [ print_line_cursor#1 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 ] )
rts
//SEG86 [34] phi from assert_sbyte::@6 to assert_sbyte::@1 [phi:assert_sbyte::@6->assert_sbyte::@1]
//SEG87 assert_sbyte::@1
//SEG86 assert_sbyte::@1
b1:
//SEG87 [34] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] ) -- _deref_pbuc1=vbuc2
lda #RED
sta BGCOL
//SEG88 [35] call print_str param-assignment [ print_line_cursor#1 print_char_cursor#2 ] ( main:2::test_sbytes:9::assert_sbyte:12 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:14 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:16 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:18 [ print_line_cursor#1 print_char_cursor#2 ] main:2::test_sbytes:9::assert_sbyte:20 [ print_line_cursor#1 print_char_cursor#2 ] )
//SEG89 [36] phi from assert_sbyte::@1 to print_str [phi:assert_sbyte::@1->print_str]
//SEG90 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@1->print_str#0] -- register_copy
@ -4347,8 +4327,8 @@ assert_sbyte: {
jsr print_str
jmp b2
str: .text " @"
str1: .text "ok@"
str2: .text "fail!@"
str1: .text "fail!@"
str2: .text "ok@"
}
//SEG92 print_str
print_str: {
@ -4511,13 +4491,11 @@ assert_byte: {
sta print_str.str+1
jsr print_str
//SEG152 assert_byte::@6
//SEG153 [60] if((byte) assert_byte::b#3==(byte) assert_byte::c#3) goto assert_byte::@1 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) -- vbuxx_eq_vbuz1_then_la1
//SEG153 [60] if((byte) assert_byte::b#3!=(byte) assert_byte::c#3) goto assert_byte::@1 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) -- vbuxx_neq_vbuz1_then_la1
cpx c
beq b1
//SEG154 assert_byte::@3
//SEG155 [61] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) -- _deref_pbuc1=vbuc2
lda #RED
sta BGCOL
bne b1
//SEG154 [61] phi from assert_byte::@6 to assert_byte::@3 [phi:assert_byte::@6->assert_byte::@3]
//SEG155 assert_byte::@3
//SEG156 [62] call print_str param-assignment [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
//SEG157 [36] phi from assert_byte::@3 to print_str [phi:assert_byte::@3->print_str]
//SEG158 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@3->print_str#0] -- register_copy
@ -4537,9 +4515,11 @@ assert_byte: {
//SEG165 assert_byte::@return
//SEG166 [65] return [ print_line_cursor#1 ] ( main:2::test_bytes:7::assert_byte:49 [ print_line_cursor#1 ] main:2::test_bytes:7::assert_byte:51 [ print_line_cursor#1 ] main:2::test_bytes:7::assert_byte:53 [ print_line_cursor#1 ] )
rts
//SEG167 [66] phi from assert_byte::@6 to assert_byte::@1 [phi:assert_byte::@6->assert_byte::@1]
//SEG168 assert_byte::@1
//SEG167 assert_byte::@1
b1:
//SEG168 [66] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] ) -- _deref_pbuc1=vbuc2
lda #RED
sta BGCOL
//SEG169 [67] call print_str param-assignment [ print_char_cursor#2 print_line_cursor#50 ] ( main:2::test_bytes:7::assert_byte:49 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:51 [ print_char_cursor#2 print_line_cursor#50 ] main:2::test_bytes:7::assert_byte:53 [ print_char_cursor#2 print_line_cursor#50 ] )
//SEG170 [36] phi from assert_byte::@1 to print_str [phi:assert_byte::@1->print_str]
//SEG171 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@1->print_str#0] -- register_copy
@ -4551,8 +4531,8 @@ assert_byte: {
jsr print_str
jmp b2
str: .text " @"
str1: .text "ok@"
str2: .text "fail!@"
str1: .text "fail!@"
str2: .text "ok@"
}
//SEG173 print_cls
print_cls: {

@ -21,8 +21,8 @@
(byte*) assert_byte::msg
(byte*) assert_byte::msg#3 msg zp ZP_WORD:2 2.0
(const string) assert_byte::str str = (string) " @"
(const string) assert_byte::str1 str1 = (string) "ok@"
(const string) assert_byte::str2 str2 = (string) "fail!@"
(const string) assert_byte::str1 str1 = (string) "fail!@"
(const string) assert_byte::str2 str2 = (string) "ok@"
(void()) assert_sbyte((byte*) assert_sbyte::msg , (signed byte) assert_sbyte::b , (signed byte) assert_sbyte::c)
(label) assert_sbyte::@1
(label) assert_sbyte::@2
@ -37,8 +37,8 @@
(byte*) assert_sbyte::msg
(byte*) assert_sbyte::msg#5 msg zp ZP_WORD:2 2.0
(const string) assert_sbyte::str str = (string) " @"
(const string) assert_sbyte::str1 str1 = (string) "ok@"
(const string) assert_sbyte::str2 str2 = (string) "fail!@"
(const string) assert_sbyte::str1 str1 = (string) "fail!@"
(const string) assert_sbyte::str2 str2 = (string) "ok@"
(void()) main()
(label) main::@1
(label) main::@2

@ -425,8 +425,8 @@ Constant (const byte) a#19 = 0
Constant (const byte*) B#0 = ((byte*))4096
Succesful SSA optimization Pass2ConstantIdentification
if() condition always true - replacing block destination if(true) goto main::@2
if() condition always true - replacing block destination if(true) goto menu::@2
Removing PHI-reference to removed block (menu::@1) in block menu::@return
if() condition always true - replacing block destination if(true) goto menu::@2
if() condition always true - replacing block destination if(true) goto mode::@2
Succesful SSA optimization Pass2ConstantIfs
Removing unused block main::@return

@ -17,7 +17,7 @@ main: {
print_msg: {
.label msg = 4
cpx #1
bne b1
beq b1
lda #<msg_1
sta msg
lda #>msg_1
@ -31,8 +31,8 @@ print_msg: {
b2:
jsr print
rts
msg_0: .text "World!@"
msg_1: .text "Hello @"
msg_0: .text "Hello @"
msg_1: .text "World!@"
}
print: {
.label msg = 4

@ -21,7 +21,7 @@ main::@return: scope:[main] from main::@1
print_msg: scope:[print_msg] from main main::@1
[9] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) screen#14 ) [ print_msg::idx#2 screen#18 ] ( main:2::print_msg:5 [ print_msg::idx#2 screen#18 ] main:2::print_msg:7 [ print_msg::idx#2 screen#18 ] )
[9] (byte) print_msg::idx#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 ) [ print_msg::idx#2 screen#18 ] ( main:2::print_msg:5 [ print_msg::idx#2 screen#18 ] main:2::print_msg:7 [ print_msg::idx#2 screen#18 ] )
[10] if((byte) print_msg::idx#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@2 [ screen#18 ] ( main:2::print_msg:5 [ screen#18 ] main:2::print_msg:7 [ screen#18 ] )
[10] if((byte) print_msg::idx#2==(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@2 [ screen#18 ] ( main:2::print_msg:5 [ screen#18 ] main:2::print_msg:7 [ screen#18 ] )
to:print_msg::@3
print_msg::@3: scope:[print_msg] from print_msg
[11] phi() [ screen#18 ] ( main:2::print_msg:5 [ screen#18 ] main:2::print_msg:7 [ screen#18 ] )

@ -35,14 +35,13 @@ main::@return:
endproc // main()
proc (void()) print_msg((byte) print_msg::idx)
(boolean~) print_msg::$0 ← (byte) print_msg::idx == (byte/signed byte/word/signed word/dword/signed dword) 1
(boolean~) print_msg::$1 ← ! (boolean~) print_msg::$0
if((boolean~) print_msg::$1) goto print_msg::@1
(byte*) print_msg::msg ← (string) "Hello @"
if((boolean~) print_msg::$0) goto print_msg::@1
(byte*) print_msg::msg ← (string) "World!@"
goto print_msg::@2
print_msg::@1:
(byte*) print_msg::msg ← (string) "World!@"
(byte*) print_msg::msg ← (string) "Hello @"
print_msg::@2:
(void~) print_msg::$2 ← call print (byte*) print_msg::msg
(void~) print_msg::$1 ← call print (byte*) print_msg::msg
print_msg::@return:
return
endproc // print_msg()
@ -77,8 +76,7 @@ SYMBOLS
(byte*) print::msg
(void()) print_msg((byte) print_msg::idx)
(boolean~) print_msg::$0
(boolean~) print_msg::$1
(void~) print_msg::$2
(void~) print_msg::$1
(label) print_msg::@1
(label) print_msg::@2
(label) print_msg::@return
@ -101,17 +99,16 @@ main::@return: scope:[main] from main
to:@2
print_msg: scope:[print_msg] from
(boolean~) print_msg::$0 ← (byte) print_msg::idx == (byte/signed byte/word/signed word/dword/signed dword) 1
(boolean~) print_msg::$1 ← ! (boolean~) print_msg::$0
if((boolean~) print_msg::$1) goto print_msg::@1
if((boolean~) print_msg::$0) goto print_msg::@1
to:print_msg::@3
print_msg::@1: scope:[print_msg] from print_msg print_msg::@4
(byte*) print_msg::msg ← (string) "World!@"
to:print_msg::@2
print_msg::@3: scope:[print_msg] from print_msg
(byte*) print_msg::msg ← (string) "Hello @"
to:print_msg::@2
print_msg::@3: scope:[print_msg] from print_msg
(byte*) print_msg::msg ← (string) "World!@"
to:print_msg::@2
print_msg::@2: scope:[print_msg] from print_msg::@1 print_msg::@3
(void~) print_msg::$2 ← call print (byte*) print_msg::msg
(void~) print_msg::$1 ← call print (byte*) print_msg::msg
to:print_msg::@return
print_msg::@4: scope:[print_msg] from
to:print_msg::@1
@ -150,9 +147,9 @@ print::@return: scope:[print] from print::@3
Eliminating unused variable - keeping the call (void~) main::$0
Eliminating unused variable - keeping the call (void~) main::$1
Eliminating unused variable - keeping the call (void~) print_msg::$2
Eliminating unused variable - keeping the call (void~) print_msg::$1
Creating constant string variable for inline (const string) print_msg::$2 "Hello @"
Creating constant string variable for inline (const string) print_msg::$3 "World!@"
Creating constant string variable for inline (const string) print_msg::$4 "Hello @"
Removing empty block @1
Removing empty block print_msg::@4
Removing empty block print::@4
@ -196,16 +193,15 @@ print_msg: scope:[print_msg] from main main::@1
(byte*) screen#24 ← phi( main/(byte*) screen#17 main::@1/(byte*) screen#0 )
(byte) print_msg::idx#2 ← phi( main/(byte) print_msg::idx#0 main::@1/(byte) print_msg::idx#1 )
(boolean~) print_msg::$0 ← (byte) print_msg::idx#2 == (byte/signed byte/word/signed word/dword/signed dword) 1
(boolean~) print_msg::$1 ← ! (boolean~) print_msg::$0
if((boolean~) print_msg::$1) goto print_msg::@1
if((boolean~) print_msg::$0) goto print_msg::@1
to:print_msg::@3
print_msg::@1: scope:[print_msg] from print_msg
(byte*) screen#21 ← phi( print_msg/(byte*) screen#24 )
(byte*) print_msg::msg#0 ← (const string) print_msg::$3
(byte*) print_msg::msg#0 ← (const string) print_msg::$2
to:print_msg::@2
print_msg::@3: scope:[print_msg] from print_msg
(byte*) screen#22 ← phi( print_msg/(byte*) screen#24 )
(byte*) print_msg::msg#1 ← (const string) print_msg::$4
(byte*) print_msg::msg#1 ← (const string) print_msg::$3
to:print_msg::@2
print_msg::@2: scope:[print_msg] from print_msg::@1 print_msg::@3
(byte*) screen#18 ← phi( print_msg::@1/(byte*) screen#21 print_msg::@3/(byte*) screen#22 )
@ -280,9 +276,8 @@ SYMBOL TABLE SSA
(byte*) print::msg#4
(void()) print_msg((byte) print_msg::idx)
(boolean~) print_msg::$0
(boolean~) print_msg::$1
(const string) print_msg::$2 = (string) "Hello @"
(const string) print_msg::$3 = (string) "World!@"
(const string) print_msg::$4 = (string) "Hello @"
(label) print_msg::@1
(label) print_msg::@2
(label) print_msg::@3
@ -324,8 +319,6 @@ SYMBOL TABLE SSA
(byte*) screen#9
OPTIMIZING CONTROL FLOW GRAPH
Inversing boolean not (boolean~) print_msg::$1 ← (byte) print_msg::idx#2 != (byte/signed byte/word/signed word/dword/signed dword) 1 from (boolean~) print_msg::$0 ← (byte) print_msg::idx#2 == (byte/signed byte/word/signed word/dword/signed dword) 1
Succesful SSA optimization Pass2UnaryNotSimplification
Not aliassing across scopes: screen#17 screen#20
Not aliassing across scopes: screen#9 screen#4
Not aliassing across scopes: screen#10 screen#4
@ -375,13 +368,13 @@ Redundant Phi (byte*) print::msg#4 (byte*) print::msg#0
Redundant Phi (byte*) screen#23 (byte*) screen#18
Redundant Phi (byte*) screen#16 (byte*) screen#1
Succesful SSA optimization Pass2RedundantPhiElimination
Simple Condition (boolean~) print_msg::$1 if((byte) print_msg::idx#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@1
Simple Condition (boolean~) print_msg::$0 if((byte) print_msg::idx#2==(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@1
Simple Condition (boolean~) print::$0 if(*((byte*) print::msg#2)!=(byte) '@') goto print::@2
Succesful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) print_msg::idx#0 = 1
Constant (const byte) print_msg::idx#1 = 2
Constant (const string) print_msg::msg#0 = print_msg::$3
Constant (const string) print_msg::msg#1 = print_msg::$4
Constant (const string) print_msg::msg#0 = print_msg::$2
Constant (const string) print_msg::msg#1 = print_msg::$3
Constant (const byte*) screen#20 = ((byte*))1024
Succesful SSA optimization Pass2ConstantIdentification
Culled Empty Block (label) main::@2
@ -412,8 +405,8 @@ Inlining constant with var siblings (const byte*) screen#20
Constant inlined print_msg::idx#1 = (byte/signed byte/word/signed word/dword/signed dword) 2
Constant inlined print_msg::idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 1
Constant inlined screen#20 = ((byte*))(word/signed word/dword/signed dword) 1024
Constant inlined print_msg::$4 = (const string) print_msg::msg#1
Constant inlined print_msg::$3 = (const string) print_msg::msg#0
Constant inlined print_msg::$3 = (const string) print_msg::msg#1
Constant inlined print_msg::$2 = (const string) print_msg::msg#0
Succesful SSA optimization Pass2ConstantInlining
Inlining constant with var siblings (const string) print_msg::msg#0
Inlining constant with var siblings (const string) print_msg::msg#1
@ -484,7 +477,7 @@ main::@return: scope:[main] from main::@1
print_msg: scope:[print_msg] from main main::@1
[9] (byte*) screen#18 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) screen#14 ) [ print_msg::idx#2 screen#18 ] ( main:2::print_msg:5 [ print_msg::idx#2 screen#18 ] main:2::print_msg:7 [ print_msg::idx#2 screen#18 ] )
[9] (byte) print_msg::idx#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 ) [ print_msg::idx#2 screen#18 ] ( main:2::print_msg:5 [ print_msg::idx#2 screen#18 ] main:2::print_msg:7 [ print_msg::idx#2 screen#18 ] )
[10] if((byte) print_msg::idx#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@2 [ screen#18 ] ( main:2::print_msg:5 [ screen#18 ] main:2::print_msg:7 [ screen#18 ] )
[10] if((byte) print_msg::idx#2==(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@2 [ screen#18 ] ( main:2::print_msg:5 [ screen#18 ] main:2::print_msg:7 [ screen#18 ] )
to:print_msg::@3
print_msg::@3: scope:[print_msg] from print_msg
[11] phi() [ screen#18 ] ( main:2::print_msg:5 [ screen#18 ] main:2::print_msg:7 [ screen#18 ] )
@ -636,10 +629,10 @@ main: {
print_msg: {
.label idx = 2
.label msg = 5
//SEG23 [10] if((byte) print_msg::idx#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@2 [ screen#18 ] ( main:2::print_msg:5 [ screen#18 ] main:2::print_msg:7 [ screen#18 ] ) -- vbuz1_neq_vbuc1_then_la1
//SEG23 [10] if((byte) print_msg::idx#2==(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@2 [ screen#18 ] ( main:2::print_msg:5 [ screen#18 ] main:2::print_msg:7 [ screen#18 ] ) -- vbuz1_eq_vbuc1_then_la1
lda idx
cmp #1
bne b2_from_print_msg
beq b2_from_print_msg
//SEG24 [11] phi from print_msg to print_msg::@3 [phi:print_msg->print_msg::@3]
b3_from_print_msg:
jmp b3
@ -677,8 +670,8 @@ print_msg: {
breturn:
//SEG35 [15] return [ screen#14 ] ( main:2::print_msg:5 [ screen#14 ] main:2::print_msg:7 [ screen#14 ] )
rts
msg_0: .text "World!@"
msg_1: .text "Hello @"
msg_0: .text "Hello @"
msg_1: .text "World!@"
}
//SEG36 print
print: {
@ -801,9 +794,9 @@ main: {
//SEG22 print_msg
print_msg: {
.label msg = 4
//SEG23 [10] if((byte) print_msg::idx#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@2 [ screen#18 ] ( main:2::print_msg:5 [ screen#18 ] main:2::print_msg:7 [ screen#18 ] ) -- vbuxx_neq_vbuc1_then_la1
//SEG23 [10] if((byte) print_msg::idx#2==(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@2 [ screen#18 ] ( main:2::print_msg:5 [ screen#18 ] main:2::print_msg:7 [ screen#18 ] ) -- vbuxx_eq_vbuc1_then_la1
cpx #1
bne b2_from_print_msg
beq b2_from_print_msg
//SEG24 [11] phi from print_msg to print_msg::@3 [phi:print_msg->print_msg::@3]
b3_from_print_msg:
jmp b3
@ -838,8 +831,8 @@ print_msg: {
breturn:
//SEG35 [15] return [ screen#14 ] ( main:2::print_msg:5 [ screen#14 ] main:2::print_msg:7 [ screen#14 ] )
rts
msg_0: .text "World!@"
msg_1: .text "Hello @"
msg_0: .text "Hello @"
msg_1: .text "World!@"
}
//SEG36 print
print: {
@ -942,8 +935,8 @@ FINAL SYMBOL TABLE
(byte) print_msg::idx
(byte) print_msg::idx#2 reg byte x 2.0
(byte*) print_msg::msg
(const string) print_msg::msg#0 msg#0 = (string) "World!@"
(const string) print_msg::msg#1 msg#1 = (string) "Hello @"
(const string) print_msg::msg#0 msg#0 = (string) "Hello @"
(const string) print_msg::msg#1 msg#1 = (string) "World!@"
(byte*) print_msg::msg#2 msg zp ZP_WORD:4 2.0
(byte*) screen
(byte*) screen#14 screen zp ZP_WORD:2 4.625
@ -999,9 +992,9 @@ main: {
//SEG22 print_msg
print_msg: {
.label msg = 4
//SEG23 [10] if((byte) print_msg::idx#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@2 [ screen#18 ] ( main:2::print_msg:5 [ screen#18 ] main:2::print_msg:7 [ screen#18 ] ) -- vbuxx_neq_vbuc1_then_la1
//SEG23 [10] if((byte) print_msg::idx#2==(byte/signed byte/word/signed word/dword/signed dword) 1) goto print_msg::@2 [ screen#18 ] ( main:2::print_msg:5 [ screen#18 ] main:2::print_msg:7 [ screen#18 ] ) -- vbuxx_eq_vbuc1_then_la1
cpx #1
bne b1
beq b1
//SEG24 [11] phi from print_msg to print_msg::@3 [phi:print_msg->print_msg::@3]
//SEG25 print_msg::@3
//SEG26 [12] phi from print_msg::@3 to print_msg::@2 [phi:print_msg::@3->print_msg::@2]
@ -1028,8 +1021,8 @@ print_msg: {
//SEG34 print_msg::@return
//SEG35 [15] return [ screen#14 ] ( main:2::print_msg:5 [ screen#14 ] main:2::print_msg:7 [ screen#14 ] )
rts
msg_0: .text "World!@"
msg_1: .text "Hello @"
msg_0: .text "Hello @"
msg_1: .text "World!@"
}
//SEG36 print
print: {

@ -19,8 +19,8 @@
(byte) print_msg::idx
(byte) print_msg::idx#2 reg byte x 2.0
(byte*) print_msg::msg
(const string) print_msg::msg#0 msg#0 = (string) "World!@"
(const string) print_msg::msg#1 msg#1 = (string) "Hello @"
(const string) print_msg::msg#0 msg#0 = (string) "Hello @"
(const string) print_msg::msg#1 msg#1 = (string) "World!@"
(byte*) print_msg::msg#2 msg zp ZP_WORD:4 2.0
(byte*) screen
(byte*) screen#14 screen zp ZP_WORD:2 4.625

@ -575,74 +575,72 @@ keyboard_event_scan::@1:
(byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row
(byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0
(boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row)
(boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1
if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2
if((boolean~) keyboard_event_scan::$1) goto keyboard_event_scan::@2
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2
goto keyboard_event_scan::@3
keyboard_event_scan::@2:
(byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0
keyboard_event_scan::@3:
keyboard_event_scan::@4:
(byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row)
(byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col)
(boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5
if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4
if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@5
(boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8
(boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7
if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5
if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@6
(byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col)
(byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9
(boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10
if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6
(byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
goto keyboard_event_scan::@7
keyboard_event_scan::@6:
if((boolean~) keyboard_event_scan::$10) goto keyboard_event_scan::@7
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
goto keyboard_event_scan::@8
keyboard_event_scan::@7:
(byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$11
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
keyboard_event_scan::@8:
keyboard_event_scan::@6:
keyboard_event_scan::@5:
keyboard_event_scan::@4:
(byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode
(byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col
(boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3
(boolean~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$12) goto keyboard_event_scan::@4
*((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan
goto keyboard_event_scan::@8
keyboard_event_scan::@2:
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14
keyboard_event_scan::@8:
keyboard_event_scan::@3:
(byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row
(boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1
(boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@1
(byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT
(boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17
if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9
(byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19
(byte~) keyboard_event_scan::$14 ← call keyboard_event_pressed (byte) KEY_LSHIFT
(boolean~) keyboard_event_scan::$15 ← (byte~) keyboard_event_scan::$14 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$16 ← ! (boolean~) keyboard_event_scan::$15
if((boolean~) keyboard_event_scan::$16) goto keyboard_event_scan::@9
(byte~) keyboard_event_scan::$17 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$17
keyboard_event_scan::@9:
(byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT
(boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21
if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10
(byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23
(byte~) keyboard_event_scan::$18 ← call keyboard_event_pressed (byte) KEY_RSHIFT
(boolean~) keyboard_event_scan::$19 ← (byte~) keyboard_event_scan::$18 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$20 ← ! (boolean~) keyboard_event_scan::$19
if((boolean~) keyboard_event_scan::$20) goto keyboard_event_scan::@10
(byte~) keyboard_event_scan::$21 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$21
keyboard_event_scan::@10:
(byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL
(boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25
if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11
(byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27
(byte~) keyboard_event_scan::$22 ← call keyboard_event_pressed (byte) KEY_CTRL
(boolean~) keyboard_event_scan::$23 ← (byte~) keyboard_event_scan::$22 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$24 ← ! (boolean~) keyboard_event_scan::$23
if((boolean~) keyboard_event_scan::$24) goto keyboard_event_scan::@11
(byte~) keyboard_event_scan::$25 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$25
keyboard_event_scan::@11:
(byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE
(boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29
if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12
(byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31
(byte~) keyboard_event_scan::$26 ← call keyboard_event_pressed (byte) KEY_COMMODORE
(boolean~) keyboard_event_scan::$27 ← (byte~) keyboard_event_scan::$26 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$28 ← ! (boolean~) keyboard_event_scan::$27
if((boolean~) keyboard_event_scan::$28) goto keyboard_event_scan::@12
(byte~) keyboard_event_scan::$29 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$29
keyboard_event_scan::@12:
keyboard_event_scan::@return:
return
@ -660,14 +658,13 @@ keyboard_event_pressed::@return:
endproc // keyboard_event_pressed()
proc (byte()) keyboard_event_get()
(boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0
if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1
(byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255
if((boolean~) keyboard_event_get::$0) goto keyboard_event_get::@1
(byte) keyboard_events_size ← -- (byte) keyboard_events_size
(byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size)
goto keyboard_event_get::@return
goto keyboard_event_get::@2
keyboard_event_get::@1:
(byte) keyboard_events_size ← -- (byte) keyboard_events_size
(byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size)
(byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255
goto keyboard_event_get::@return
keyboard_event_get::@2:
keyboard_event_get::@return:
@ -880,7 +877,6 @@ SYMBOLS
(byte[]) keyboard_char_keycodes
(byte()) keyboard_event_get()
(boolean~) keyboard_event_get::$0
(boolean~) keyboard_event_get::$1
(label) keyboard_event_get::@1
(label) keyboard_event_get::@2
(label) keyboard_event_get::@return
@ -897,29 +893,27 @@ SYMBOLS
(byte~) keyboard_event_scan::$0
(boolean~) keyboard_event_scan::$1
(boolean~) keyboard_event_scan::$10
(boolean~) keyboard_event_scan::$11
(byte/word/dword~) keyboard_event_scan::$12
(byte/word/dword~) keyboard_event_scan::$11
(boolean~) keyboard_event_scan::$12
(boolean~) keyboard_event_scan::$13
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14
(byte~) keyboard_event_scan::$14
(boolean~) keyboard_event_scan::$15
(byte~) keyboard_event_scan::$16
(boolean~) keyboard_event_scan::$17
(boolean~) keyboard_event_scan::$18
(byte~) keyboard_event_scan::$19
(boolean~) keyboard_event_scan::$2
(byte~) keyboard_event_scan::$20
(boolean~) keyboard_event_scan::$21
(boolean~) keyboard_event_scan::$22
(byte~) keyboard_event_scan::$23
(byte~) keyboard_event_scan::$24
(boolean~) keyboard_event_scan::$25
(boolean~) keyboard_event_scan::$26
(byte~) keyboard_event_scan::$27
(byte~) keyboard_event_scan::$28
(boolean~) keyboard_event_scan::$29
(boolean~) keyboard_event_scan::$16
(byte~) keyboard_event_scan::$17
(byte~) keyboard_event_scan::$18
(boolean~) keyboard_event_scan::$19
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2
(boolean~) keyboard_event_scan::$20
(byte~) keyboard_event_scan::$21
(byte~) keyboard_event_scan::$22
(boolean~) keyboard_event_scan::$23
(boolean~) keyboard_event_scan::$24
(byte~) keyboard_event_scan::$25
(byte~) keyboard_event_scan::$26
(boolean~) keyboard_event_scan::$27
(boolean~) keyboard_event_scan::$28
(byte~) keyboard_event_scan::$29
(byte~) keyboard_event_scan::$3
(boolean~) keyboard_event_scan::$30
(byte~) keyboard_event_scan::$31
(byte~) keyboard_event_scan::$4
(boolean~) keyboard_event_scan::$5
(boolean~) keyboard_event_scan::$6
@ -1243,112 +1237,110 @@ keyboard_event_scan: scope:[keyboard_event_scan] from
(byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:keyboard_event_scan::@1
keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8
keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3
(byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row
(byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0
(boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row)
(boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1
if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2
if((boolean~) keyboard_event_scan::$1) goto keyboard_event_scan::@2
to:keyboard_event_scan::@13
keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@1 keyboard_event_scan::@19
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14
to:keyboard_event_scan::@8
keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@1
keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@1 keyboard_event_scan::@14
(byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:keyboard_event_scan::@4
keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@1
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2
to:keyboard_event_scan::@3
keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@4
keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@19
(byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row
(boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@1
to:keyboard_event_scan::@20
keyboard_event_scan::@14: scope:[keyboard_event_scan] from
to:keyboard_event_scan::@2
keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@2 keyboard_event_scan::@5
(byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row)
(byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col)
(boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5
if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4
to:keyboard_event_scan::@14
keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@3 keyboard_event_scan::@5
if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@5
to:keyboard_event_scan::@15
keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@4 keyboard_event_scan::@6
(byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode
(byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col
(boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3
to:keyboard_event_scan::@18
keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@3
(boolean~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$12) goto keyboard_event_scan::@4
to:keyboard_event_scan::@19
keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@4
(boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8
(boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7
if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5
to:keyboard_event_scan::@15
keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@14 keyboard_event_scan::@7
to:keyboard_event_scan::@4
keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@14
if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@6
to:keyboard_event_scan::@16
keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@8
to:keyboard_event_scan::@5
keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15
(byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col)
(byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9
(boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10
if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6
to:keyboard_event_scan::@16
keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17
if((boolean~) keyboard_event_scan::$10) goto keyboard_event_scan::@7
to:keyboard_event_scan::@17
keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 keyboard_event_scan::@18
(byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$11
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
to:keyboard_event_scan::@8
keyboard_event_scan::@17: scope:[keyboard_event_scan] from keyboard_event_scan::@16
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
to:keyboard_event_scan::@7
keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15
(byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
to:keyboard_event_scan::@7
keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 keyboard_event_scan::@6
to:keyboard_event_scan::@5
keyboard_event_scan::@17: scope:[keyboard_event_scan] from
to:keyboard_event_scan::@6
keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@4
*((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan
to:keyboard_event_scan::@8
keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@2
(byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row
(boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1
to:keyboard_event_scan::@20
keyboard_event_scan::@19: scope:[keyboard_event_scan] from
to:keyboard_event_scan::@2
keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@8
keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@17 keyboard_event_scan::@7
to:keyboard_event_scan::@6
keyboard_event_scan::@18: scope:[keyboard_event_scan] from
to:keyboard_event_scan::@7
keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan::@5
*((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan
to:keyboard_event_scan::@3
keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@3
(byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT
(boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17
if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9
(byte~) keyboard_event_scan::$14 ← call keyboard_event_pressed (byte) KEY_LSHIFT
(boolean~) keyboard_event_scan::$15 ← (byte~) keyboard_event_scan::$14 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$16 ← ! (boolean~) keyboard_event_scan::$15
if((boolean~) keyboard_event_scan::$16) goto keyboard_event_scan::@9
to:keyboard_event_scan::@21
keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@20 keyboard_event_scan::@21
(byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT
(boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21
if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10
(byte~) keyboard_event_scan::$18 ← call keyboard_event_pressed (byte) KEY_RSHIFT
(boolean~) keyboard_event_scan::$19 ← (byte~) keyboard_event_scan::$18 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$20 ← ! (boolean~) keyboard_event_scan::$19
if((boolean~) keyboard_event_scan::$20) goto keyboard_event_scan::@10
to:keyboard_event_scan::@22
keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@20
(byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19
(byte~) keyboard_event_scan::$17 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$17
to:keyboard_event_scan::@9
keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@9
(byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL
(boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25
if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11
(byte~) keyboard_event_scan::$22 ← call keyboard_event_pressed (byte) KEY_CTRL
(boolean~) keyboard_event_scan::$23 ← (byte~) keyboard_event_scan::$22 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$24 ← ! (boolean~) keyboard_event_scan::$23
if((boolean~) keyboard_event_scan::$24) goto keyboard_event_scan::@11
to:keyboard_event_scan::@23
keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@9
(byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23
(byte~) keyboard_event_scan::$21 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$21
to:keyboard_event_scan::@10
keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@10 keyboard_event_scan::@23
(byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE
(boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29
if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12
(byte~) keyboard_event_scan::$26 ← call keyboard_event_pressed (byte) KEY_COMMODORE
(boolean~) keyboard_event_scan::$27 ← (byte~) keyboard_event_scan::$26 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$28 ← ! (boolean~) keyboard_event_scan::$27
if((boolean~) keyboard_event_scan::$28) goto keyboard_event_scan::@12
to:keyboard_event_scan::@24
keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@10
(byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27
(byte~) keyboard_event_scan::$25 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$25
to:keyboard_event_scan::@11
keyboard_event_scan::@12: scope:[keyboard_event_scan] from keyboard_event_scan::@11 keyboard_event_scan::@24
to:keyboard_event_scan::@return
keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@11
(byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31
(byte~) keyboard_event_scan::$29 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$29
to:keyboard_event_scan::@12
keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@12
return
@ -1372,15 +1364,14 @@ keyboard_event_pressed::@1: scope:[keyboard_event_pressed] from
to:@7
keyboard_event_get: scope:[keyboard_event_get] from
(boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0
if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1
if((boolean~) keyboard_event_get::$0) goto keyboard_event_get::@1
to:keyboard_event_get::@3
keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@5
(byte) keyboard_events_size ← -- (byte) keyboard_events_size
(byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size)
(byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255
to:keyboard_event_get::@return
keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get
(byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255
(byte) keyboard_events_size ← -- (byte) keyboard_events_size
(byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size)
to:keyboard_event_get::@return
keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get::@1 keyboard_event_get::@2 keyboard_event_get::@3
(byte) keyboard_event_get::return ← (byte) keyboard_event_get::return

@ -442,49 +442,46 @@ proc (signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$0 ← (signed byte) div8s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$1 ← ! (boolean~) div8s::$0
if((boolean~) div8s::$1) goto div8s::@1
if((boolean~) div8s::$0) goto div8s::@1
(byte~) div8s::$1 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$1
goto div8s::@2
div8s::@1:
(signed byte~) div8s::$2 ← - (signed byte) div8s::dividend
(byte~) div8s::$3 ← ((byte)) (signed byte~) div8s::$2
(byte) div8s::dividendu ← (byte~) div8s::$3
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
goto div8s::@2
div8s::@1:
(byte~) div8s::$4 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$4
div8s::@2:
(byte) div8s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$5 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$6 ← ! (boolean~) div8s::$5
if((boolean~) div8s::$6) goto div8s::@3
(signed byte~) div8s::$7 ← - (signed byte) div8s::divisor
(byte~) div8s::$8 ← ((byte)) (signed byte~) div8s::$7
(byte) div8s::divisoru ← (byte~) div8s::$8
(byte/word/dword~) div8s::$9 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$9
(boolean~) div8s::$4 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$4) goto div8s::@3
(byte~) div8s::$5 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$5
goto div8s::@4
div8s::@3:
(byte~) div8s::$10 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$10
(signed byte~) div8s::$6 ← - (signed byte) div8s::divisor
(byte~) div8s::$7 ← ((byte)) (signed byte~) div8s::$6
(byte) div8s::divisoru ← (byte~) div8s::$7
(byte/word/dword~) div8s::$8 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$8
div8s::@4:
(byte~) div8s::$11 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$11
(boolean~) div8s::$12 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$13 ← ! (boolean~) div8s::$12
if((boolean~) div8s::$13) goto div8s::@5
(signed byte~) div8s::$14 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$14
(signed byte~) div8s::$15 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$15
(byte~) div8s::$9 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$9
(boolean~) div8s::$10 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$10) goto div8s::@5
(signed byte~) div8s::$11 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$12 ← - (signed byte~) div8s::$11
(signed byte) rem8s ← (signed byte~) div8s::$12
(signed byte~) div8s::$13 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$14 ← - (signed byte~) div8s::$13
(signed byte) div8s::return ← (signed byte~) div8s::$14
goto div8s::@return
goto div8s::@6
div8s::@5:
(signed byte~) div8s::$16 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$17 ← - (signed byte~) div8s::$16
(signed byte) rem8s ← (signed byte~) div8s::$17
(signed byte~) div8s::$18 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$19 ← - (signed byte~) div8s::$18
(signed byte) div8s::return ← (signed byte~) div8s::$19
(signed byte~) div8s::$15 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$15
(signed byte~) div8s::$16 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$16
goto div8s::@return
div8s::@6:
div8s::@return:
@ -496,49 +493,46 @@ proc (signed word()) div16s((signed word) div16s::dividend , (signed word) div16
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$0 ← (signed word) div16s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$1 ← ! (boolean~) div16s::$0
if((boolean~) div16s::$1) goto div16s::@1
if((boolean~) div16s::$0) goto div16s::@1
(word~) div16s::$1 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$1
goto div16s::@2
div16s::@1:
(signed word~) div16s::$2 ← - (signed word) div16s::dividend
(word~) div16s::$3 ← ((word)) (signed word~) div16s::$2
(word) div16s::dividendu ← (word~) div16s::$3
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
goto div16s::@2
div16s::@1:
(word~) div16s::$4 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$4
div16s::@2:
(word) div16s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$5 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$6 ← ! (boolean~) div16s::$5
if((boolean~) div16s::$6) goto div16s::@3
(signed word~) div16s::$7 ← - (signed word) div16s::divisor
(word~) div16s::$8 ← ((word)) (signed word~) div16s::$7
(word) div16s::divisoru ← (word~) div16s::$8
(byte/word/dword~) div16s::$9 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$9
(boolean~) div16s::$4 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$4) goto div16s::@3
(word~) div16s::$5 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$5
goto div16s::@4
div16s::@3:
(word~) div16s::$10 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$10
(signed word~) div16s::$6 ← - (signed word) div16s::divisor
(word~) div16s::$7 ← ((word)) (signed word~) div16s::$6
(word) div16s::divisoru ← (word~) div16s::$7
(byte/word/dword~) div16s::$8 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$8
div16s::@4:
(word~) div16s::$11 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$11
(boolean~) div16s::$12 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$13 ← ! (boolean~) div16s::$12
if((boolean~) div16s::$13) goto div16s::@5
(signed word~) div16s::$14 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$14
(signed word~) div16s::$15 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$15
(word~) div16s::$9 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$9
(boolean~) div16s::$10 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$10) goto div16s::@5
(signed word~) div16s::$11 ← ((signed word)) (word) rem16u
(signed word~) div16s::$12 ← - (signed word~) div16s::$11
(signed word) rem16s ← (signed word~) div16s::$12
(signed word~) div16s::$13 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$14 ← - (signed word~) div16s::$13
(signed word) div16s::return ← (signed word~) div16s::$14
goto div16s::@return
goto div16s::@6
div16s::@5:
(signed word~) div16s::$16 ← ((signed word)) (word) rem16u
(signed word~) div16s::$17 ← - (signed word~) div16s::$16
(signed word) rem16s ← (signed word~) div16s::$17
(signed word~) div16s::$18 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$19 ← - (signed word~) div16s::$18
(signed word) div16s::return ← (signed word~) div16s::$19
(signed word~) div16s::$15 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$15
(signed word~) div16s::$16 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$16
goto div16s::@return
div16s::@6:
div16s::@return:
@ -775,25 +769,22 @@ endproc // lin16u_gen()
SYMBOLS
(signed word()) div16s((signed word) div16s::dividend , (signed word) div16s::divisor)
(boolean~) div16s::$0
(boolean~) div16s::$1
(word~) div16s::$10
(word~) div16s::$11
(boolean~) div16s::$12
(boolean~) div16s::$13
(word~) div16s::$1
(boolean~) div16s::$10
(signed word~) div16s::$11
(signed word~) div16s::$12
(signed word~) div16s::$13
(signed word~) div16s::$14
(signed word~) div16s::$15
(signed word~) div16s::$16
(signed word~) div16s::$17
(signed word~) div16s::$18
(signed word~) div16s::$19
(signed word~) div16s::$2
(word~) div16s::$3
(word~) div16s::$4
(boolean~) div16s::$5
(boolean~) div16s::$6
(signed word~) div16s::$7
(word~) div16s::$8
(byte/word/dword~) div16s::$9
(boolean~) div16s::$4
(word~) div16s::$5
(signed word~) div16s::$6
(word~) div16s::$7
(byte/word/dword~) div16s::$8
(word~) div16s::$9
(label) div16s::@1
(label) div16s::@2
(label) div16s::@3
@ -828,25 +819,22 @@ SYMBOLS
(dword) div32u16u::return
(signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::divisor)
(boolean~) div8s::$0
(boolean~) div8s::$1
(byte~) div8s::$10
(byte~) div8s::$11
(boolean~) div8s::$12
(boolean~) div8s::$13
(byte~) div8s::$1
(boolean~) div8s::$10
(signed byte~) div8s::$11
(signed byte~) div8s::$12
(signed byte~) div8s::$13
(signed byte~) div8s::$14
(signed byte~) div8s::$15
(signed byte~) div8s::$16
(signed byte~) div8s::$17
(signed byte~) div8s::$18
(signed byte~) div8s::$19
(signed byte~) div8s::$2
(byte~) div8s::$3
(byte~) div8s::$4
(boolean~) div8s::$5
(boolean~) div8s::$6
(signed byte~) div8s::$7
(byte~) div8s::$8
(byte/word/dword~) div8s::$9
(boolean~) div8s::$4
(byte~) div8s::$5
(signed byte~) div8s::$6
(byte~) div8s::$7
(byte/word/dword~) div8s::$8
(byte~) div8s::$9
(label) div8s::@1
(label) div8s::@2
(label) div8s::@3
@ -1229,60 +1217,57 @@ div8s: scope:[div8s] from
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$0 ← (signed byte) div8s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$1 ← ! (boolean~) div8s::$0
if((boolean~) div8s::$1) goto div8s::@1
if((boolean~) div8s::$0) goto div8s::@1
to:div8s::@7
div8s::@1: scope:[div8s] from div8s div8s::@8
(byte~) div8s::$4 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$4
to:div8s::@2
div8s::@7: scope:[div8s] from div8s
(signed byte~) div8s::$2 ← - (signed byte) div8s::dividend
(byte~) div8s::$3 ← ((byte)) (signed byte~) div8s::$2
(byte) div8s::dividendu ← (byte~) div8s::$3
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:div8s::@2
div8s::@7: scope:[div8s] from div8s
(byte~) div8s::$1 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$1
to:div8s::@2
div8s::@2: scope:[div8s] from div8s::@1 div8s::@7
(byte) div8s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$5 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$6 ← ! (boolean~) div8s::$5
if((boolean~) div8s::$6) goto div8s::@3
(boolean~) div8s::$4 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$4) goto div8s::@3
to:div8s::@9
div8s::@8: scope:[div8s] from
to:div8s::@1
div8s::@3: scope:[div8s] from div8s::@10 div8s::@2
(byte~) div8s::$10 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$10
(signed byte~) div8s::$6 ← - (signed byte) div8s::divisor
(byte~) div8s::$7 ← ((byte)) (signed byte~) div8s::$6
(byte) div8s::divisoru ← (byte~) div8s::$7
(byte/word/dword~) div8s::$8 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$8
to:div8s::@4
div8s::@9: scope:[div8s] from div8s::@2
(signed byte~) div8s::$7 ← - (signed byte) div8s::divisor
(byte~) div8s::$8 ← ((byte)) (signed byte~) div8s::$7
(byte) div8s::divisoru ← (byte~) div8s::$8
(byte/word/dword~) div8s::$9 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$9
(byte~) div8s::$5 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$5
to:div8s::@4
div8s::@4: scope:[div8s] from div8s::@3 div8s::@9
(byte~) div8s::$11 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$11
(boolean~) div8s::$12 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$13 ← ! (boolean~) div8s::$12
if((boolean~) div8s::$13) goto div8s::@5
(byte~) div8s::$9 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$9
(boolean~) div8s::$10 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$10) goto div8s::@5
to:div8s::@11
div8s::@10: scope:[div8s] from
to:div8s::@3
div8s::@5: scope:[div8s] from div8s::@13 div8s::@4
(signed byte~) div8s::$16 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$17 ← - (signed byte~) div8s::$16
(signed byte) rem8s ← (signed byte~) div8s::$17
(signed byte~) div8s::$18 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$19 ← - (signed byte~) div8s::$18
(signed byte) div8s::return ← (signed byte~) div8s::$19
(signed byte~) div8s::$15 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$15
(signed byte~) div8s::$16 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$16
to:div8s::@return
div8s::@11: scope:[div8s] from div8s::@4
(signed byte~) div8s::$14 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$14
(signed byte~) div8s::$15 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$15
(signed byte~) div8s::$11 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$12 ← - (signed byte~) div8s::$11
(signed byte) rem8s ← (signed byte~) div8s::$12
(signed byte~) div8s::$13 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$14 ← - (signed byte~) div8s::$13
(signed byte) div8s::return ← (signed byte~) div8s::$14
to:div8s::@return
div8s::@return: scope:[div8s] from div8s::@11 div8s::@5 div8s::@6
(signed byte) div8s::return ← (signed byte) div8s::return
@ -1303,60 +1288,57 @@ div16s: scope:[div16s] from
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$0 ← (signed word) div16s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$1 ← ! (boolean~) div16s::$0
if((boolean~) div16s::$1) goto div16s::@1
if((boolean~) div16s::$0) goto div16s::@1
to:div16s::@7
div16s::@1: scope:[div16s] from div16s div16s::@8
(word~) div16s::$4 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$4
to:div16s::@2
div16s::@7: scope:[div16s] from div16s
(signed word~) div16s::$2 ← - (signed word) div16s::dividend
(word~) div16s::$3 ← ((word)) (signed word~) div16s::$2
(word) div16s::dividendu ← (word~) div16s::$3
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:div16s::@2
div16s::@7: scope:[div16s] from div16s
(word~) div16s::$1 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$1
to:div16s::@2
div16s::@2: scope:[div16s] from div16s::@1 div16s::@7
(word) div16s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$5 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$6 ← ! (boolean~) div16s::$5
if((boolean~) div16s::$6) goto div16s::@3
(boolean~) div16s::$4 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$4) goto div16s::@3
to:div16s::@9
div16s::@8: scope:[div16s] from
to:div16s::@1
div16s::@3: scope:[div16s] from div16s::@10 div16s::@2
(word~) div16s::$10 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$10
(signed word~) div16s::$6 ← - (signed word) div16s::divisor
(word~) div16s::$7 ← ((word)) (signed word~) div16s::$6
(word) div16s::divisoru ← (word~) div16s::$7
(byte/word/dword~) div16s::$8 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$8
to:div16s::@4
div16s::@9: scope:[div16s] from div16s::@2
(signed word~) div16s::$7 ← - (signed word) div16s::divisor
(word~) div16s::$8 ← ((word)) (signed word~) div16s::$7
(word) div16s::divisoru ← (word~) div16s::$8
(byte/word/dword~) div16s::$9 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$9
(word~) div16s::$5 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$5
to:div16s::@4
div16s::@4: scope:[div16s] from div16s::@3 div16s::@9
(word~) div16s::$11 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$11
(boolean~) div16s::$12 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$13 ← ! (boolean~) div16s::$12
if((boolean~) div16s::$13) goto div16s::@5
(word~) div16s::$9 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$9
(boolean~) div16s::$10 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$10) goto div16s::@5
to:div16s::@11
div16s::@10: scope:[div16s] from
to:div16s::@3
div16s::@5: scope:[div16s] from div16s::@13 div16s::@4
(signed word~) div16s::$16 ← ((signed word)) (word) rem16u
(signed word~) div16s::$17 ← - (signed word~) div16s::$16
(signed word) rem16s ← (signed word~) div16s::$17
(signed word~) div16s::$18 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$19 ← - (signed word~) div16s::$18
(signed word) div16s::return ← (signed word~) div16s::$19
(signed word~) div16s::$15 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$15
(signed word~) div16s::$16 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$16
to:div16s::@return
div16s::@11: scope:[div16s] from div16s::@4
(signed word~) div16s::$14 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$14
(signed word~) div16s::$15 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$15
(signed word~) div16s::$11 ← ((signed word)) (word) rem16u
(signed word~) div16s::$12 ← - (signed word~) div16s::$11
(signed word) rem16s ← (signed word~) div16s::$12
(signed word~) div16s::$13 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$14 ← - (signed word~) div16s::$13
(signed word) div16s::return ← (signed word~) div16s::$14
to:div16s::@return
div16s::@return: scope:[div16s] from div16s::@11 div16s::@5 div16s::@6
(signed word) div16s::return ← (signed word) div16s::return

@ -13,12 +13,12 @@ mode_ctrl: {
b2:
lda BORDERCOL
cmp #$ff
bne b4
lda #2
beq b4
lda #3
sta BORDERCOL
jmp b2
b4:
lda #3
lda #2
sta BORDERCOL
jmp b2
}

@ -23,13 +23,13 @@ mode_ctrl: scope:[mode_ctrl] from main::@1
to:mode_ctrl::@2
mode_ctrl::@2: scope:[mode_ctrl] from mode_ctrl mode_ctrl::@4 mode_ctrl::@8
[10] (byte) mode_ctrl::before#0 ← *((const byte*) BORDERCOL#0) [ mode_ctrl::before#0 ] ( main:2::mode_ctrl:7 [ mode_ctrl::before#0 ] )
[11] if((byte) mode_ctrl::before#0!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 [ ] ( main:2::mode_ctrl:7 [ ] )
[11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 [ ] ( main:2::mode_ctrl:7 [ ] )
to:mode_ctrl::@8
mode_ctrl::@8: scope:[mode_ctrl] from mode_ctrl::@2
[12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::mode_ctrl:7 [ ] )
[12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::mode_ctrl:7 [ ] )
to:mode_ctrl::@2
mode_ctrl::@4: scope:[mode_ctrl] from mode_ctrl::@2
[13] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::mode_ctrl:7 [ ] )
[13] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::mode_ctrl:7 [ ] )
to:mode_ctrl::@2
print_cls: scope:[print_cls] from main
[14] phi() [ ] ( main:2::print_cls:5 [ ] )

@ -54,12 +54,11 @@ mode_ctrl::@1:
mode_ctrl::@2:
(byte) mode_ctrl::before ← *((byte*) BORDERCOL)
(boolean~) mode_ctrl::$0 ← (byte) mode_ctrl::before == (byte/word/signed word/dword/signed dword) 255
(boolean~) mode_ctrl::$1 ← ! (boolean~) mode_ctrl::$0
if((boolean~) mode_ctrl::$1) goto mode_ctrl::@4
*((byte*) BORDERCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 2
if((boolean~) mode_ctrl::$0) goto mode_ctrl::@4
*((byte*) BORDERCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 3
goto mode_ctrl::@5
mode_ctrl::@4:
*((byte*) BORDERCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 3
*((byte*) BORDERCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 2
mode_ctrl::@5:
goto mode_ctrl::@1
mode_ctrl::@3:
@ -77,7 +76,6 @@ SYMBOLS
(label) main::@return
(void()) mode_ctrl()
(boolean~) mode_ctrl::$0
(boolean~) mode_ctrl::$1
(label) mode_ctrl::@1
(label) mode_ctrl::@2
(label) mode_ctrl::@3
@ -133,8 +131,7 @@ mode_ctrl::@1: scope:[mode_ctrl] from mode_ctrl mode_ctrl::@5
mode_ctrl::@2: scope:[mode_ctrl] from mode_ctrl::@1 mode_ctrl::@7
(byte) mode_ctrl::before ← *((byte*) BORDERCOL)
(boolean~) mode_ctrl::$0 ← (byte) mode_ctrl::before == (byte/word/signed word/dword/signed dword) 255
(boolean~) mode_ctrl::$1 ← ! (boolean~) mode_ctrl::$0
if((boolean~) mode_ctrl::$1) goto mode_ctrl::@4
if((boolean~) mode_ctrl::$0) goto mode_ctrl::@4
to:mode_ctrl::@8
mode_ctrl::@6: scope:[mode_ctrl] from mode_ctrl::@1
to:mode_ctrl::@3
@ -143,10 +140,10 @@ mode_ctrl::@3: scope:[mode_ctrl] from mode_ctrl::@10 mode_ctrl::@6
mode_ctrl::@7: scope:[mode_ctrl] from
to:mode_ctrl::@2
mode_ctrl::@4: scope:[mode_ctrl] from mode_ctrl::@2 mode_ctrl::@9
*((byte*) BORDERCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 3
*((byte*) BORDERCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 2
to:mode_ctrl::@5
mode_ctrl::@8: scope:[mode_ctrl] from mode_ctrl::@2
*((byte*) BORDERCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 2
*((byte*) BORDERCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 3
to:mode_ctrl::@5
mode_ctrl::@5: scope:[mode_ctrl] from mode_ctrl::@4 mode_ctrl::@8
to:mode_ctrl::@1
@ -215,14 +212,13 @@ mode_ctrl::@1: scope:[mode_ctrl] from mode_ctrl mode_ctrl::@4 mode_ctrl::@8
mode_ctrl::@2: scope:[mode_ctrl] from mode_ctrl::@1
(byte) mode_ctrl::before#0 ← *((byte*) BORDERCOL#0)
(boolean~) mode_ctrl::$0 ← (byte) mode_ctrl::before#0 == (byte/word/signed word/dword/signed dword) 255
(boolean~) mode_ctrl::$1 ← ! (boolean~) mode_ctrl::$0
if((boolean~) mode_ctrl::$1) goto mode_ctrl::@4
if((boolean~) mode_ctrl::$0) goto mode_ctrl::@4
to:mode_ctrl::@8
mode_ctrl::@4: scope:[mode_ctrl] from mode_ctrl::@2
*((byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3
*((byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2
to:mode_ctrl::@1
mode_ctrl::@8: scope:[mode_ctrl] from mode_ctrl::@2
*((byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2
*((byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3
to:mode_ctrl::@1
mode_ctrl::@return: scope:[mode_ctrl] from mode_ctrl::@1
return
@ -249,7 +245,6 @@ SYMBOL TABLE SSA
(label) main::@return
(void()) mode_ctrl()
(boolean~) mode_ctrl::$0
(boolean~) mode_ctrl::$1
(label) mode_ctrl::@1
(label) mode_ctrl::@2
(label) mode_ctrl::@4
@ -271,11 +266,9 @@ OPTIMIZING CONTROL FLOW GRAPH
Culled Empty Block (label) main::@2
Culled Empty Block (label) @4
Succesful SSA optimization Pass2CullEmptyBlocks
Inversing boolean not (boolean~) mode_ctrl::$1 ← (byte) mode_ctrl::before#0 != (byte/word/signed word/dword/signed dword) 255 from (boolean~) mode_ctrl::$0 ← (byte) mode_ctrl::before#0 == (byte/word/signed word/dword/signed dword) 255
Succesful SSA optimization Pass2UnaryNotSimplification
Not aliassing across scopes: print_cls::sc#0 SCREEN#0
Simple Condition (boolean~) print_cls::$1 if((byte*) print_cls::sc#1!=(byte*~) print_cls::$0) goto print_cls::@1
Simple Condition (boolean~) mode_ctrl::$1 if((byte) mode_ctrl::before#0!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4
Simple Condition (boolean~) mode_ctrl::$0 if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4
Succesful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) BORDERCOL#0 = ((byte*))53280
Constant (const byte*) SCREEN#0 = ((byte*))1024
@ -352,13 +345,13 @@ mode_ctrl: scope:[mode_ctrl] from main::@1
to:mode_ctrl::@2
mode_ctrl::@2: scope:[mode_ctrl] from mode_ctrl mode_ctrl::@4 mode_ctrl::@8
[10] (byte) mode_ctrl::before#0 ← *((const byte*) BORDERCOL#0) [ mode_ctrl::before#0 ] ( main:2::mode_ctrl:7 [ mode_ctrl::before#0 ] )
[11] if((byte) mode_ctrl::before#0!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 [ ] ( main:2::mode_ctrl:7 [ ] )
[11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 [ ] ( main:2::mode_ctrl:7 [ ] )
to:mode_ctrl::@8
mode_ctrl::@8: scope:[mode_ctrl] from mode_ctrl::@2
[12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::mode_ctrl:7 [ ] )
[12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::mode_ctrl:7 [ ] )
to:mode_ctrl::@2
mode_ctrl::@4: scope:[mode_ctrl] from mode_ctrl::@2
[13] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::mode_ctrl:7 [ ] )
[13] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::mode_ctrl:7 [ ] )
to:mode_ctrl::@2
print_cls: scope:[print_cls] from main
[14] phi() [ ] ( main:2::print_cls:5 [ ] )
@ -485,21 +478,21 @@ mode_ctrl: {
//SEG20 [10] (byte) mode_ctrl::before#0 ← *((const byte*) BORDERCOL#0) [ mode_ctrl::before#0 ] ( main:2::mode_ctrl:7 [ mode_ctrl::before#0 ] ) -- vbuz1=_deref_pbuc1
lda BORDERCOL
sta before
//SEG21 [11] if((byte) mode_ctrl::before#0!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 [ ] ( main:2::mode_ctrl:7 [ ] ) -- vbuz1_neq_vbuc1_then_la1
//SEG21 [11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 [ ] ( main:2::mode_ctrl:7 [ ] ) -- vbuz1_eq_vbuc1_then_la1
lda before
cmp #$ff
bne b4
beq b4
jmp b8
//SEG22 mode_ctrl::@8
b8:
//SEG23 [12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::mode_ctrl:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #2
//SEG23 [12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::mode_ctrl:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #3
sta BORDERCOL
jmp b2
//SEG24 mode_ctrl::@4
b4:
//SEG25 [13] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::mode_ctrl:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #3
//SEG25 [13] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::mode_ctrl:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #2
sta BORDERCOL
jmp b2
}
@ -544,8 +537,8 @@ print_cls: {
}
REGISTER UPLIFT POTENTIAL REGISTERS
Statement [12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::mode_ctrl:7 [ ] ) always clobbers reg byte a
Statement [13] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::mode_ctrl:7 [ ] ) always clobbers reg byte a
Statement [12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::mode_ctrl:7 [ ] ) always clobbers reg byte a
Statement [13] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::mode_ctrl:7 [ ] ) always clobbers reg byte a
Statement [16] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] ) always clobbers reg byte a reg byte y
Statement [18] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] ) always clobbers reg byte a
Potential registers zp ZP_WORD:2 [ print_cls::sc#2 print_cls::sc#1 ] : zp ZP_WORD:2 ,
@ -614,20 +607,20 @@ mode_ctrl: {
b2:
//SEG20 [10] (byte) mode_ctrl::before#0 ← *((const byte*) BORDERCOL#0) [ mode_ctrl::before#0 ] ( main:2::mode_ctrl:7 [ mode_ctrl::before#0 ] ) -- vbuaa=_deref_pbuc1
lda BORDERCOL
//SEG21 [11] if((byte) mode_ctrl::before#0!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 [ ] ( main:2::mode_ctrl:7 [ ] ) -- vbuaa_neq_vbuc1_then_la1
//SEG21 [11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 [ ] ( main:2::mode_ctrl:7 [ ] ) -- vbuaa_eq_vbuc1_then_la1
cmp #$ff
bne b4
beq b4
jmp b8
//SEG22 mode_ctrl::@8
b8:
//SEG23 [12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::mode_ctrl:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #2
//SEG23 [12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::mode_ctrl:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #3
sta BORDERCOL
jmp b2
//SEG24 mode_ctrl::@4
b4:
//SEG25 [13] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::mode_ctrl:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #3
//SEG25 [13] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::mode_ctrl:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #2
sta BORDERCOL
jmp b2
}
@ -769,18 +762,18 @@ mode_ctrl: {
b2:
//SEG20 [10] (byte) mode_ctrl::before#0 ← *((const byte*) BORDERCOL#0) [ mode_ctrl::before#0 ] ( main:2::mode_ctrl:7 [ mode_ctrl::before#0 ] ) -- vbuaa=_deref_pbuc1
lda BORDERCOL
//SEG21 [11] if((byte) mode_ctrl::before#0!=(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 [ ] ( main:2::mode_ctrl:7 [ ] ) -- vbuaa_neq_vbuc1_then_la1
//SEG21 [11] if((byte) mode_ctrl::before#0==(byte/word/signed word/dword/signed dword) 255) goto mode_ctrl::@4 [ ] ( main:2::mode_ctrl:7 [ ] ) -- vbuaa_eq_vbuc1_then_la1
cmp #$ff
bne b4
beq b4
//SEG22 mode_ctrl::@8
//SEG23 [12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::mode_ctrl:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #2
//SEG23 [12] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::mode_ctrl:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #3
sta BORDERCOL
jmp b2
//SEG24 mode_ctrl::@4
b4:
//SEG25 [13] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:2::mode_ctrl:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #3
//SEG25 [13] *((const byte*) BORDERCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 2 [ ] ( main:2::mode_ctrl:7 [ ] ) -- _deref_pbuc1=vbuc2
lda #2
sta BORDERCOL
jmp b2
}

@ -3,20 +3,22 @@
.pc = $80d "Program"
jsr main
main: {
ldy #0
ldx #$64
ldx #0
lda #$64
b1:
dex
cpx #0
sec
sbc #1
cmp #0
bne b2
rts
b2:
cpx #$32
bcc b4
beq b4
iny
cmp #$32
beq !+
bcs b4
!:
dex
jmp b1
b4:
dey
inx
jmp b1
}

@ -20,11 +20,11 @@ main::@return: scope:[main] from main::@1
[8] return [ ] ( main:2 [ ] )
to:@return
main::@2: scope:[main] from main::@1
[9] if((byte) main::i#1<=(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] )
[9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] )
to:main::@8
main::@8: scope:[main] from main::@2
[10] (byte) main::s#2 ← ++ (byte) main::s#3 [ main::i#1 main::s#2 ] ( main:2 [ main::i#1 main::s#2 ] )
[10] (byte) main::s#2 ← -- (byte) main::s#3 [ main::i#1 main::s#2 ] ( main:2 [ main::i#1 main::s#2 ] )
to:main::@1
main::@4: scope:[main] from main::@2
[11] (byte) main::s#1 ← -- (byte) main::s#3 [ main::i#1 main::s#1 ] ( main:2 [ main::i#1 main::s#1 ] )
[11] (byte) main::s#1 ← ++ (byte) main::s#3 [ main::i#1 main::s#1 ] ( main:2 [ main::i#1 main::s#1 ] )
to:main::@1

@ -12,8 +12,8 @@ void main() {
}
Adding pre/post-modifier (byte) main::i ← -- (byte) main::i
Adding pre/post-modifier (byte) main::s ← ++ (byte) main::s
Adding pre/post-modifier (byte) main::s ← -- (byte) main::s
Adding pre/post-modifier (byte) main::s ← ++ (byte) main::s
STATEMENTS
proc (void()) main()
@ -26,12 +26,11 @@ main::@1:
goto main::@3
main::@2:
(boolean~) main::$1 ← (byte) main::i > (byte/signed byte/word/signed word/dword/signed dword) 50
(boolean~) main::$2 ← ! (boolean~) main::$1
if((boolean~) main::$2) goto main::@4
(byte) main::s ← ++ (byte) main::s
if((boolean~) main::$1) goto main::@4
(byte) main::s ← -- (byte) main::s
goto main::@5
main::@4:
(byte) main::s ← -- (byte) main::s
(byte) main::s ← ++ (byte) main::s
main::@5:
goto main::@1
main::@3:
@ -44,7 +43,6 @@ SYMBOLS
(void()) main()
(boolean~) main::$0
(boolean~) main::$1
(boolean~) main::$2
(label) main::@1
(label) main::@2
(label) main::@3
@ -68,8 +66,7 @@ main::@1: scope:[main] from main main::@5
to:main::@6
main::@2: scope:[main] from main::@1 main::@7
(boolean~) main::$1 ← (byte) main::i > (byte/signed byte/word/signed word/dword/signed dword) 50
(boolean~) main::$2 ← ! (boolean~) main::$1
if((boolean~) main::$2) goto main::@4
if((boolean~) main::$1) goto main::@4
to:main::@8
main::@6: scope:[main] from main::@1
to:main::@3
@ -78,10 +75,10 @@ main::@3: scope:[main] from main::@10 main::@6
main::@7: scope:[main] from
to:main::@2
main::@4: scope:[main] from main::@2 main::@9
(byte) main::s ← -- (byte) main::s
(byte) main::s ← ++ (byte) main::s
to:main::@5
main::@8: scope:[main] from main::@2
(byte) main::s ← ++ (byte) main::s
(byte) main::s ← -- (byte) main::s
to:main::@5
main::@5: scope:[main] from main::@4 main::@8
to:main::@1
@ -127,18 +124,17 @@ main::@2: scope:[main] from main::@1
(byte) main::s#5 ← phi( main::@1/(byte) main::s#6 )
(byte) main::i#3 ← phi( main::@1/(byte) main::i#1 )
(boolean~) main::$1 ← (byte) main::i#3 > (byte/signed byte/word/signed word/dword/signed dword) 50
(boolean~) main::$2 ← ! (boolean~) main::$1
if((boolean~) main::$2) goto main::@4
if((boolean~) main::$1) goto main::@4
to:main::@8
main::@4: scope:[main] from main::@2
(byte) main::i#4 ← phi( main::@2/(byte) main::i#3 )
(byte) main::s#3 ← phi( main::@2/(byte) main::s#5 )
(byte) main::s#1 ← -- (byte) main::s#3
(byte) main::s#1 ← ++ (byte) main::s#3
to:main::@1
main::@8: scope:[main] from main::@2
(byte) main::i#5 ← phi( main::@2/(byte) main::i#3 )
(byte) main::s#4 ← phi( main::@2/(byte) main::s#5 )
(byte) main::s#2 ← ++ (byte) main::s#4
(byte) main::s#2 ← -- (byte) main::s#4
to:main::@1
main::@return: scope:[main] from main::@1
return
@ -158,7 +154,6 @@ SYMBOL TABLE SSA
(void()) main()
(boolean~) main::$0
(boolean~) main::$1
(boolean~) main::$2
(label) main::@1
(label) main::@2
(label) main::@4
@ -183,13 +178,11 @@ SYMBOL TABLE SSA
OPTIMIZING CONTROL FLOW GRAPH
Culled Empty Block (label) @2
Succesful SSA optimization Pass2CullEmptyBlocks
Inversing boolean not (boolean~) main::$2 ← (byte) main::i#3 <= (byte/signed byte/word/signed word/dword/signed dword) 50 from (boolean~) main::$1 ← (byte) main::i#3 > (byte/signed byte/word/signed word/dword/signed dword) 50
Succesful SSA optimization Pass2UnaryNotSimplification
Alias (byte) main::i#1 = (byte) main::i#3 (byte) main::i#4 (byte) main::i#5
Alias (byte) main::s#3 = (byte) main::s#5 (byte) main::s#6 (byte) main::s#4
Succesful SSA optimization Pass2AliasElimination
Simple Condition (boolean~) main::$0 if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2
Simple Condition (boolean~) main::$2 if((byte) main::i#1<=(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4
Simple Condition (boolean~) main::$1 if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4
Succesful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte) main::i#0 = 100
Constant (const byte) main::s#0 = 0
@ -257,13 +250,13 @@ main::@return: scope:[main] from main::@1
[8] return [ ] ( main:2 [ ] )
to:@return
main::@2: scope:[main] from main::@1
[9] if((byte) main::i#1<=(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] )
[9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] )
to:main::@8
main::@8: scope:[main] from main::@2
[10] (byte) main::s#2 ← ++ (byte) main::s#3 [ main::i#1 main::s#2 ] ( main:2 [ main::i#1 main::s#2 ] )
[10] (byte) main::s#2 ← -- (byte) main::s#3 [ main::i#1 main::s#2 ] ( main:2 [ main::i#1 main::s#2 ] )
to:main::@1
main::@4: scope:[main] from main::@2
[11] (byte) main::s#1 ← -- (byte) main::s#3 [ main::i#1 main::s#1 ] ( main:2 [ main::i#1 main::s#1 ] )
[11] (byte) main::s#1 ← ++ (byte) main::s#3 [ main::i#1 main::s#1 ] ( main:2 [ main::i#1 main::s#1 ] )
to:main::@1
DOMINATORS
@ -360,15 +353,17 @@ main: {
rts
//SEG18 main::@2
b2:
//SEG19 [9] if((byte) main::i#1<=(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuz1_le_vbuc1_then_la1
lda #$32
cmp i
//SEG19 [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuz1_gt_vbuc1_then_la1
lda i
cmp #$32
beq !+
bcs b4
!:
jmp b8
//SEG20 main::@8
b8:
//SEG21 [10] (byte) main::s#2 ← ++ (byte) main::s#3 [ main::i#1 main::s#2 ] ( main:2 [ main::i#1 main::s#2 ] ) -- vbuz1=_inc_vbuz1
inc s
//SEG21 [10] (byte) main::s#2 ← -- (byte) main::s#3 [ main::i#1 main::s#2 ] ( main:2 [ main::i#1 main::s#2 ] ) -- vbuz1=_dec_vbuz1
dec s
//SEG22 [5] phi from main::@4 main::@8 to main::@1 [phi:main::@4/main::@8->main::@1]
b1_from_b4:
b1_from_b8:
@ -377,8 +372,8 @@ main: {
jmp b1
//SEG25 main::@4
b4:
//SEG26 [11] (byte) main::s#1 ← -- (byte) main::s#3 [ main::i#1 main::s#1 ] ( main:2 [ main::i#1 main::s#1 ] ) -- vbuz1=_dec_vbuz1
dec s
//SEG26 [11] (byte) main::s#1 ← ++ (byte) main::s#3 [ main::i#1 main::s#1 ] ( main:2 [ main::i#1 main::s#1 ] ) -- vbuz1=_inc_vbuz1
inc s
jmp b1_from_b4
}
@ -390,8 +385,8 @@ REGISTER UPLIFT SCOPES
Uplift Scope [main] 55: zp ZP_BYTE:3 [ main::s#3 main::s#1 main::s#2 ] 44: zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
Uplift Scope []
Uplifting [main] best 383 combination reg byte y [ main::s#3 main::s#1 main::s#2 ] reg byte x [ main::i#2 main::i#1 ]
Uplifting [] best 383 combination
Uplifting [main] best 403 combination reg byte x [ main::s#3 main::s#1 main::s#2 ] reg byte a [ main::i#2 main::i#1 ]
Uplifting [] best 403 combination
ASSEMBLER BEFORE OPTIMIZATION
//SEG0 Basic Upstart
@ -419,17 +414,18 @@ bend:
main: {
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
b1_from_main:
//SEG11 [5] phi (byte) main::s#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1
ldy #0
//SEG12 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@1#1] -- vbuxx=vbuc1
ldx #$64
//SEG11 [5] phi (byte) main::s#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
ldx #0
//SEG12 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@1#1] -- vbuaa=vbuc1
lda #$64
jmp b1
//SEG13 main::@1
b1:
//SEG14 [6] (byte) main::i#1 ← -- (byte) main::i#2 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuxx=_dec_vbuxx
dex
//SEG15 [7] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuxx_gt_0_then_la1
cpx #0
//SEG14 [6] (byte) main::i#1 ← -- (byte) main::i#2 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuaa=_dec_vbuaa
sec
sbc #1
//SEG15 [7] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuaa_gt_0_then_la1
cmp #0
bne b2
jmp breturn
//SEG16 main::@return
@ -438,15 +434,16 @@ main: {
rts
//SEG18 main::@2
b2:
//SEG19 [9] if((byte) main::i#1<=(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuxx_le_vbuc1_then_la1
cpx #$32
bcc b4
beq b4
//SEG19 [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuaa_gt_vbuc1_then_la1
cmp #$32
beq !+
bcs b4
!:
jmp b8
//SEG20 main::@8
b8:
//SEG21 [10] (byte) main::s#2 ← ++ (byte) main::s#3 [ main::i#1 main::s#2 ] ( main:2 [ main::i#1 main::s#2 ] ) -- vbuyy=_inc_vbuyy
iny
//SEG21 [10] (byte) main::s#2 ← -- (byte) main::s#3 [ main::i#1 main::s#2 ] ( main:2 [ main::i#1 main::s#2 ] ) -- vbuxx=_dec_vbuxx
dex
//SEG22 [5] phi from main::@4 main::@8 to main::@1 [phi:main::@4/main::@8->main::@1]
b1_from_b4:
b1_from_b8:
@ -455,8 +452,8 @@ main: {
jmp b1
//SEG25 main::@4
b4:
//SEG26 [11] (byte) main::s#1 ← -- (byte) main::s#3 [ main::i#1 main::s#1 ] ( main:2 [ main::i#1 main::s#1 ] ) -- vbuyy=_dec_vbuyy
dey
//SEG26 [11] (byte) main::s#1 ← ++ (byte) main::s#3 [ main::i#1 main::s#1 ] ( main:2 [ main::i#1 main::s#1 ] ) -- vbuxx=_inc_vbuxx
inx
jmp b1_from_b4
}
@ -498,19 +495,19 @@ FINAL SYMBOL TABLE
(label) main::@8
(label) main::@return
(byte) main::i
(byte) main::i#1 reg byte x 11.0
(byte) main::i#2 reg byte x 33.0
(byte) main::i#1 reg byte a 11.0
(byte) main::i#2 reg byte a 33.0
(byte) main::s
(byte) main::s#1 reg byte y 22.0
(byte) main::s#2 reg byte y 22.0
(byte) main::s#3 reg byte y 11.0
(byte) main::s#1 reg byte x 22.0
(byte) main::s#2 reg byte x 22.0
(byte) main::s#3 reg byte x 11.0
reg byte x [ main::i#2 main::i#1 ]
reg byte y [ main::s#3 main::s#1 main::s#2 ]
reg byte a [ main::i#2 main::i#1 ]
reg byte x [ main::s#3 main::s#1 main::s#2 ]
FINAL ASSEMBLER
Score: 287
Score: 307
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -528,37 +525,39 @@ Score: 287
//SEG9 main
main: {
//SEG10 [5] phi from main to main::@1 [phi:main->main::@1]
//SEG11 [5] phi (byte) main::s#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuyy=vbuc1
ldy #0
//SEG12 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@1#1] -- vbuxx=vbuc1
ldx #$64
//SEG11 [5] phi (byte) main::s#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1
ldx #0
//SEG12 [5] phi (byte) main::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 100 [phi:main->main::@1#1] -- vbuaa=vbuc1
lda #$64
//SEG13 main::@1
b1:
//SEG14 [6] (byte) main::i#1 ← -- (byte) main::i#2 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuxx=_dec_vbuxx
dex
//SEG15 [7] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuxx_gt_0_then_la1
cpx #0
//SEG14 [6] (byte) main::i#1 ← -- (byte) main::i#2 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuaa=_dec_vbuaa
sec
sbc #1
//SEG15 [7] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@2 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuaa_gt_0_then_la1
cmp #0
bne b2
//SEG16 main::@return
//SEG17 [8] return [ ] ( main:2 [ ] )
rts
//SEG18 main::@2
b2:
//SEG19 [9] if((byte) main::i#1<=(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuxx_le_vbuc1_then_la1
cpx #$32
bcc b4
beq b4
//SEG19 [9] if((byte) main::i#1>(byte/signed byte/word/signed word/dword/signed dword) 50) goto main::@4 [ main::s#3 main::i#1 ] ( main:2 [ main::s#3 main::i#1 ] ) -- vbuaa_gt_vbuc1_then_la1
cmp #$32
beq !+
bcs b4
!:
//SEG20 main::@8
//SEG21 [10] (byte) main::s#2 ← ++ (byte) main::s#3 [ main::i#1 main::s#2 ] ( main:2 [ main::i#1 main::s#2 ] ) -- vbuyy=_inc_vbuyy
iny
//SEG21 [10] (byte) main::s#2 ← -- (byte) main::s#3 [ main::i#1 main::s#2 ] ( main:2 [ main::i#1 main::s#2 ] ) -- vbuxx=_dec_vbuxx
dex
//SEG22 [5] phi from main::@4 main::@8 to main::@1 [phi:main::@4/main::@8->main::@1]
//SEG23 [5] phi (byte) main::s#3 = (byte) main::s#1 [phi:main::@4/main::@8->main::@1#0] -- register_copy
//SEG24 [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@4/main::@8->main::@1#1] -- register_copy
jmp b1
//SEG25 main::@4
b4:
//SEG26 [11] (byte) main::s#1 ← -- (byte) main::s#3 [ main::i#1 main::s#1 ] ( main:2 [ main::i#1 main::s#1 ] ) -- vbuyy=_dec_vbuyy
dey
//SEG26 [11] (byte) main::s#1 ← ++ (byte) main::s#3 [ main::i#1 main::s#1 ] ( main:2 [ main::i#1 main::s#1 ] ) -- vbuxx=_inc_vbuxx
inx
jmp b1
}

@ -8,12 +8,12 @@
(label) main::@8
(label) main::@return
(byte) main::i
(byte) main::i#1 reg byte x 11.0
(byte) main::i#2 reg byte x 33.0
(byte) main::i#1 reg byte a 11.0
(byte) main::i#2 reg byte a 33.0
(byte) main::s
(byte) main::s#1 reg byte y 22.0
(byte) main::s#2 reg byte y 22.0
(byte) main::s#3 reg byte y 11.0
(byte) main::s#1 reg byte x 22.0
(byte) main::s#2 reg byte x 22.0
(byte) main::s#3 reg byte x 11.0
reg byte x [ main::i#2 main::i#1 ]
reg byte y [ main::s#3 main::s#1 main::s#2 ]
reg byte a [ main::i#2 main::i#1 ]
reg byte x [ main::s#3 main::s#1 main::s#2 ]

@ -745,9 +745,9 @@ Consolidated array index constant in assignment *(main::line#0+1 + main::$6)
Consolidated array index constant in *(main::line#0+39)
Succesful SSA optimization Pass2ConstantAdditionElimination
Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) main::$6 ← (byte) main::i#2
if() condition always true - replacing block destination if(true) goto main::@1
Succesful SSA optimization Pass2ConstantIfs
Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) main::$6 ← (byte) main::i#2
Removing unused block main::@return
Succesful SSA optimization Pass2EliminateUnusedBlocks
Culled Empty Block (label) main::@13

@ -5177,6 +5177,8 @@ Multiple usages for variable. Not optimizing sub-constant (byte) init::i#2
Multiple usages for variable. Not optimizing sub-constant (byte) place_sprites::spr_x#2
Multiple usages for variable. Not optimizing sub-constant (byte*) gen_sprites::spr#2
Multiple usages for variable. Not optimizing sub-constant (byte*) gen_chargen_sprite::sprite#4
if() condition always true - replacing block destination if(true) goto main::@1
Succesful SSA optimization Pass2ConstantIfs
Fixing inline constructor with getFAC::$0 ← *(memHi#0) w= *(memLo#0)
Succesful SSA optimization Pass2FixInlineConstructors
Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) init::$1 ← (byte) init::i#2
@ -5184,8 +5186,6 @@ Eliminating unused constant (const byte) progress_idx#35
Succesful SSA optimization PassNEliminateUnusedVars
Eliminating Noop Cast (byte*) prepareMEM::mem#0 ← ((byte*)) (word) setFAC::w#5
Succesful SSA optimization Pass2NopCastElimination
if() condition always true - replacing block destination if(true) goto main::@1
Succesful SSA optimization Pass2ConstantIfs
Removing unused block main::@return
Succesful SSA optimization Pass2EliminateUnusedBlocks
Culled Empty Block (label) @41

@ -605,49 +605,46 @@ proc (signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$0 ← (signed byte) div8s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$1 ← ! (boolean~) div8s::$0
if((boolean~) div8s::$1) goto div8s::@1
if((boolean~) div8s::$0) goto div8s::@1
(byte~) div8s::$1 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$1
goto div8s::@2
div8s::@1:
(signed byte~) div8s::$2 ← - (signed byte) div8s::dividend
(byte~) div8s::$3 ← ((byte)) (signed byte~) div8s::$2
(byte) div8s::dividendu ← (byte~) div8s::$3
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
goto div8s::@2
div8s::@1:
(byte~) div8s::$4 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$4
div8s::@2:
(byte) div8s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$5 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$6 ← ! (boolean~) div8s::$5
if((boolean~) div8s::$6) goto div8s::@3
(signed byte~) div8s::$7 ← - (signed byte) div8s::divisor
(byte~) div8s::$8 ← ((byte)) (signed byte~) div8s::$7
(byte) div8s::divisoru ← (byte~) div8s::$8
(byte/word/dword~) div8s::$9 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$9
(boolean~) div8s::$4 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$4) goto div8s::@3
(byte~) div8s::$5 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$5
goto div8s::@4
div8s::@3:
(byte~) div8s::$10 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$10
(signed byte~) div8s::$6 ← - (signed byte) div8s::divisor
(byte~) div8s::$7 ← ((byte)) (signed byte~) div8s::$6
(byte) div8s::divisoru ← (byte~) div8s::$7
(byte/word/dword~) div8s::$8 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$8
div8s::@4:
(byte~) div8s::$11 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$11
(boolean~) div8s::$12 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$13 ← ! (boolean~) div8s::$12
if((boolean~) div8s::$13) goto div8s::@5
(signed byte~) div8s::$14 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$14
(signed byte~) div8s::$15 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$15
(byte~) div8s::$9 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$9
(boolean~) div8s::$10 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$10) goto div8s::@5
(signed byte~) div8s::$11 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$12 ← - (signed byte~) div8s::$11
(signed byte) rem8s ← (signed byte~) div8s::$12
(signed byte~) div8s::$13 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$14 ← - (signed byte~) div8s::$13
(signed byte) div8s::return ← (signed byte~) div8s::$14
goto div8s::@return
goto div8s::@6
div8s::@5:
(signed byte~) div8s::$16 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$17 ← - (signed byte~) div8s::$16
(signed byte) rem8s ← (signed byte~) div8s::$17
(signed byte~) div8s::$18 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$19 ← - (signed byte~) div8s::$18
(signed byte) div8s::return ← (signed byte~) div8s::$19
(signed byte~) div8s::$15 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$15
(signed byte~) div8s::$16 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$16
goto div8s::@return
div8s::@6:
div8s::@return:
@ -659,49 +656,46 @@ proc (signed word()) div16s((signed word) div16s::dividend , (signed word) div16
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$0 ← (signed word) div16s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$1 ← ! (boolean~) div16s::$0
if((boolean~) div16s::$1) goto div16s::@1
if((boolean~) div16s::$0) goto div16s::@1
(word~) div16s::$1 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$1
goto div16s::@2
div16s::@1:
(signed word~) div16s::$2 ← - (signed word) div16s::dividend
(word~) div16s::$3 ← ((word)) (signed word~) div16s::$2
(word) div16s::dividendu ← (word~) div16s::$3
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
goto div16s::@2
div16s::@1:
(word~) div16s::$4 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$4
div16s::@2:
(word) div16s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$5 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$6 ← ! (boolean~) div16s::$5
if((boolean~) div16s::$6) goto div16s::@3
(signed word~) div16s::$7 ← - (signed word) div16s::divisor
(word~) div16s::$8 ← ((word)) (signed word~) div16s::$7
(word) div16s::divisoru ← (word~) div16s::$8
(byte/word/dword~) div16s::$9 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$9
(boolean~) div16s::$4 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$4) goto div16s::@3
(word~) div16s::$5 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$5
goto div16s::@4
div16s::@3:
(word~) div16s::$10 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$10
(signed word~) div16s::$6 ← - (signed word) div16s::divisor
(word~) div16s::$7 ← ((word)) (signed word~) div16s::$6
(word) div16s::divisoru ← (word~) div16s::$7
(byte/word/dword~) div16s::$8 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$8
div16s::@4:
(word~) div16s::$11 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$11
(boolean~) div16s::$12 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$13 ← ! (boolean~) div16s::$12
if((boolean~) div16s::$13) goto div16s::@5
(signed word~) div16s::$14 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$14
(signed word~) div16s::$15 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$15
(word~) div16s::$9 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$9
(boolean~) div16s::$10 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$10) goto div16s::@5
(signed word~) div16s::$11 ← ((signed word)) (word) rem16u
(signed word~) div16s::$12 ← - (signed word~) div16s::$11
(signed word) rem16s ← (signed word~) div16s::$12
(signed word~) div16s::$13 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$14 ← - (signed word~) div16s::$13
(signed word) div16s::return ← (signed word~) div16s::$14
goto div16s::@return
goto div16s::@6
div16s::@5:
(signed word~) div16s::$16 ← ((signed word)) (word) rem16u
(signed word~) div16s::$17 ← - (signed word~) div16s::$16
(signed word) rem16s ← (signed word~) div16s::$17
(signed word~) div16s::$18 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$19 ← - (signed word~) div16s::$18
(signed word) div16s::return ← (signed word~) div16s::$19
(signed word~) div16s::$15 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$15
(signed word~) div16s::$16 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$16
goto div16s::@return
div16s::@6:
div16s::@return:
@ -1204,25 +1198,22 @@ SYMBOLS
(dword) PI_u4f28
(signed word()) div16s((signed word) div16s::dividend , (signed word) div16s::divisor)
(boolean~) div16s::$0
(boolean~) div16s::$1
(word~) div16s::$10
(word~) div16s::$11
(boolean~) div16s::$12
(boolean~) div16s::$13
(word~) div16s::$1
(boolean~) div16s::$10
(signed word~) div16s::$11
(signed word~) div16s::$12
(signed word~) div16s::$13
(signed word~) div16s::$14
(signed word~) div16s::$15
(signed word~) div16s::$16
(signed word~) div16s::$17
(signed word~) div16s::$18
(signed word~) div16s::$19
(signed word~) div16s::$2
(word~) div16s::$3
(word~) div16s::$4
(boolean~) div16s::$5
(boolean~) div16s::$6
(signed word~) div16s::$7
(word~) div16s::$8
(byte/word/dword~) div16s::$9
(boolean~) div16s::$4
(word~) div16s::$5
(signed word~) div16s::$6
(word~) div16s::$7
(byte/word/dword~) div16s::$8
(word~) div16s::$9
(label) div16s::@1
(label) div16s::@2
(label) div16s::@3
@ -1257,25 +1248,22 @@ SYMBOLS
(dword) div32u16u::return
(signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::divisor)
(boolean~) div8s::$0
(boolean~) div8s::$1
(byte~) div8s::$10
(byte~) div8s::$11
(boolean~) div8s::$12
(boolean~) div8s::$13
(byte~) div8s::$1
(boolean~) div8s::$10
(signed byte~) div8s::$11
(signed byte~) div8s::$12
(signed byte~) div8s::$13
(signed byte~) div8s::$14
(signed byte~) div8s::$15
(signed byte~) div8s::$16
(signed byte~) div8s::$17
(signed byte~) div8s::$18
(signed byte~) div8s::$19
(signed byte~) div8s::$2
(byte~) div8s::$3
(byte~) div8s::$4
(boolean~) div8s::$5
(boolean~) div8s::$6
(signed byte~) div8s::$7
(byte~) div8s::$8
(byte/word/dword~) div8s::$9
(boolean~) div8s::$4
(byte~) div8s::$5
(signed byte~) div8s::$6
(byte~) div8s::$7
(byte/word/dword~) div8s::$8
(byte~) div8s::$9
(label) div8s::@1
(label) div8s::@2
(label) div8s::@3
@ -1851,60 +1839,57 @@ div8s: scope:[div8s] from
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$0 ← (signed byte) div8s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$1 ← ! (boolean~) div8s::$0
if((boolean~) div8s::$1) goto div8s::@1
if((boolean~) div8s::$0) goto div8s::@1
to:div8s::@7
div8s::@1: scope:[div8s] from div8s div8s::@8
(byte~) div8s::$4 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$4
to:div8s::@2
div8s::@7: scope:[div8s] from div8s
(signed byte~) div8s::$2 ← - (signed byte) div8s::dividend
(byte~) div8s::$3 ← ((byte)) (signed byte~) div8s::$2
(byte) div8s::dividendu ← (byte~) div8s::$3
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:div8s::@2
div8s::@7: scope:[div8s] from div8s
(byte~) div8s::$1 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$1
to:div8s::@2
div8s::@2: scope:[div8s] from div8s::@1 div8s::@7
(byte) div8s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$5 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$6 ← ! (boolean~) div8s::$5
if((boolean~) div8s::$6) goto div8s::@3
(boolean~) div8s::$4 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$4) goto div8s::@3
to:div8s::@9
div8s::@8: scope:[div8s] from
to:div8s::@1
div8s::@3: scope:[div8s] from div8s::@10 div8s::@2
(byte~) div8s::$10 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$10
(signed byte~) div8s::$6 ← - (signed byte) div8s::divisor
(byte~) div8s::$7 ← ((byte)) (signed byte~) div8s::$6
(byte) div8s::divisoru ← (byte~) div8s::$7
(byte/word/dword~) div8s::$8 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$8
to:div8s::@4
div8s::@9: scope:[div8s] from div8s::@2
(signed byte~) div8s::$7 ← - (signed byte) div8s::divisor
(byte~) div8s::$8 ← ((byte)) (signed byte~) div8s::$7
(byte) div8s::divisoru ← (byte~) div8s::$8
(byte/word/dword~) div8s::$9 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$9
(byte~) div8s::$5 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$5
to:div8s::@4
div8s::@4: scope:[div8s] from div8s::@3 div8s::@9
(byte~) div8s::$11 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$11
(boolean~) div8s::$12 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$13 ← ! (boolean~) div8s::$12
if((boolean~) div8s::$13) goto div8s::@5
(byte~) div8s::$9 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$9
(boolean~) div8s::$10 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$10) goto div8s::@5
to:div8s::@11
div8s::@10: scope:[div8s] from
to:div8s::@3
div8s::@5: scope:[div8s] from div8s::@13 div8s::@4
(signed byte~) div8s::$16 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$17 ← - (signed byte~) div8s::$16
(signed byte) rem8s ← (signed byte~) div8s::$17
(signed byte~) div8s::$18 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$19 ← - (signed byte~) div8s::$18
(signed byte) div8s::return ← (signed byte~) div8s::$19
(signed byte~) div8s::$15 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$15
(signed byte~) div8s::$16 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$16
to:div8s::@return
div8s::@11: scope:[div8s] from div8s::@4
(signed byte~) div8s::$14 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$14
(signed byte~) div8s::$15 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$15
(signed byte~) div8s::$11 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$12 ← - (signed byte~) div8s::$11
(signed byte) rem8s ← (signed byte~) div8s::$12
(signed byte~) div8s::$13 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$14 ← - (signed byte~) div8s::$13
(signed byte) div8s::return ← (signed byte~) div8s::$14
to:div8s::@return
div8s::@return: scope:[div8s] from div8s::@11 div8s::@5 div8s::@6
(signed byte) div8s::return ← (signed byte) div8s::return
@ -1925,60 +1910,57 @@ div16s: scope:[div16s] from
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$0 ← (signed word) div16s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$1 ← ! (boolean~) div16s::$0
if((boolean~) div16s::$1) goto div16s::@1
if((boolean~) div16s::$0) goto div16s::@1
to:div16s::@7
div16s::@1: scope:[div16s] from div16s div16s::@8
(word~) div16s::$4 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$4
to:div16s::@2
div16s::@7: scope:[div16s] from div16s
(signed word~) div16s::$2 ← - (signed word) div16s::dividend
(word~) div16s::$3 ← ((word)) (signed word~) div16s::$2
(word) div16s::dividendu ← (word~) div16s::$3
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:div16s::@2
div16s::@7: scope:[div16s] from div16s
(word~) div16s::$1 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$1
to:div16s::@2
div16s::@2: scope:[div16s] from div16s::@1 div16s::@7
(word) div16s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$5 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$6 ← ! (boolean~) div16s::$5
if((boolean~) div16s::$6) goto div16s::@3
(boolean~) div16s::$4 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$4) goto div16s::@3
to:div16s::@9
div16s::@8: scope:[div16s] from
to:div16s::@1
div16s::@3: scope:[div16s] from div16s::@10 div16s::@2
(word~) div16s::$10 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$10
(signed word~) div16s::$6 ← - (signed word) div16s::divisor
(word~) div16s::$7 ← ((word)) (signed word~) div16s::$6
(word) div16s::divisoru ← (word~) div16s::$7
(byte/word/dword~) div16s::$8 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$8
to:div16s::@4
div16s::@9: scope:[div16s] from div16s::@2
(signed word~) div16s::$7 ← - (signed word) div16s::divisor
(word~) div16s::$8 ← ((word)) (signed word~) div16s::$7
(word) div16s::divisoru ← (word~) div16s::$8
(byte/word/dword~) div16s::$9 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$9
(word~) div16s::$5 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$5
to:div16s::@4
div16s::@4: scope:[div16s] from div16s::@3 div16s::@9
(word~) div16s::$11 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$11
(boolean~) div16s::$12 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$13 ← ! (boolean~) div16s::$12
if((boolean~) div16s::$13) goto div16s::@5
(word~) div16s::$9 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$9
(boolean~) div16s::$10 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$10) goto div16s::@5
to:div16s::@11
div16s::@10: scope:[div16s] from
to:div16s::@3
div16s::@5: scope:[div16s] from div16s::@13 div16s::@4
(signed word~) div16s::$16 ← ((signed word)) (word) rem16u
(signed word~) div16s::$17 ← - (signed word~) div16s::$16
(signed word) rem16s ← (signed word~) div16s::$17
(signed word~) div16s::$18 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$19 ← - (signed word~) div16s::$18
(signed word) div16s::return ← (signed word~) div16s::$19
(signed word~) div16s::$15 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$15
(signed word~) div16s::$16 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$16
to:div16s::@return
div16s::@11: scope:[div16s] from div16s::@4
(signed word~) div16s::$14 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$14
(signed word~) div16s::$15 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$15
(signed word~) div16s::$11 ← ((signed word)) (word) rem16u
(signed word~) div16s::$12 ← - (signed word~) div16s::$11
(signed word) rem16s ← (signed word~) div16s::$12
(signed word~) div16s::$13 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$14 ← - (signed word~) div16s::$13
(signed word) div16s::return ← (signed word~) div16s::$14
to:div16s::@return
div16s::@return: scope:[div16s] from div16s::@11 div16s::@5 div16s::@6
(signed word) div16s::return ← (signed word) div16s::return

@ -669,49 +669,46 @@ proc (signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$0 ← (signed byte) div8s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$1 ← ! (boolean~) div8s::$0
if((boolean~) div8s::$1) goto div8s::@1
if((boolean~) div8s::$0) goto div8s::@1
(byte~) div8s::$1 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$1
goto div8s::@2
div8s::@1:
(signed byte~) div8s::$2 ← - (signed byte) div8s::dividend
(byte~) div8s::$3 ← ((byte)) (signed byte~) div8s::$2
(byte) div8s::dividendu ← (byte~) div8s::$3
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
goto div8s::@2
div8s::@1:
(byte~) div8s::$4 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$4
div8s::@2:
(byte) div8s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$5 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$6 ← ! (boolean~) div8s::$5
if((boolean~) div8s::$6) goto div8s::@3
(signed byte~) div8s::$7 ← - (signed byte) div8s::divisor
(byte~) div8s::$8 ← ((byte)) (signed byte~) div8s::$7
(byte) div8s::divisoru ← (byte~) div8s::$8
(byte/word/dword~) div8s::$9 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$9
(boolean~) div8s::$4 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$4) goto div8s::@3
(byte~) div8s::$5 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$5
goto div8s::@4
div8s::@3:
(byte~) div8s::$10 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$10
(signed byte~) div8s::$6 ← - (signed byte) div8s::divisor
(byte~) div8s::$7 ← ((byte)) (signed byte~) div8s::$6
(byte) div8s::divisoru ← (byte~) div8s::$7
(byte/word/dword~) div8s::$8 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$8
div8s::@4:
(byte~) div8s::$11 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$11
(boolean~) div8s::$12 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$13 ← ! (boolean~) div8s::$12
if((boolean~) div8s::$13) goto div8s::@5
(signed byte~) div8s::$14 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$14
(signed byte~) div8s::$15 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$15
(byte~) div8s::$9 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$9
(boolean~) div8s::$10 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$10) goto div8s::@5
(signed byte~) div8s::$11 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$12 ← - (signed byte~) div8s::$11
(signed byte) rem8s ← (signed byte~) div8s::$12
(signed byte~) div8s::$13 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$14 ← - (signed byte~) div8s::$13
(signed byte) div8s::return ← (signed byte~) div8s::$14
goto div8s::@return
goto div8s::@6
div8s::@5:
(signed byte~) div8s::$16 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$17 ← - (signed byte~) div8s::$16
(signed byte) rem8s ← (signed byte~) div8s::$17
(signed byte~) div8s::$18 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$19 ← - (signed byte~) div8s::$18
(signed byte) div8s::return ← (signed byte~) div8s::$19
(signed byte~) div8s::$15 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$15
(signed byte~) div8s::$16 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$16
goto div8s::@return
div8s::@6:
div8s::@return:
@ -723,49 +720,46 @@ proc (signed word()) div16s((signed word) div16s::dividend , (signed word) div16
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$0 ← (signed word) div16s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$1 ← ! (boolean~) div16s::$0
if((boolean~) div16s::$1) goto div16s::@1
if((boolean~) div16s::$0) goto div16s::@1
(word~) div16s::$1 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$1
goto div16s::@2
div16s::@1:
(signed word~) div16s::$2 ← - (signed word) div16s::dividend
(word~) div16s::$3 ← ((word)) (signed word~) div16s::$2
(word) div16s::dividendu ← (word~) div16s::$3
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
goto div16s::@2
div16s::@1:
(word~) div16s::$4 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$4
div16s::@2:
(word) div16s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$5 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$6 ← ! (boolean~) div16s::$5
if((boolean~) div16s::$6) goto div16s::@3
(signed word~) div16s::$7 ← - (signed word) div16s::divisor
(word~) div16s::$8 ← ((word)) (signed word~) div16s::$7
(word) div16s::divisoru ← (word~) div16s::$8
(byte/word/dword~) div16s::$9 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$9
(boolean~) div16s::$4 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$4) goto div16s::@3
(word~) div16s::$5 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$5
goto div16s::@4
div16s::@3:
(word~) div16s::$10 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$10
(signed word~) div16s::$6 ← - (signed word) div16s::divisor
(word~) div16s::$7 ← ((word)) (signed word~) div16s::$6
(word) div16s::divisoru ← (word~) div16s::$7
(byte/word/dword~) div16s::$8 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$8
div16s::@4:
(word~) div16s::$11 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$11
(boolean~) div16s::$12 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$13 ← ! (boolean~) div16s::$12
if((boolean~) div16s::$13) goto div16s::@5
(signed word~) div16s::$14 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$14
(signed word~) div16s::$15 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$15
(word~) div16s::$9 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$9
(boolean~) div16s::$10 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$10) goto div16s::@5
(signed word~) div16s::$11 ← ((signed word)) (word) rem16u
(signed word~) div16s::$12 ← - (signed word~) div16s::$11
(signed word) rem16s ← (signed word~) div16s::$12
(signed word~) div16s::$13 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$14 ← - (signed word~) div16s::$13
(signed word) div16s::return ← (signed word~) div16s::$14
goto div16s::@return
goto div16s::@6
div16s::@5:
(signed word~) div16s::$16 ← ((signed word)) (word) rem16u
(signed word~) div16s::$17 ← - (signed word~) div16s::$16
(signed word) rem16s ← (signed word~) div16s::$17
(signed word~) div16s::$18 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$19 ← - (signed word~) div16s::$18
(signed word) div16s::return ← (signed word~) div16s::$19
(signed word~) div16s::$15 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$15
(signed word~) div16s::$16 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$16
goto div16s::@return
div16s::@6:
div16s::@return:
@ -1342,25 +1336,22 @@ SYMBOLS
(dword) PI_u4f28
(signed word()) div16s((signed word) div16s::dividend , (signed word) div16s::divisor)
(boolean~) div16s::$0
(boolean~) div16s::$1
(word~) div16s::$10
(word~) div16s::$11
(boolean~) div16s::$12
(boolean~) div16s::$13
(word~) div16s::$1
(boolean~) div16s::$10
(signed word~) div16s::$11
(signed word~) div16s::$12
(signed word~) div16s::$13
(signed word~) div16s::$14
(signed word~) div16s::$15
(signed word~) div16s::$16
(signed word~) div16s::$17
(signed word~) div16s::$18
(signed word~) div16s::$19
(signed word~) div16s::$2
(word~) div16s::$3
(word~) div16s::$4
(boolean~) div16s::$5
(boolean~) div16s::$6
(signed word~) div16s::$7
(word~) div16s::$8
(byte/word/dword~) div16s::$9
(boolean~) div16s::$4
(word~) div16s::$5
(signed word~) div16s::$6
(word~) div16s::$7
(byte/word/dword~) div16s::$8
(word~) div16s::$9
(label) div16s::@1
(label) div16s::@2
(label) div16s::@3
@ -1395,25 +1386,22 @@ SYMBOLS
(dword) div32u16u::return
(signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::divisor)
(boolean~) div8s::$0
(boolean~) div8s::$1
(byte~) div8s::$10
(byte~) div8s::$11
(boolean~) div8s::$12
(boolean~) div8s::$13
(byte~) div8s::$1
(boolean~) div8s::$10
(signed byte~) div8s::$11
(signed byte~) div8s::$12
(signed byte~) div8s::$13
(signed byte~) div8s::$14
(signed byte~) div8s::$15
(signed byte~) div8s::$16
(signed byte~) div8s::$17
(signed byte~) div8s::$18
(signed byte~) div8s::$19
(signed byte~) div8s::$2
(byte~) div8s::$3
(byte~) div8s::$4
(boolean~) div8s::$5
(boolean~) div8s::$6
(signed byte~) div8s::$7
(byte~) div8s::$8
(byte/word/dword~) div8s::$9
(boolean~) div8s::$4
(byte~) div8s::$5
(signed byte~) div8s::$6
(byte~) div8s::$7
(byte/word/dword~) div8s::$8
(byte~) div8s::$9
(label) div8s::@1
(label) div8s::@2
(label) div8s::@3
@ -2045,60 +2033,57 @@ div8s: scope:[div8s] from
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$0 ← (signed byte) div8s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$1 ← ! (boolean~) div8s::$0
if((boolean~) div8s::$1) goto div8s::@1
if((boolean~) div8s::$0) goto div8s::@1
to:div8s::@7
div8s::@1: scope:[div8s] from div8s div8s::@8
(byte~) div8s::$4 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$4
to:div8s::@2
div8s::@7: scope:[div8s] from div8s
(signed byte~) div8s::$2 ← - (signed byte) div8s::dividend
(byte~) div8s::$3 ← ((byte)) (signed byte~) div8s::$2
(byte) div8s::dividendu ← (byte~) div8s::$3
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:div8s::@2
div8s::@7: scope:[div8s] from div8s
(byte~) div8s::$1 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$1
to:div8s::@2
div8s::@2: scope:[div8s] from div8s::@1 div8s::@7
(byte) div8s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$5 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$6 ← ! (boolean~) div8s::$5
if((boolean~) div8s::$6) goto div8s::@3
(boolean~) div8s::$4 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$4) goto div8s::@3
to:div8s::@9
div8s::@8: scope:[div8s] from
to:div8s::@1
div8s::@3: scope:[div8s] from div8s::@10 div8s::@2
(byte~) div8s::$10 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$10
(signed byte~) div8s::$6 ← - (signed byte) div8s::divisor
(byte~) div8s::$7 ← ((byte)) (signed byte~) div8s::$6
(byte) div8s::divisoru ← (byte~) div8s::$7
(byte/word/dword~) div8s::$8 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$8
to:div8s::@4
div8s::@9: scope:[div8s] from div8s::@2
(signed byte~) div8s::$7 ← - (signed byte) div8s::divisor
(byte~) div8s::$8 ← ((byte)) (signed byte~) div8s::$7
(byte) div8s::divisoru ← (byte~) div8s::$8
(byte/word/dword~) div8s::$9 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$9
(byte~) div8s::$5 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$5
to:div8s::@4
div8s::@4: scope:[div8s] from div8s::@3 div8s::@9
(byte~) div8s::$11 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$11
(boolean~) div8s::$12 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$13 ← ! (boolean~) div8s::$12
if((boolean~) div8s::$13) goto div8s::@5
(byte~) div8s::$9 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$9
(boolean~) div8s::$10 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$10) goto div8s::@5
to:div8s::@11
div8s::@10: scope:[div8s] from
to:div8s::@3
div8s::@5: scope:[div8s] from div8s::@13 div8s::@4
(signed byte~) div8s::$16 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$17 ← - (signed byte~) div8s::$16
(signed byte) rem8s ← (signed byte~) div8s::$17
(signed byte~) div8s::$18 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$19 ← - (signed byte~) div8s::$18
(signed byte) div8s::return ← (signed byte~) div8s::$19
(signed byte~) div8s::$15 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$15
(signed byte~) div8s::$16 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$16
to:div8s::@return
div8s::@11: scope:[div8s] from div8s::@4
(signed byte~) div8s::$14 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$14
(signed byte~) div8s::$15 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$15
(signed byte~) div8s::$11 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$12 ← - (signed byte~) div8s::$11
(signed byte) rem8s ← (signed byte~) div8s::$12
(signed byte~) div8s::$13 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$14 ← - (signed byte~) div8s::$13
(signed byte) div8s::return ← (signed byte~) div8s::$14
to:div8s::@return
div8s::@return: scope:[div8s] from div8s::@11 div8s::@5 div8s::@6
(signed byte) div8s::return ← (signed byte) div8s::return
@ -2119,60 +2104,57 @@ div16s: scope:[div16s] from
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$0 ← (signed word) div16s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$1 ← ! (boolean~) div16s::$0
if((boolean~) div16s::$1) goto div16s::@1
if((boolean~) div16s::$0) goto div16s::@1
to:div16s::@7
div16s::@1: scope:[div16s] from div16s div16s::@8
(word~) div16s::$4 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$4
to:div16s::@2
div16s::@7: scope:[div16s] from div16s
(signed word~) div16s::$2 ← - (signed word) div16s::dividend
(word~) div16s::$3 ← ((word)) (signed word~) div16s::$2
(word) div16s::dividendu ← (word~) div16s::$3
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:div16s::@2
div16s::@7: scope:[div16s] from div16s
(word~) div16s::$1 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$1
to:div16s::@2
div16s::@2: scope:[div16s] from div16s::@1 div16s::@7
(word) div16s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$5 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$6 ← ! (boolean~) div16s::$5
if((boolean~) div16s::$6) goto div16s::@3
(boolean~) div16s::$4 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$4) goto div16s::@3
to:div16s::@9
div16s::@8: scope:[div16s] from
to:div16s::@1
div16s::@3: scope:[div16s] from div16s::@10 div16s::@2
(word~) div16s::$10 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$10
(signed word~) div16s::$6 ← - (signed word) div16s::divisor
(word~) div16s::$7 ← ((word)) (signed word~) div16s::$6
(word) div16s::divisoru ← (word~) div16s::$7
(byte/word/dword~) div16s::$8 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$8
to:div16s::@4
div16s::@9: scope:[div16s] from div16s::@2
(signed word~) div16s::$7 ← - (signed word) div16s::divisor
(word~) div16s::$8 ← ((word)) (signed word~) div16s::$7
(word) div16s::divisoru ← (word~) div16s::$8
(byte/word/dword~) div16s::$9 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$9
(word~) div16s::$5 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$5
to:div16s::@4
div16s::@4: scope:[div16s] from div16s::@3 div16s::@9
(word~) div16s::$11 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$11
(boolean~) div16s::$12 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$13 ← ! (boolean~) div16s::$12
if((boolean~) div16s::$13) goto div16s::@5
(word~) div16s::$9 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$9
(boolean~) div16s::$10 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$10) goto div16s::@5
to:div16s::@11
div16s::@10: scope:[div16s] from
to:div16s::@3
div16s::@5: scope:[div16s] from div16s::@13 div16s::@4
(signed word~) div16s::$16 ← ((signed word)) (word) rem16u
(signed word~) div16s::$17 ← - (signed word~) div16s::$16
(signed word) rem16s ← (signed word~) div16s::$17
(signed word~) div16s::$18 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$19 ← - (signed word~) div16s::$18
(signed word) div16s::return ← (signed word~) div16s::$19
(signed word~) div16s::$15 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$15
(signed word~) div16s::$16 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$16
to:div16s::@return
div16s::@11: scope:[div16s] from div16s::@4
(signed word~) div16s::$14 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$14
(signed word~) div16s::$15 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$15
(signed word~) div16s::$11 ← ((signed word)) (word) rem16u
(signed word~) div16s::$12 ← - (signed word~) div16s::$11
(signed word) rem16s ← (signed word~) div16s::$12
(signed word~) div16s::$13 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$14 ← - (signed word~) div16s::$13
(signed word) div16s::return ← (signed word~) div16s::$14
to:div16s::@return
div16s::@return: scope:[div16s] from div16s::@11 div16s::@5 div16s::@6
(signed word) div16s::return ← (signed word) div16s::return

@ -619,49 +619,46 @@ proc (signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$0 ← (signed byte) div8s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$1 ← ! (boolean~) div8s::$0
if((boolean~) div8s::$1) goto div8s::@1
if((boolean~) div8s::$0) goto div8s::@1
(byte~) div8s::$1 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$1
goto div8s::@2
div8s::@1:
(signed byte~) div8s::$2 ← - (signed byte) div8s::dividend
(byte~) div8s::$3 ← ((byte)) (signed byte~) div8s::$2
(byte) div8s::dividendu ← (byte~) div8s::$3
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
goto div8s::@2
div8s::@1:
(byte~) div8s::$4 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$4
div8s::@2:
(byte) div8s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$5 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$6 ← ! (boolean~) div8s::$5
if((boolean~) div8s::$6) goto div8s::@3
(signed byte~) div8s::$7 ← - (signed byte) div8s::divisor
(byte~) div8s::$8 ← ((byte)) (signed byte~) div8s::$7
(byte) div8s::divisoru ← (byte~) div8s::$8
(byte/word/dword~) div8s::$9 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$9
(boolean~) div8s::$4 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$4) goto div8s::@3
(byte~) div8s::$5 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$5
goto div8s::@4
div8s::@3:
(byte~) div8s::$10 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$10
(signed byte~) div8s::$6 ← - (signed byte) div8s::divisor
(byte~) div8s::$7 ← ((byte)) (signed byte~) div8s::$6
(byte) div8s::divisoru ← (byte~) div8s::$7
(byte/word/dword~) div8s::$8 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$8
div8s::@4:
(byte~) div8s::$11 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$11
(boolean~) div8s::$12 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$13 ← ! (boolean~) div8s::$12
if((boolean~) div8s::$13) goto div8s::@5
(signed byte~) div8s::$14 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$14
(signed byte~) div8s::$15 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$15
(byte~) div8s::$9 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$9
(boolean~) div8s::$10 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$10) goto div8s::@5
(signed byte~) div8s::$11 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$12 ← - (signed byte~) div8s::$11
(signed byte) rem8s ← (signed byte~) div8s::$12
(signed byte~) div8s::$13 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$14 ← - (signed byte~) div8s::$13
(signed byte) div8s::return ← (signed byte~) div8s::$14
goto div8s::@return
goto div8s::@6
div8s::@5:
(signed byte~) div8s::$16 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$17 ← - (signed byte~) div8s::$16
(signed byte) rem8s ← (signed byte~) div8s::$17
(signed byte~) div8s::$18 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$19 ← - (signed byte~) div8s::$18
(signed byte) div8s::return ← (signed byte~) div8s::$19
(signed byte~) div8s::$15 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$15
(signed byte~) div8s::$16 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$16
goto div8s::@return
div8s::@6:
div8s::@return:
@ -673,49 +670,46 @@ proc (signed word()) div16s((signed word) div16s::dividend , (signed word) div16
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$0 ← (signed word) div16s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$1 ← ! (boolean~) div16s::$0
if((boolean~) div16s::$1) goto div16s::@1
if((boolean~) div16s::$0) goto div16s::@1
(word~) div16s::$1 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$1
goto div16s::@2
div16s::@1:
(signed word~) div16s::$2 ← - (signed word) div16s::dividend
(word~) div16s::$3 ← ((word)) (signed word~) div16s::$2
(word) div16s::dividendu ← (word~) div16s::$3
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
goto div16s::@2
div16s::@1:
(word~) div16s::$4 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$4
div16s::@2:
(word) div16s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$5 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$6 ← ! (boolean~) div16s::$5
if((boolean~) div16s::$6) goto div16s::@3
(signed word~) div16s::$7 ← - (signed word) div16s::divisor
(word~) div16s::$8 ← ((word)) (signed word~) div16s::$7
(word) div16s::divisoru ← (word~) div16s::$8
(byte/word/dword~) div16s::$9 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$9
(boolean~) div16s::$4 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$4) goto div16s::@3
(word~) div16s::$5 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$5
goto div16s::@4
div16s::@3:
(word~) div16s::$10 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$10
(signed word~) div16s::$6 ← - (signed word) div16s::divisor
(word~) div16s::$7 ← ((word)) (signed word~) div16s::$6
(word) div16s::divisoru ← (word~) div16s::$7
(byte/word/dword~) div16s::$8 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$8
div16s::@4:
(word~) div16s::$11 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$11
(boolean~) div16s::$12 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$13 ← ! (boolean~) div16s::$12
if((boolean~) div16s::$13) goto div16s::@5
(signed word~) div16s::$14 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$14
(signed word~) div16s::$15 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$15
(word~) div16s::$9 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$9
(boolean~) div16s::$10 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$10) goto div16s::@5
(signed word~) div16s::$11 ← ((signed word)) (word) rem16u
(signed word~) div16s::$12 ← - (signed word~) div16s::$11
(signed word) rem16s ← (signed word~) div16s::$12
(signed word~) div16s::$13 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$14 ← - (signed word~) div16s::$13
(signed word) div16s::return ← (signed word~) div16s::$14
goto div16s::@return
goto div16s::@6
div16s::@5:
(signed word~) div16s::$16 ← ((signed word)) (word) rem16u
(signed word~) div16s::$17 ← - (signed word~) div16s::$16
(signed word) rem16s ← (signed word~) div16s::$17
(signed word~) div16s::$18 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$19 ← - (signed word~) div16s::$18
(signed word) div16s::return ← (signed word~) div16s::$19
(signed word~) div16s::$15 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$15
(signed word~) div16s::$16 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$16
goto div16s::@return
div16s::@6:
div16s::@return:
@ -1218,25 +1212,22 @@ SYMBOLS
(dword) PI_u4f28
(signed word()) div16s((signed word) div16s::dividend , (signed word) div16s::divisor)
(boolean~) div16s::$0
(boolean~) div16s::$1
(word~) div16s::$10
(word~) div16s::$11
(boolean~) div16s::$12
(boolean~) div16s::$13
(word~) div16s::$1
(boolean~) div16s::$10
(signed word~) div16s::$11
(signed word~) div16s::$12
(signed word~) div16s::$13
(signed word~) div16s::$14
(signed word~) div16s::$15
(signed word~) div16s::$16
(signed word~) div16s::$17
(signed word~) div16s::$18
(signed word~) div16s::$19
(signed word~) div16s::$2
(word~) div16s::$3
(word~) div16s::$4
(boolean~) div16s::$5
(boolean~) div16s::$6
(signed word~) div16s::$7
(word~) div16s::$8
(byte/word/dword~) div16s::$9
(boolean~) div16s::$4
(word~) div16s::$5
(signed word~) div16s::$6
(word~) div16s::$7
(byte/word/dword~) div16s::$8
(word~) div16s::$9
(label) div16s::@1
(label) div16s::@2
(label) div16s::@3
@ -1271,25 +1262,22 @@ SYMBOLS
(dword) div32u16u::return
(signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::divisor)
(boolean~) div8s::$0
(boolean~) div8s::$1
(byte~) div8s::$10
(byte~) div8s::$11
(boolean~) div8s::$12
(boolean~) div8s::$13
(byte~) div8s::$1
(boolean~) div8s::$10
(signed byte~) div8s::$11
(signed byte~) div8s::$12
(signed byte~) div8s::$13
(signed byte~) div8s::$14
(signed byte~) div8s::$15
(signed byte~) div8s::$16
(signed byte~) div8s::$17
(signed byte~) div8s::$18
(signed byte~) div8s::$19
(signed byte~) div8s::$2
(byte~) div8s::$3
(byte~) div8s::$4
(boolean~) div8s::$5
(boolean~) div8s::$6
(signed byte~) div8s::$7
(byte~) div8s::$8
(byte/word/dword~) div8s::$9
(boolean~) div8s::$4
(byte~) div8s::$5
(signed byte~) div8s::$6
(byte~) div8s::$7
(byte/word/dword~) div8s::$8
(byte~) div8s::$9
(label) div8s::@1
(label) div8s::@2
(label) div8s::@3
@ -1865,60 +1853,57 @@ div8s: scope:[div8s] from
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$0 ← (signed byte) div8s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$1 ← ! (boolean~) div8s::$0
if((boolean~) div8s::$1) goto div8s::@1
if((boolean~) div8s::$0) goto div8s::@1
to:div8s::@7
div8s::@1: scope:[div8s] from div8s div8s::@8
(byte~) div8s::$4 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$4
to:div8s::@2
div8s::@7: scope:[div8s] from div8s
(signed byte~) div8s::$2 ← - (signed byte) div8s::dividend
(byte~) div8s::$3 ← ((byte)) (signed byte~) div8s::$2
(byte) div8s::dividendu ← (byte~) div8s::$3
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:div8s::@2
div8s::@7: scope:[div8s] from div8s
(byte~) div8s::$1 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$1
to:div8s::@2
div8s::@2: scope:[div8s] from div8s::@1 div8s::@7
(byte) div8s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$5 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$6 ← ! (boolean~) div8s::$5
if((boolean~) div8s::$6) goto div8s::@3
(boolean~) div8s::$4 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$4) goto div8s::@3
to:div8s::@9
div8s::@8: scope:[div8s] from
to:div8s::@1
div8s::@3: scope:[div8s] from div8s::@10 div8s::@2
(byte~) div8s::$10 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$10
(signed byte~) div8s::$6 ← - (signed byte) div8s::divisor
(byte~) div8s::$7 ← ((byte)) (signed byte~) div8s::$6
(byte) div8s::divisoru ← (byte~) div8s::$7
(byte/word/dword~) div8s::$8 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$8
to:div8s::@4
div8s::@9: scope:[div8s] from div8s::@2
(signed byte~) div8s::$7 ← - (signed byte) div8s::divisor
(byte~) div8s::$8 ← ((byte)) (signed byte~) div8s::$7
(byte) div8s::divisoru ← (byte~) div8s::$8
(byte/word/dword~) div8s::$9 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$9
(byte~) div8s::$5 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$5
to:div8s::@4
div8s::@4: scope:[div8s] from div8s::@3 div8s::@9
(byte~) div8s::$11 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$11
(boolean~) div8s::$12 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$13 ← ! (boolean~) div8s::$12
if((boolean~) div8s::$13) goto div8s::@5
(byte~) div8s::$9 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$9
(boolean~) div8s::$10 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$10) goto div8s::@5
to:div8s::@11
div8s::@10: scope:[div8s] from
to:div8s::@3
div8s::@5: scope:[div8s] from div8s::@13 div8s::@4
(signed byte~) div8s::$16 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$17 ← - (signed byte~) div8s::$16
(signed byte) rem8s ← (signed byte~) div8s::$17
(signed byte~) div8s::$18 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$19 ← - (signed byte~) div8s::$18
(signed byte) div8s::return ← (signed byte~) div8s::$19
(signed byte~) div8s::$15 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$15
(signed byte~) div8s::$16 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$16
to:div8s::@return
div8s::@11: scope:[div8s] from div8s::@4
(signed byte~) div8s::$14 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$14
(signed byte~) div8s::$15 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$15
(signed byte~) div8s::$11 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$12 ← - (signed byte~) div8s::$11
(signed byte) rem8s ← (signed byte~) div8s::$12
(signed byte~) div8s::$13 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$14 ← - (signed byte~) div8s::$13
(signed byte) div8s::return ← (signed byte~) div8s::$14
to:div8s::@return
div8s::@return: scope:[div8s] from div8s::@11 div8s::@5 div8s::@6
(signed byte) div8s::return ← (signed byte) div8s::return
@ -1939,60 +1924,57 @@ div16s: scope:[div16s] from
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$0 ← (signed word) div16s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$1 ← ! (boolean~) div16s::$0
if((boolean~) div16s::$1) goto div16s::@1
if((boolean~) div16s::$0) goto div16s::@1
to:div16s::@7
div16s::@1: scope:[div16s] from div16s div16s::@8
(word~) div16s::$4 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$4
to:div16s::@2
div16s::@7: scope:[div16s] from div16s
(signed word~) div16s::$2 ← - (signed word) div16s::dividend
(word~) div16s::$3 ← ((word)) (signed word~) div16s::$2
(word) div16s::dividendu ← (word~) div16s::$3
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:div16s::@2
div16s::@7: scope:[div16s] from div16s
(word~) div16s::$1 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$1
to:div16s::@2
div16s::@2: scope:[div16s] from div16s::@1 div16s::@7
(word) div16s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$5 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$6 ← ! (boolean~) div16s::$5
if((boolean~) div16s::$6) goto div16s::@3
(boolean~) div16s::$4 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$4) goto div16s::@3
to:div16s::@9
div16s::@8: scope:[div16s] from
to:div16s::@1
div16s::@3: scope:[div16s] from div16s::@10 div16s::@2
(word~) div16s::$10 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$10
(signed word~) div16s::$6 ← - (signed word) div16s::divisor
(word~) div16s::$7 ← ((word)) (signed word~) div16s::$6
(word) div16s::divisoru ← (word~) div16s::$7
(byte/word/dword~) div16s::$8 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$8
to:div16s::@4
div16s::@9: scope:[div16s] from div16s::@2
(signed word~) div16s::$7 ← - (signed word) div16s::divisor
(word~) div16s::$8 ← ((word)) (signed word~) div16s::$7
(word) div16s::divisoru ← (word~) div16s::$8
(byte/word/dword~) div16s::$9 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$9
(word~) div16s::$5 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$5
to:div16s::@4
div16s::@4: scope:[div16s] from div16s::@3 div16s::@9
(word~) div16s::$11 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$11
(boolean~) div16s::$12 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$13 ← ! (boolean~) div16s::$12
if((boolean~) div16s::$13) goto div16s::@5
(word~) div16s::$9 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$9
(boolean~) div16s::$10 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$10) goto div16s::@5
to:div16s::@11
div16s::@10: scope:[div16s] from
to:div16s::@3
div16s::@5: scope:[div16s] from div16s::@13 div16s::@4
(signed word~) div16s::$16 ← ((signed word)) (word) rem16u
(signed word~) div16s::$17 ← - (signed word~) div16s::$16
(signed word) rem16s ← (signed word~) div16s::$17
(signed word~) div16s::$18 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$19 ← - (signed word~) div16s::$18
(signed word) div16s::return ← (signed word~) div16s::$19
(signed word~) div16s::$15 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$15
(signed word~) div16s::$16 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$16
to:div16s::@return
div16s::@11: scope:[div16s] from div16s::@4
(signed word~) div16s::$14 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$14
(signed word~) div16s::$15 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$15
(signed word~) div16s::$11 ← ((signed word)) (word) rem16u
(signed word~) div16s::$12 ← - (signed word~) div16s::$11
(signed word) rem16s ← (signed word~) div16s::$12
(signed word~) div16s::$13 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$14 ← - (signed word~) div16s::$13
(signed word) div16s::return ← (signed word~) div16s::$14
to:div16s::@return
div16s::@return: scope:[div16s] from div16s::@11 div16s::@5 div16s::@6
(signed word) div16s::return ← (signed word) div16s::return

@ -608,49 +608,46 @@ proc (signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$0 ← (signed byte) div8s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$1 ← ! (boolean~) div8s::$0
if((boolean~) div8s::$1) goto div8s::@1
if((boolean~) div8s::$0) goto div8s::@1
(byte~) div8s::$1 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$1
goto div8s::@2
div8s::@1:
(signed byte~) div8s::$2 ← - (signed byte) div8s::dividend
(byte~) div8s::$3 ← ((byte)) (signed byte~) div8s::$2
(byte) div8s::dividendu ← (byte~) div8s::$3
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
goto div8s::@2
div8s::@1:
(byte~) div8s::$4 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$4
div8s::@2:
(byte) div8s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$5 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$6 ← ! (boolean~) div8s::$5
if((boolean~) div8s::$6) goto div8s::@3
(signed byte~) div8s::$7 ← - (signed byte) div8s::divisor
(byte~) div8s::$8 ← ((byte)) (signed byte~) div8s::$7
(byte) div8s::divisoru ← (byte~) div8s::$8
(byte/word/dword~) div8s::$9 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$9
(boolean~) div8s::$4 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$4) goto div8s::@3
(byte~) div8s::$5 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$5
goto div8s::@4
div8s::@3:
(byte~) div8s::$10 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$10
(signed byte~) div8s::$6 ← - (signed byte) div8s::divisor
(byte~) div8s::$7 ← ((byte)) (signed byte~) div8s::$6
(byte) div8s::divisoru ← (byte~) div8s::$7
(byte/word/dword~) div8s::$8 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$8
div8s::@4:
(byte~) div8s::$11 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$11
(boolean~) div8s::$12 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$13 ← ! (boolean~) div8s::$12
if((boolean~) div8s::$13) goto div8s::@5
(signed byte~) div8s::$14 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$14
(signed byte~) div8s::$15 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$15
(byte~) div8s::$9 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$9
(boolean~) div8s::$10 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$10) goto div8s::@5
(signed byte~) div8s::$11 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$12 ← - (signed byte~) div8s::$11
(signed byte) rem8s ← (signed byte~) div8s::$12
(signed byte~) div8s::$13 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$14 ← - (signed byte~) div8s::$13
(signed byte) div8s::return ← (signed byte~) div8s::$14
goto div8s::@return
goto div8s::@6
div8s::@5:
(signed byte~) div8s::$16 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$17 ← - (signed byte~) div8s::$16
(signed byte) rem8s ← (signed byte~) div8s::$17
(signed byte~) div8s::$18 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$19 ← - (signed byte~) div8s::$18
(signed byte) div8s::return ← (signed byte~) div8s::$19
(signed byte~) div8s::$15 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$15
(signed byte~) div8s::$16 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$16
goto div8s::@return
div8s::@6:
div8s::@return:
@ -662,49 +659,46 @@ proc (signed word()) div16s((signed word) div16s::dividend , (signed word) div16
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$0 ← (signed word) div16s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$1 ← ! (boolean~) div16s::$0
if((boolean~) div16s::$1) goto div16s::@1
if((boolean~) div16s::$0) goto div16s::@1
(word~) div16s::$1 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$1
goto div16s::@2
div16s::@1:
(signed word~) div16s::$2 ← - (signed word) div16s::dividend
(word~) div16s::$3 ← ((word)) (signed word~) div16s::$2
(word) div16s::dividendu ← (word~) div16s::$3
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
goto div16s::@2
div16s::@1:
(word~) div16s::$4 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$4
div16s::@2:
(word) div16s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$5 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$6 ← ! (boolean~) div16s::$5
if((boolean~) div16s::$6) goto div16s::@3
(signed word~) div16s::$7 ← - (signed word) div16s::divisor
(word~) div16s::$8 ← ((word)) (signed word~) div16s::$7
(word) div16s::divisoru ← (word~) div16s::$8
(byte/word/dword~) div16s::$9 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$9
(boolean~) div16s::$4 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$4) goto div16s::@3
(word~) div16s::$5 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$5
goto div16s::@4
div16s::@3:
(word~) div16s::$10 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$10
(signed word~) div16s::$6 ← - (signed word) div16s::divisor
(word~) div16s::$7 ← ((word)) (signed word~) div16s::$6
(word) div16s::divisoru ← (word~) div16s::$7
(byte/word/dword~) div16s::$8 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$8
div16s::@4:
(word~) div16s::$11 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$11
(boolean~) div16s::$12 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$13 ← ! (boolean~) div16s::$12
if((boolean~) div16s::$13) goto div16s::@5
(signed word~) div16s::$14 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$14
(signed word~) div16s::$15 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$15
(word~) div16s::$9 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$9
(boolean~) div16s::$10 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$10) goto div16s::@5
(signed word~) div16s::$11 ← ((signed word)) (word) rem16u
(signed word~) div16s::$12 ← - (signed word~) div16s::$11
(signed word) rem16s ← (signed word~) div16s::$12
(signed word~) div16s::$13 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$14 ← - (signed word~) div16s::$13
(signed word) div16s::return ← (signed word~) div16s::$14
goto div16s::@return
goto div16s::@6
div16s::@5:
(signed word~) div16s::$16 ← ((signed word)) (word) rem16u
(signed word~) div16s::$17 ← - (signed word~) div16s::$16
(signed word) rem16s ← (signed word~) div16s::$17
(signed word~) div16s::$18 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$19 ← - (signed word~) div16s::$18
(signed word) div16s::return ← (signed word~) div16s::$19
(signed word~) div16s::$15 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$15
(signed word~) div16s::$16 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$16
goto div16s::@return
div16s::@6:
div16s::@return:
@ -1214,25 +1208,22 @@ SYMBOLS
(dword) PI_u4f28
(signed word()) div16s((signed word) div16s::dividend , (signed word) div16s::divisor)
(boolean~) div16s::$0
(boolean~) div16s::$1
(word~) div16s::$10
(word~) div16s::$11
(boolean~) div16s::$12
(boolean~) div16s::$13
(word~) div16s::$1
(boolean~) div16s::$10
(signed word~) div16s::$11
(signed word~) div16s::$12
(signed word~) div16s::$13
(signed word~) div16s::$14
(signed word~) div16s::$15
(signed word~) div16s::$16
(signed word~) div16s::$17
(signed word~) div16s::$18
(signed word~) div16s::$19
(signed word~) div16s::$2
(word~) div16s::$3
(word~) div16s::$4
(boolean~) div16s::$5
(boolean~) div16s::$6
(signed word~) div16s::$7
(word~) div16s::$8
(byte/word/dword~) div16s::$9
(boolean~) div16s::$4
(word~) div16s::$5
(signed word~) div16s::$6
(word~) div16s::$7
(byte/word/dword~) div16s::$8
(word~) div16s::$9
(label) div16s::@1
(label) div16s::@2
(label) div16s::@3
@ -1267,25 +1258,22 @@ SYMBOLS
(dword) div32u16u::return
(signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::divisor)
(boolean~) div8s::$0
(boolean~) div8s::$1
(byte~) div8s::$10
(byte~) div8s::$11
(boolean~) div8s::$12
(boolean~) div8s::$13
(byte~) div8s::$1
(boolean~) div8s::$10
(signed byte~) div8s::$11
(signed byte~) div8s::$12
(signed byte~) div8s::$13
(signed byte~) div8s::$14
(signed byte~) div8s::$15
(signed byte~) div8s::$16
(signed byte~) div8s::$17
(signed byte~) div8s::$18
(signed byte~) div8s::$19
(signed byte~) div8s::$2
(byte~) div8s::$3
(byte~) div8s::$4
(boolean~) div8s::$5
(boolean~) div8s::$6
(signed byte~) div8s::$7
(byte~) div8s::$8
(byte/word/dword~) div8s::$9
(boolean~) div8s::$4
(byte~) div8s::$5
(signed byte~) div8s::$6
(byte~) div8s::$7
(byte/word/dword~) div8s::$8
(byte~) div8s::$9
(label) div8s::@1
(label) div8s::@2
(label) div8s::@3
@ -1868,60 +1856,57 @@ div8s: scope:[div8s] from
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$0 ← (signed byte) div8s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$1 ← ! (boolean~) div8s::$0
if((boolean~) div8s::$1) goto div8s::@1
if((boolean~) div8s::$0) goto div8s::@1
to:div8s::@7
div8s::@1: scope:[div8s] from div8s div8s::@8
(byte~) div8s::$4 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$4
to:div8s::@2
div8s::@7: scope:[div8s] from div8s
(signed byte~) div8s::$2 ← - (signed byte) div8s::dividend
(byte~) div8s::$3 ← ((byte)) (signed byte~) div8s::$2
(byte) div8s::dividendu ← (byte~) div8s::$3
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:div8s::@2
div8s::@7: scope:[div8s] from div8s
(byte~) div8s::$1 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$1
to:div8s::@2
div8s::@2: scope:[div8s] from div8s::@1 div8s::@7
(byte) div8s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$5 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$6 ← ! (boolean~) div8s::$5
if((boolean~) div8s::$6) goto div8s::@3
(boolean~) div8s::$4 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$4) goto div8s::@3
to:div8s::@9
div8s::@8: scope:[div8s] from
to:div8s::@1
div8s::@3: scope:[div8s] from div8s::@10 div8s::@2
(byte~) div8s::$10 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$10
(signed byte~) div8s::$6 ← - (signed byte) div8s::divisor
(byte~) div8s::$7 ← ((byte)) (signed byte~) div8s::$6
(byte) div8s::divisoru ← (byte~) div8s::$7
(byte/word/dword~) div8s::$8 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$8
to:div8s::@4
div8s::@9: scope:[div8s] from div8s::@2
(signed byte~) div8s::$7 ← - (signed byte) div8s::divisor
(byte~) div8s::$8 ← ((byte)) (signed byte~) div8s::$7
(byte) div8s::divisoru ← (byte~) div8s::$8
(byte/word/dword~) div8s::$9 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$9
(byte~) div8s::$5 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$5
to:div8s::@4
div8s::@4: scope:[div8s] from div8s::@3 div8s::@9
(byte~) div8s::$11 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$11
(boolean~) div8s::$12 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$13 ← ! (boolean~) div8s::$12
if((boolean~) div8s::$13) goto div8s::@5
(byte~) div8s::$9 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$9
(boolean~) div8s::$10 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$10) goto div8s::@5
to:div8s::@11
div8s::@10: scope:[div8s] from
to:div8s::@3
div8s::@5: scope:[div8s] from div8s::@13 div8s::@4
(signed byte~) div8s::$16 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$17 ← - (signed byte~) div8s::$16
(signed byte) rem8s ← (signed byte~) div8s::$17
(signed byte~) div8s::$18 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$19 ← - (signed byte~) div8s::$18
(signed byte) div8s::return ← (signed byte~) div8s::$19
(signed byte~) div8s::$15 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$15
(signed byte~) div8s::$16 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$16
to:div8s::@return
div8s::@11: scope:[div8s] from div8s::@4
(signed byte~) div8s::$14 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$14
(signed byte~) div8s::$15 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$15
(signed byte~) div8s::$11 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$12 ← - (signed byte~) div8s::$11
(signed byte) rem8s ← (signed byte~) div8s::$12
(signed byte~) div8s::$13 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$14 ← - (signed byte~) div8s::$13
(signed byte) div8s::return ← (signed byte~) div8s::$14
to:div8s::@return
div8s::@return: scope:[div8s] from div8s::@11 div8s::@5 div8s::@6
(signed byte) div8s::return ← (signed byte) div8s::return
@ -1942,60 +1927,57 @@ div16s: scope:[div16s] from
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$0 ← (signed word) div16s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$1 ← ! (boolean~) div16s::$0
if((boolean~) div16s::$1) goto div16s::@1
if((boolean~) div16s::$0) goto div16s::@1
to:div16s::@7
div16s::@1: scope:[div16s] from div16s div16s::@8
(word~) div16s::$4 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$4
to:div16s::@2
div16s::@7: scope:[div16s] from div16s
(signed word~) div16s::$2 ← - (signed word) div16s::dividend
(word~) div16s::$3 ← ((word)) (signed word~) div16s::$2
(word) div16s::dividendu ← (word~) div16s::$3
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:div16s::@2
div16s::@7: scope:[div16s] from div16s
(word~) div16s::$1 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$1
to:div16s::@2
div16s::@2: scope:[div16s] from div16s::@1 div16s::@7
(word) div16s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$5 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$6 ← ! (boolean~) div16s::$5
if((boolean~) div16s::$6) goto div16s::@3
(boolean~) div16s::$4 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$4) goto div16s::@3
to:div16s::@9
div16s::@8: scope:[div16s] from
to:div16s::@1
div16s::@3: scope:[div16s] from div16s::@10 div16s::@2
(word~) div16s::$10 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$10
(signed word~) div16s::$6 ← - (signed word) div16s::divisor
(word~) div16s::$7 ← ((word)) (signed word~) div16s::$6
(word) div16s::divisoru ← (word~) div16s::$7
(byte/word/dword~) div16s::$8 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$8
to:div16s::@4
div16s::@9: scope:[div16s] from div16s::@2
(signed word~) div16s::$7 ← - (signed word) div16s::divisor
(word~) div16s::$8 ← ((word)) (signed word~) div16s::$7
(word) div16s::divisoru ← (word~) div16s::$8
(byte/word/dword~) div16s::$9 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$9
(word~) div16s::$5 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$5
to:div16s::@4
div16s::@4: scope:[div16s] from div16s::@3 div16s::@9
(word~) div16s::$11 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$11
(boolean~) div16s::$12 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$13 ← ! (boolean~) div16s::$12
if((boolean~) div16s::$13) goto div16s::@5
(word~) div16s::$9 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$9
(boolean~) div16s::$10 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$10) goto div16s::@5
to:div16s::@11
div16s::@10: scope:[div16s] from
to:div16s::@3
div16s::@5: scope:[div16s] from div16s::@13 div16s::@4
(signed word~) div16s::$16 ← ((signed word)) (word) rem16u
(signed word~) div16s::$17 ← - (signed word~) div16s::$16
(signed word) rem16s ← (signed word~) div16s::$17
(signed word~) div16s::$18 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$19 ← - (signed word~) div16s::$18
(signed word) div16s::return ← (signed word~) div16s::$19
(signed word~) div16s::$15 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$15
(signed word~) div16s::$16 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$16
to:div16s::@return
div16s::@11: scope:[div16s] from div16s::@4
(signed word~) div16s::$14 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$14
(signed word~) div16s::$15 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$15
(signed word~) div16s::$11 ← ((signed word)) (word) rem16u
(signed word~) div16s::$12 ← - (signed word~) div16s::$11
(signed word) rem16s ← (signed word~) div16s::$12
(signed word~) div16s::$13 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$14 ← - (signed word~) div16s::$13
(signed word) div16s::return ← (signed word~) div16s::$14
to:div16s::@return
div16s::@return: scope:[div16s] from div16s::@11 div16s::@5 div16s::@6
(signed word) div16s::return ← (signed word) div16s::return

@ -655,49 +655,46 @@ proc (signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$0 ← (signed byte) div8s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$1 ← ! (boolean~) div8s::$0
if((boolean~) div8s::$1) goto div8s::@1
if((boolean~) div8s::$0) goto div8s::@1
(byte~) div8s::$1 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$1
goto div8s::@2
div8s::@1:
(signed byte~) div8s::$2 ← - (signed byte) div8s::dividend
(byte~) div8s::$3 ← ((byte)) (signed byte~) div8s::$2
(byte) div8s::dividendu ← (byte~) div8s::$3
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
goto div8s::@2
div8s::@1:
(byte~) div8s::$4 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$4
div8s::@2:
(byte) div8s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$5 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$6 ← ! (boolean~) div8s::$5
if((boolean~) div8s::$6) goto div8s::@3
(signed byte~) div8s::$7 ← - (signed byte) div8s::divisor
(byte~) div8s::$8 ← ((byte)) (signed byte~) div8s::$7
(byte) div8s::divisoru ← (byte~) div8s::$8
(byte/word/dword~) div8s::$9 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$9
(boolean~) div8s::$4 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$4) goto div8s::@3
(byte~) div8s::$5 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$5
goto div8s::@4
div8s::@3:
(byte~) div8s::$10 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$10
(signed byte~) div8s::$6 ← - (signed byte) div8s::divisor
(byte~) div8s::$7 ← ((byte)) (signed byte~) div8s::$6
(byte) div8s::divisoru ← (byte~) div8s::$7
(byte/word/dword~) div8s::$8 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$8
div8s::@4:
(byte~) div8s::$11 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$11
(boolean~) div8s::$12 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$13 ← ! (boolean~) div8s::$12
if((boolean~) div8s::$13) goto div8s::@5
(signed byte~) div8s::$14 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$14
(signed byte~) div8s::$15 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$15
(byte~) div8s::$9 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$9
(boolean~) div8s::$10 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$10) goto div8s::@5
(signed byte~) div8s::$11 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$12 ← - (signed byte~) div8s::$11
(signed byte) rem8s ← (signed byte~) div8s::$12
(signed byte~) div8s::$13 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$14 ← - (signed byte~) div8s::$13
(signed byte) div8s::return ← (signed byte~) div8s::$14
goto div8s::@return
goto div8s::@6
div8s::@5:
(signed byte~) div8s::$16 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$17 ← - (signed byte~) div8s::$16
(signed byte) rem8s ← (signed byte~) div8s::$17
(signed byte~) div8s::$18 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$19 ← - (signed byte~) div8s::$18
(signed byte) div8s::return ← (signed byte~) div8s::$19
(signed byte~) div8s::$15 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$15
(signed byte~) div8s::$16 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$16
goto div8s::@return
div8s::@6:
div8s::@return:
@ -709,49 +706,46 @@ proc (signed word()) div16s((signed word) div16s::dividend , (signed word) div16
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$0 ← (signed word) div16s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$1 ← ! (boolean~) div16s::$0
if((boolean~) div16s::$1) goto div16s::@1
if((boolean~) div16s::$0) goto div16s::@1
(word~) div16s::$1 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$1
goto div16s::@2
div16s::@1:
(signed word~) div16s::$2 ← - (signed word) div16s::dividend
(word~) div16s::$3 ← ((word)) (signed word~) div16s::$2
(word) div16s::dividendu ← (word~) div16s::$3
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
goto div16s::@2
div16s::@1:
(word~) div16s::$4 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$4
div16s::@2:
(word) div16s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$5 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$6 ← ! (boolean~) div16s::$5
if((boolean~) div16s::$6) goto div16s::@3
(signed word~) div16s::$7 ← - (signed word) div16s::divisor
(word~) div16s::$8 ← ((word)) (signed word~) div16s::$7
(word) div16s::divisoru ← (word~) div16s::$8
(byte/word/dword~) div16s::$9 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$9
(boolean~) div16s::$4 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$4) goto div16s::@3
(word~) div16s::$5 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$5
goto div16s::@4
div16s::@3:
(word~) div16s::$10 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$10
(signed word~) div16s::$6 ← - (signed word) div16s::divisor
(word~) div16s::$7 ← ((word)) (signed word~) div16s::$6
(word) div16s::divisoru ← (word~) div16s::$7
(byte/word/dword~) div16s::$8 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$8
div16s::@4:
(word~) div16s::$11 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$11
(boolean~) div16s::$12 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$13 ← ! (boolean~) div16s::$12
if((boolean~) div16s::$13) goto div16s::@5
(signed word~) div16s::$14 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$14
(signed word~) div16s::$15 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$15
(word~) div16s::$9 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$9
(boolean~) div16s::$10 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$10) goto div16s::@5
(signed word~) div16s::$11 ← ((signed word)) (word) rem16u
(signed word~) div16s::$12 ← - (signed word~) div16s::$11
(signed word) rem16s ← (signed word~) div16s::$12
(signed word~) div16s::$13 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$14 ← - (signed word~) div16s::$13
(signed word) div16s::return ← (signed word~) div16s::$14
goto div16s::@return
goto div16s::@6
div16s::@5:
(signed word~) div16s::$16 ← ((signed word)) (word) rem16u
(signed word~) div16s::$17 ← - (signed word~) div16s::$16
(signed word) rem16s ← (signed word~) div16s::$17
(signed word~) div16s::$18 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$19 ← - (signed word~) div16s::$18
(signed word) div16s::return ← (signed word~) div16s::$19
(signed word~) div16s::$15 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$15
(signed word~) div16s::$16 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$16
goto div16s::@return
div16s::@6:
div16s::@return:
@ -1291,25 +1285,22 @@ SYMBOLS
(dword) PI_u4f28
(signed word()) div16s((signed word) div16s::dividend , (signed word) div16s::divisor)
(boolean~) div16s::$0
(boolean~) div16s::$1
(word~) div16s::$10
(word~) div16s::$11
(boolean~) div16s::$12
(boolean~) div16s::$13
(word~) div16s::$1
(boolean~) div16s::$10
(signed word~) div16s::$11
(signed word~) div16s::$12
(signed word~) div16s::$13
(signed word~) div16s::$14
(signed word~) div16s::$15
(signed word~) div16s::$16
(signed word~) div16s::$17
(signed word~) div16s::$18
(signed word~) div16s::$19
(signed word~) div16s::$2
(word~) div16s::$3
(word~) div16s::$4
(boolean~) div16s::$5
(boolean~) div16s::$6
(signed word~) div16s::$7
(word~) div16s::$8
(byte/word/dword~) div16s::$9
(boolean~) div16s::$4
(word~) div16s::$5
(signed word~) div16s::$6
(word~) div16s::$7
(byte/word/dword~) div16s::$8
(word~) div16s::$9
(label) div16s::@1
(label) div16s::@2
(label) div16s::@3
@ -1344,25 +1335,22 @@ SYMBOLS
(dword) div32u16u::return
(signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::divisor)
(boolean~) div8s::$0
(boolean~) div8s::$1
(byte~) div8s::$10
(byte~) div8s::$11
(boolean~) div8s::$12
(boolean~) div8s::$13
(byte~) div8s::$1
(boolean~) div8s::$10
(signed byte~) div8s::$11
(signed byte~) div8s::$12
(signed byte~) div8s::$13
(signed byte~) div8s::$14
(signed byte~) div8s::$15
(signed byte~) div8s::$16
(signed byte~) div8s::$17
(signed byte~) div8s::$18
(signed byte~) div8s::$19
(signed byte~) div8s::$2
(byte~) div8s::$3
(byte~) div8s::$4
(boolean~) div8s::$5
(boolean~) div8s::$6
(signed byte~) div8s::$7
(byte~) div8s::$8
(byte/word/dword~) div8s::$9
(boolean~) div8s::$4
(byte~) div8s::$5
(signed byte~) div8s::$6
(byte~) div8s::$7
(byte/word/dword~) div8s::$8
(byte~) div8s::$9
(label) div8s::@1
(label) div8s::@2
(label) div8s::@3
@ -1975,60 +1963,57 @@ div8s: scope:[div8s] from
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) div8s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$0 ← (signed byte) div8s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$1 ← ! (boolean~) div8s::$0
if((boolean~) div8s::$1) goto div8s::@1
if((boolean~) div8s::$0) goto div8s::@1
to:div8s::@7
div8s::@1: scope:[div8s] from div8s div8s::@8
(byte~) div8s::$4 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$4
to:div8s::@2
div8s::@7: scope:[div8s] from div8s
(signed byte~) div8s::$2 ← - (signed byte) div8s::dividend
(byte~) div8s::$3 ← ((byte)) (signed byte~) div8s::$2
(byte) div8s::dividendu ← (byte~) div8s::$3
(byte) div8s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:div8s::@2
div8s::@7: scope:[div8s] from div8s
(byte~) div8s::$1 ← ((byte)) (signed byte) div8s::dividend
(byte) div8s::dividendu ← (byte~) div8s::$1
to:div8s::@2
div8s::@2: scope:[div8s] from div8s::@1 div8s::@7
(byte) div8s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$5 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$6 ← ! (boolean~) div8s::$5
if((boolean~) div8s::$6) goto div8s::@3
(boolean~) div8s::$4 ← (signed byte) div8s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$4) goto div8s::@3
to:div8s::@9
div8s::@8: scope:[div8s] from
to:div8s::@1
div8s::@3: scope:[div8s] from div8s::@10 div8s::@2
(byte~) div8s::$10 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$10
(signed byte~) div8s::$6 ← - (signed byte) div8s::divisor
(byte~) div8s::$7 ← ((byte)) (signed byte~) div8s::$6
(byte) div8s::divisoru ← (byte~) div8s::$7
(byte/word/dword~) div8s::$8 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$8
to:div8s::@4
div8s::@9: scope:[div8s] from div8s::@2
(signed byte~) div8s::$7 ← - (signed byte) div8s::divisor
(byte~) div8s::$8 ← ((byte)) (signed byte~) div8s::$7
(byte) div8s::divisoru ← (byte~) div8s::$8
(byte/word/dword~) div8s::$9 ← (byte) div8s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div8s::neg ← (byte/word/dword~) div8s::$9
(byte~) div8s::$5 ← ((byte)) (signed byte) div8s::divisor
(byte) div8s::divisoru ← (byte~) div8s::$5
to:div8s::@4
div8s::@4: scope:[div8s] from div8s::@3 div8s::@9
(byte~) div8s::$11 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$11
(boolean~) div8s::$12 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div8s::$13 ← ! (boolean~) div8s::$12
if((boolean~) div8s::$13) goto div8s::@5
(byte~) div8s::$9 ← call div8u (byte) div8s::dividendu (byte) div8s::divisoru
(byte) div8s::resultu ← (byte~) div8s::$9
(boolean~) div8s::$10 ← (byte) div8s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div8s::$10) goto div8s::@5
to:div8s::@11
div8s::@10: scope:[div8s] from
to:div8s::@3
div8s::@5: scope:[div8s] from div8s::@13 div8s::@4
(signed byte~) div8s::$16 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$17 ← - (signed byte~) div8s::$16
(signed byte) rem8s ← (signed byte~) div8s::$17
(signed byte~) div8s::$18 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$19 ← - (signed byte~) div8s::$18
(signed byte) div8s::return ← (signed byte~) div8s::$19
(signed byte~) div8s::$15 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$15
(signed byte~) div8s::$16 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$16
to:div8s::@return
div8s::@11: scope:[div8s] from div8s::@4
(signed byte~) div8s::$14 ← ((signed byte)) (byte) rem8u
(signed byte) rem8s ← (signed byte~) div8s::$14
(signed byte~) div8s::$15 ← ((signed byte)) (byte) div8s::resultu
(signed byte) div8s::return ← (signed byte~) div8s::$15
(signed byte~) div8s::$11 ← ((signed byte)) (byte) rem8u
(signed byte~) div8s::$12 ← - (signed byte~) div8s::$11
(signed byte) rem8s ← (signed byte~) div8s::$12
(signed byte~) div8s::$13 ← ((signed byte)) (byte) div8s::resultu
(signed byte~) div8s::$14 ← - (signed byte~) div8s::$13
(signed byte) div8s::return ← (signed byte~) div8s::$14
to:div8s::@return
div8s::@return: scope:[div8s] from div8s::@11 div8s::@5 div8s::@6
(signed byte) div8s::return ← (signed byte) div8s::return
@ -2049,60 +2034,57 @@ div16s: scope:[div16s] from
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 0
(word) div16s::dividendu ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$0 ← (signed word) div16s::dividend < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$1 ← ! (boolean~) div16s::$0
if((boolean~) div16s::$1) goto div16s::@1
if((boolean~) div16s::$0) goto div16s::@1
to:div16s::@7
div16s::@1: scope:[div16s] from div16s div16s::@8
(word~) div16s::$4 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$4
to:div16s::@2
div16s::@7: scope:[div16s] from div16s
(signed word~) div16s::$2 ← - (signed word) div16s::dividend
(word~) div16s::$3 ← ((word)) (signed word~) div16s::$2
(word) div16s::dividendu ← (word~) div16s::$3
(byte) div16s::neg ← (byte/signed byte/word/signed word/dword/signed dword) 1
to:div16s::@2
div16s::@7: scope:[div16s] from div16s
(word~) div16s::$1 ← ((word)) (signed word) div16s::dividend
(word) div16s::dividendu ← (word~) div16s::$1
to:div16s::@2
div16s::@2: scope:[div16s] from div16s::@1 div16s::@7
(word) div16s::divisoru ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$5 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$6 ← ! (boolean~) div16s::$5
if((boolean~) div16s::$6) goto div16s::@3
(boolean~) div16s::$4 ← (signed word) div16s::divisor < (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$4) goto div16s::@3
to:div16s::@9
div16s::@8: scope:[div16s] from
to:div16s::@1
div16s::@3: scope:[div16s] from div16s::@10 div16s::@2
(word~) div16s::$10 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$10
(signed word~) div16s::$6 ← - (signed word) div16s::divisor
(word~) div16s::$7 ← ((word)) (signed word~) div16s::$6
(word) div16s::divisoru ← (word~) div16s::$7
(byte/word/dword~) div16s::$8 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$8
to:div16s::@4
div16s::@9: scope:[div16s] from div16s::@2
(signed word~) div16s::$7 ← - (signed word) div16s::divisor
(word~) div16s::$8 ← ((word)) (signed word~) div16s::$7
(word) div16s::divisoru ← (word~) div16s::$8
(byte/word/dword~) div16s::$9 ← (byte) div16s::neg ^ (byte/signed byte/word/signed word/dword/signed dword) 1
(byte) div16s::neg ← (byte/word/dword~) div16s::$9
(word~) div16s::$5 ← ((word)) (signed word) div16s::divisor
(word) div16s::divisoru ← (word~) div16s::$5
to:div16s::@4
div16s::@4: scope:[div16s] from div16s::@3 div16s::@9
(word~) div16s::$11 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$11
(boolean~) div16s::$12 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) div16s::$13 ← ! (boolean~) div16s::$12
if((boolean~) div16s::$13) goto div16s::@5
(word~) div16s::$9 ← call div16u (word) div16s::dividendu (word) div16s::divisoru
(word) div16s::resultu ← (word~) div16s::$9
(boolean~) div16s::$10 ← (byte) div16s::neg == (byte/signed byte/word/signed word/dword/signed dword) 0
if((boolean~) div16s::$10) goto div16s::@5
to:div16s::@11
div16s::@10: scope:[div16s] from
to:div16s::@3
div16s::@5: scope:[div16s] from div16s::@13 div16s::@4
(signed word~) div16s::$16 ← ((signed word)) (word) rem16u
(signed word~) div16s::$17 ← - (signed word~) div16s::$16
(signed word) rem16s ← (signed word~) div16s::$17
(signed word~) div16s::$18 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$19 ← - (signed word~) div16s::$18
(signed word) div16s::return ← (signed word~) div16s::$19
(signed word~) div16s::$15 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$15
(signed word~) div16s::$16 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$16
to:div16s::@return
div16s::@11: scope:[div16s] from div16s::@4
(signed word~) div16s::$14 ← ((signed word)) (word) rem16u
(signed word) rem16s ← (signed word~) div16s::$14
(signed word~) div16s::$15 ← ((signed word)) (word) div16s::resultu
(signed word) div16s::return ← (signed word~) div16s::$15
(signed word~) div16s::$11 ← ((signed word)) (word) rem16u
(signed word~) div16s::$12 ← - (signed word~) div16s::$11
(signed word) rem16s ← (signed word~) div16s::$12
(signed word~) div16s::$13 ← ((signed word)) (word) div16s::resultu
(signed word~) div16s::$14 ← - (signed word~) div16s::$13
(signed word) div16s::return ← (signed word~) div16s::$14
to:div16s::@return
div16s::@return: scope:[div16s] from div16s::@11 div16s::@5 div16s::@6
(signed word) div16s::return ← (signed word) div16s::return

@ -189,7 +189,7 @@ print_str: {
}
div16s: {
.label _2 = 8
.label _7 = $a
.label _6 = $a
.label resultu = $c
.label return = $c
.label dividend = 8
@ -197,39 +197,15 @@ div16s: {
.label dividendu = 8
.label divisoru = $a
lda dividend+1
bpl b16
sec
lda _2
eor #$ff
adc #0
sta _2
lda _2+1
eor #$ff
adc #0
sta _2+1
ldy #1
bmi b1
ldy #0
b2:
lda divisor+1
bpl b4
sec
lda _7
eor #$ff
adc #0
sta _7
lda _7+1
eor #$ff
adc #0
sta _7+1
tya
eor #1
tay
bmi b3
b4:
jsr div16u
cpy #0
bne b5
breturn:
rts
b5:
beq breturn
sec
lda rem16s
eor #$ff
@ -248,9 +224,33 @@ div16s: {
eor #$ff
adc #0
sta return+1
jmp breturn
b16:
ldy #0
breturn:
rts
b3:
sec
lda _6
eor #$ff
adc #0
sta _6
lda _6+1
eor #$ff
adc #0
sta _6+1
tya
eor #1
tay
jmp b4
b1:
sec
lda _2
eor #$ff
adc #0
sta _2
lda _2+1
eor #$ff
adc #0
sta _2+1
ldy #1
jmp b2
}
div16u: {
@ -388,17 +388,33 @@ print_sbyte: {
div8s: {
.label neg = $10
cpy #0
bpl b16
bmi b1
lda #0
sta neg
b2:
cpx #0
bmi b3
b4:
tya
jsr div8u
tay
lda neg
beq b18
txa
eor #$ff
clc
adc #1
tax
tya
eor #$ff
clc
adc #1
tay
lda #1
sta neg
b2:
cpx #0
bpl b4
breturn:
rts
b18:
tya
jmp breturn
b3:
txa
eor #$ff
clc
@ -407,28 +423,14 @@ div8s: {
lda neg
eor #1
sta neg
b4:
jmp b4
b1:
tya
jsr div8u
eor #$ff
clc
adc #1
tay
lda neg
bne b5
tya
breturn:
rts
b5:
txa
eor #$ff
clc
adc #1
tax
tya
eor #$ff
clc
adc #1
jmp breturn
b16:
lda #0
lda #1
sta neg
jmp b2
}

@ -169,104 +169,104 @@ print_str::@2: scope:[print_str] from print_str::@1
[82] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#13 [ print_str::str#0 print_char_cursor#1 ] ( main:2::test_16s:13::print_str:28 [ test_16s::i#10 test_16s::divisor#0 test_16s::res#0 print_line_cursor#1 rem16s#3 print_str::str#0 print_char_cursor#1 ] main:2::test_16s:13::print_str:32 [ test_16s::i#10 test_16s::res#0 print_line_cursor#1 rem16s#3 print_str::str#0 print_char_cursor#1 ] main:2::test_16s:13::print_str:36 [ test_16s::i#10 print_line_cursor#1 rem16s#3 print_str::str#0 print_char_cursor#1 ] main:2::test_8s:11::print_str:144 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_str::str#0 print_char_cursor#1 ] main:2::test_8s:11::print_str:148 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_str::str#0 print_char_cursor#1 ] main:2::test_8s:11::print_str:152 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_str::str#0 print_char_cursor#1 ] main:2::test_16u:9::print_str:229 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::divisor#0 test_16u::res#0 print_str::str#0 print_char_cursor#1 ] main:2::test_16u:9::print_str:233 [ print_line_cursor#1 rem16u#1 test_16u::i#10 test_16u::res#0 print_str::str#0 print_char_cursor#1 ] main:2::test_16u:9::print_str:237 [ print_line_cursor#1 rem16u#1 test_16u::i#10 print_str::str#0 print_char_cursor#1 ] main:2::test_8u:7::print_str:257 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::divisor#0 test_8u::res#0 print_str::str#0 print_char_cursor#1 ] main:2::test_8u:7::print_str:261 [ print_line_cursor#41 rem8u#17 test_8u::i#10 test_8u::res#0 print_str::str#0 print_char_cursor#1 ] main:2::test_8u:7::print_str:265 [ print_line_cursor#41 rem8u#17 test_8u::i#10 print_str::str#0 print_char_cursor#1 ] )
to:print_str::@1
div16s: scope:[div16s] from test_16s::@1
[83] if((signed word) div16s::dividend#0>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto div16s::@16 [ div16s::dividend#0 div16s::divisor#0 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::dividend#0 div16s::divisor#0 ] )
to:div16s::@7
div16s::@7: scope:[div16s] from div16s
[84] (signed word~) div16s::$2 ← - (signed word) div16s::dividend#0 [ div16s::divisor#0 div16s::$2 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisor#0 div16s::$2 ] )
[85] (word~) div16s::dividendu#8 ← (word)(signed word~) div16s::$2 [ div16s::divisor#0 div16s::dividendu#8 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisor#0 div16s::dividendu#8 ] )
[83] if((signed word) div16s::dividend#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto div16s::@1 [ div16s::dividend#0 div16s::divisor#0 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::dividend#0 div16s::divisor#0 ] )
to:div16s::@16
div16s::@16: scope:[div16s] from div16s
[84] (word~) div16s::dividendu#8 ← (word)(signed word) div16s::dividend#0 [ div16s::divisor#0 div16s::dividendu#8 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisor#0 div16s::dividendu#8 ] )
to:div16s::@2
div16s::@2: scope:[div16s] from div16s::@16 div16s::@7
[86] (word) div16s::dividendu#3 ← phi( div16s::@16/(word~) div16s::dividendu#7 div16s::@7/(word~) div16s::dividendu#8 ) [ div16s::divisor#0 div16s::neg#3 div16s::dividendu#3 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisor#0 div16s::neg#3 div16s::dividendu#3 ] )
[86] (byte) div16s::neg#3 ← phi( div16s::@16/(byte/signed byte/word/signed word/dword/signed dword) 0 div16s::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ div16s::divisor#0 div16s::neg#3 div16s::dividendu#3 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisor#0 div16s::neg#3 div16s::dividendu#3 ] )
[87] if((signed word) div16s::divisor#0>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto div16s::@17 [ div16s::divisor#0 div16s::neg#3 div16s::dividendu#3 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisor#0 div16s::neg#3 div16s::dividendu#3 ] )
to:div16s::@9
div16s::@9: scope:[div16s] from div16s::@2
[88] (signed word~) div16s::$7 ← - (signed word) div16s::divisor#0 [ div16s::neg#3 div16s::dividendu#3 div16s::$7 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#3 div16s::dividendu#3 div16s::$7 ] )
[89] (byte) div16s::neg#2 ← (byte) div16s::neg#3 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 [ div16s::dividendu#3 div16s::$7 div16s::neg#2 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::dividendu#3 div16s::$7 div16s::neg#2 ] )
[90] (word~) div16s::divisoru#5 ← (word)(signed word~) div16s::$7 [ div16s::dividendu#3 div16s::neg#2 div16s::divisoru#5 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::dividendu#3 div16s::neg#2 div16s::divisoru#5 ] )
div16s::@2: scope:[div16s] from div16s::@1 div16s::@16
[85] (word) div16s::dividendu#3 ← phi( div16s::@1/(word~) div16s::dividendu#7 div16s::@16/(word~) div16s::dividendu#8 ) [ div16s::divisor#0 div16s::neg#3 div16s::dividendu#3 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisor#0 div16s::neg#3 div16s::dividendu#3 ] )
[85] (byte) div16s::neg#3 ← phi( div16s::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 div16s::@16/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ div16s::divisor#0 div16s::neg#3 div16s::dividendu#3 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisor#0 div16s::neg#3 div16s::dividendu#3 ] )
[86] if((signed word) div16s::divisor#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto div16s::@3 [ div16s::divisor#0 div16s::neg#3 div16s::dividendu#3 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisor#0 div16s::neg#3 div16s::dividendu#3 ] )
to:div16s::@17
div16s::@17: scope:[div16s] from div16s::@2
[87] (word~) div16s::divisoru#5 ← (word)(signed word) div16s::divisor#0 [ div16s::neg#3 div16s::dividendu#3 div16s::divisoru#5 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#3 div16s::dividendu#3 div16s::divisoru#5 ] )
to:div16s::@4
div16s::@4: scope:[div16s] from div16s::@17 div16s::@9
[91] (byte) div16s::neg#4 ← phi( div16s::@17/(byte) div16s::neg#3 div16s::@9/(byte) div16s::neg#2 ) [ div16s::dividendu#3 div16s::divisoru#3 div16s::neg#4 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::dividendu#3 div16s::divisoru#3 div16s::neg#4 ] )
[91] (word) div16s::divisoru#3 ← phi( div16s::@17/(word~) div16s::divisoru#4 div16s::@9/(word~) div16s::divisoru#5 ) [ div16s::dividendu#3 div16s::divisoru#3 div16s::neg#4 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::dividendu#3 div16s::divisoru#3 div16s::neg#4 ] )
[92] (word) div16u::dividend#0 ← (word) div16s::dividendu#3 [ div16s::divisoru#3 div16s::neg#4 div16u::dividend#0 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisoru#3 div16s::neg#4 div16u::dividend#0 ] )
[93] (word) div16u::divisor#0 ← (word) div16s::divisoru#3 [ div16s::neg#4 div16u::dividend#0 div16u::divisor#0 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::dividend#0 div16u::divisor#0 ] )
[94] call div16u param-assignment [ div16s::neg#4 div16u::return#0 rem16u#1 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::return#0 rem16u#1 ] )
[95] (word) div16u::return#2 ← (word) div16u::return#0 [ div16s::neg#4 div16u::return#2 rem16u#1 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::return#2 rem16u#1 ] )
div16s::@4: scope:[div16s] from div16s::@17 div16s::@3
[88] (byte) div16s::neg#4 ← phi( div16s::@3/(byte) div16s::neg#2 div16s::@17/(byte) div16s::neg#3 ) [ div16s::dividendu#3 div16s::divisoru#3 div16s::neg#4 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::dividendu#3 div16s::divisoru#3 div16s::neg#4 ] )
[88] (word) div16s::divisoru#3 ← phi( div16s::@3/(word~) div16s::divisoru#4 div16s::@17/(word~) div16s::divisoru#5 ) [ div16s::dividendu#3 div16s::divisoru#3 div16s::neg#4 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::dividendu#3 div16s::divisoru#3 div16s::neg#4 ] )
[89] (word) div16u::dividend#0 ← (word) div16s::dividendu#3 [ div16s::divisoru#3 div16s::neg#4 div16u::dividend#0 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisoru#3 div16s::neg#4 div16u::dividend#0 ] )
[90] (word) div16u::divisor#0 ← (word) div16s::divisoru#3 [ div16s::neg#4 div16u::dividend#0 div16u::divisor#0 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::dividend#0 div16u::divisor#0 ] )
[91] call div16u param-assignment [ div16s::neg#4 div16u::return#0 rem16u#1 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::return#0 rem16u#1 ] )
[92] (word) div16u::return#2 ← (word) div16u::return#0 [ div16s::neg#4 div16u::return#2 rem16u#1 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::return#2 rem16u#1 ] )
to:div16s::@15
div16s::@15: scope:[div16s] from div16s::@4
[96] (word) div16s::resultu#0 ← (word) div16u::return#2 [ div16s::neg#4 div16s::resultu#0 rem16u#1 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16s::resultu#0 rem16u#1 ] )
[97] if((byte) div16s::neg#4!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto div16s::@5 [ div16s::resultu#0 rem16u#1 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::resultu#0 rem16u#1 ] )
to:div16s::@18
div16s::@18: scope:[div16s] from div16s::@15
[98] (signed word~) div16s::return#6 ← (signed word)(word) div16s::resultu#0 [ div16s::return#6 rem16u#1 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::return#6 rem16u#1 ] )
[99] (signed word~) rem16s#31 ← (signed word)(word) rem16u#1 [ div16s::return#6 rem16s#31 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::return#6 rem16s#31 ] )
[93] (word) div16s::resultu#0 ← (word) div16u::return#2 [ div16s::neg#4 div16s::resultu#0 rem16u#1 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16s::resultu#0 rem16u#1 ] )
[94] if((byte) div16s::neg#4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto div16s::@18 [ div16s::resultu#0 rem16u#1 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::resultu#0 rem16u#1 ] )
to:div16s::@11
div16s::@11: scope:[div16s] from div16s::@15
[95] (signed word) rem16s#2 ← - (signed word)(word) rem16u#1 [ div16s::resultu#0 rem16s#2 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::resultu#0 rem16s#2 ] )
[96] (signed word) div16s::return#1 ← - (signed word)(word) div16s::resultu#0 [ rem16s#2 div16s::return#1 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 rem16s#2 div16s::return#1 ] )
to:div16s::@return
div16s::@return: scope:[div16s] from div16s::@18 div16s::@5
[100] (signed word) rem16s#3 ← phi( div16s::@18/(signed word~) rem16s#31 div16s::@5/(signed word) rem16s#1 ) [ div16s::return#2 rem16s#3 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::return#2 rem16s#3 ] )
[100] (signed word) div16s::return#2 ← phi( div16s::@18/(signed word~) div16s::return#6 div16s::@5/(signed word) div16s::return#0 ) [ div16s::return#2 rem16s#3 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::return#2 rem16s#3 ] )
[101] return [ div16s::return#2 rem16s#3 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::return#2 rem16s#3 ] )
div16s::@return: scope:[div16s] from div16s::@11 div16s::@18
[97] (signed word) rem16s#3 ← phi( div16s::@11/(signed word) rem16s#2 div16s::@18/(signed word~) rem16s#32 ) [ div16s::return#2 rem16s#3 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::return#2 rem16s#3 ] )
[97] (signed word) div16s::return#2 ← phi( div16s::@11/(signed word) div16s::return#1 div16s::@18/(signed word~) div16s::return#7 ) [ div16s::return#2 rem16s#3 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::return#2 rem16s#3 ] )
[98] return [ div16s::return#2 rem16s#3 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::return#2 rem16s#3 ] )
to:@return
div16s::@5: scope:[div16s] from div16s::@15
[102] (signed word) rem16s#1 ← - (signed word)(word) rem16u#1 [ div16s::resultu#0 rem16s#1 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::resultu#0 rem16s#1 ] )
[103] (signed word) div16s::return#0 ← - (signed word)(word) div16s::resultu#0 [ div16s::return#0 rem16s#1 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::return#0 rem16s#1 ] )
div16s::@18: scope:[div16s] from div16s::@15
[99] (signed word~) div16s::return#7 ← (signed word)(word) div16s::resultu#0 [ rem16u#1 div16s::return#7 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 rem16u#1 div16s::return#7 ] )
[100] (signed word~) rem16s#32 ← (signed word)(word) rem16u#1 [ div16s::return#7 rem16s#32 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::return#7 rem16s#32 ] )
to:div16s::@return
div16s::@17: scope:[div16s] from div16s::@2
[104] (word~) div16s::divisoru#4 ← (word)(signed word) div16s::divisor#0 [ div16s::neg#3 div16s::dividendu#3 div16s::divisoru#4 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#3 div16s::dividendu#3 div16s::divisoru#4 ] )
div16s::@3: scope:[div16s] from div16s::@2
[101] (signed word~) div16s::$6 ← - (signed word) div16s::divisor#0 [ div16s::neg#3 div16s::dividendu#3 div16s::$6 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#3 div16s::dividendu#3 div16s::$6 ] )
[102] (byte) div16s::neg#2 ← (byte) div16s::neg#3 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 [ div16s::dividendu#3 div16s::neg#2 div16s::$6 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::dividendu#3 div16s::neg#2 div16s::$6 ] )
[103] (word~) div16s::divisoru#4 ← (word)(signed word~) div16s::$6 [ div16s::dividendu#3 div16s::divisoru#4 div16s::neg#2 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::dividendu#3 div16s::divisoru#4 div16s::neg#2 ] )
to:div16s::@4
div16s::@16: scope:[div16s] from div16s
[105] (word~) div16s::dividendu#7 ← (word)(signed word) div16s::dividend#0 [ div16s::divisor#0 div16s::dividendu#7 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisor#0 div16s::dividendu#7 ] )
div16s::@1: scope:[div16s] from div16s
[104] (signed word~) div16s::$2 ← - (signed word) div16s::dividend#0 [ div16s::divisor#0 div16s::$2 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisor#0 div16s::$2 ] )
[105] (word~) div16s::dividendu#7 ← (word)(signed word~) div16s::$2 [ div16s::divisor#0 div16s::dividendu#7 ] ( main:2::test_16s:13::div16s:21 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::divisor#0 div16s::dividendu#7 ] )
to:div16s::@2
div16u: scope:[div16u] from div16s::@4 test_16u::@1
[106] (word) div16u::divisor#2 ← phi( div16s::@4/(word) div16u::divisor#0 test_16u::@1/(word) div16u::divisor#1 ) [ div16u::dividend#2 div16u::divisor#2 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::dividend#2 div16u::divisor#2 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::dividend#2 div16u::divisor#2 ] )
[106] (word) div16u::dividend#2 ← phi( div16s::@4/(word) div16u::dividend#0 test_16u::@1/(word) div16u::dividend#1 ) [ div16u::dividend#2 div16u::divisor#2 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::dividend#2 div16u::divisor#2 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::dividend#2 div16u::divisor#2 ] )
[107] (word) divr16u::dividend#1 ← (word) div16u::dividend#2 [ div16u::divisor#2 divr16u::dividend#1 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::divisor#2 divr16u::dividend#1 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::divisor#2 divr16u::dividend#1 ] )
[108] (word) divr16u::divisor#0 ← (word) div16u::divisor#2 [ divr16u::dividend#1 divr16u::divisor#0 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::dividend#1 divr16u::divisor#0 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::dividend#1 divr16u::divisor#0 ] )
[109] call divr16u param-assignment [ rem16u#1 divr16u::return#0 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 rem16u#1 divr16u::return#0 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 rem16u#1 divr16u::return#0 ] )
[110] (word) divr16u::return#2 ← (word) divr16u::return#0 [ rem16u#1 divr16u::return#2 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 rem16u#1 divr16u::return#2 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 rem16u#1 divr16u::return#2 ] )
[106] (word) div16u::divisor#2 ← phi( div16s::@4/(word) div16u::divisor#0 test_16u::@1/(word) div16u::divisor#1 ) [ div16u::dividend#2 div16u::divisor#2 ] ( main:2::test_16s:13::div16s:21::div16u:91 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::dividend#2 div16u::divisor#2 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::dividend#2 div16u::divisor#2 ] )
[106] (word) div16u::dividend#2 ← phi( div16s::@4/(word) div16u::dividend#0 test_16u::@1/(word) div16u::dividend#1 ) [ div16u::dividend#2 div16u::divisor#2 ] ( main:2::test_16s:13::div16s:21::div16u:91 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::dividend#2 div16u::divisor#2 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::dividend#2 div16u::divisor#2 ] )
[107] (word) divr16u::dividend#1 ← (word) div16u::dividend#2 [ div16u::divisor#2 divr16u::dividend#1 ] ( main:2::test_16s:13::div16s:21::div16u:91 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::divisor#2 divr16u::dividend#1 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::divisor#2 divr16u::dividend#1 ] )
[108] (word) divr16u::divisor#0 ← (word) div16u::divisor#2 [ divr16u::dividend#1 divr16u::divisor#0 ] ( main:2::test_16s:13::div16s:21::div16u:91 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::dividend#1 divr16u::divisor#0 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::dividend#1 divr16u::divisor#0 ] )
[109] call divr16u param-assignment [ rem16u#1 divr16u::return#0 ] ( main:2::test_16s:13::div16s:21::div16u:91 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 rem16u#1 divr16u::return#0 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 rem16u#1 divr16u::return#0 ] )
[110] (word) divr16u::return#2 ← (word) divr16u::return#0 [ rem16u#1 divr16u::return#2 ] ( main:2::test_16s:13::div16s:21::div16u:91 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 rem16u#1 divr16u::return#2 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 rem16u#1 divr16u::return#2 ] )
to:div16u::@2
div16u::@2: scope:[div16u] from div16u
[111] (word) div16u::return#0 ← (word) divr16u::return#2 [ div16u::return#0 rem16u#1 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::return#0 rem16u#1 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 rem16u#1 ] )
[111] (word) div16u::return#0 ← (word) divr16u::return#2 [ div16u::return#0 rem16u#1 ] ( main:2::test_16s:13::div16s:21::div16u:91 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::return#0 rem16u#1 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 rem16u#1 ] )
to:div16u::@return
div16u::@return: scope:[div16u] from div16u::@2
[112] return [ div16u::return#0 rem16u#1 ] ( main:2::test_16s:13::div16s:21::div16u:94 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::return#0 rem16u#1 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 rem16u#1 ] )
[112] return [ div16u::return#0 rem16u#1 ] ( main:2::test_16s:13::div16s:21::div16u:91 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 div16u::return#0 rem16u#1 ] main:2::test_16u:9::div16u:222 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 div16u::return#0 rem16u#1 ] )
to:@return
divr16u: scope:[divr16u] from div16u
[113] phi() [ divr16u::dividend#1 divr16u::divisor#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::dividend#1 divr16u::divisor#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::dividend#1 divr16u::divisor#0 ] )
[113] phi() [ divr16u::dividend#1 divr16u::divisor#0 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::dividend#1 divr16u::divisor#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::dividend#1 divr16u::divisor#0 ] )
to:divr16u::@1
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
[114] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[114] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[114] (word) divr16u::dividend#2 ← phi( divr16u/(word) divr16u::dividend#1 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[114] (word) divr16u::rem#4 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::rem#10 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[115] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
[116] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
[117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
[118] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
[114] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[114] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[114] (word) divr16u::dividend#2 ← phi( divr16u/(word) divr16u::dividend#1 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[114] (word) divr16u::rem#4 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::rem#10 ) [ divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[115] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
[116] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
[117] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
[118] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
to:divr16u::@4
divr16u::@4: scope:[divr16u] from divr16u::@1
[119] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
[119] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
to:divr16u::@2
divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4
[120] (word) divr16u::rem#5 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] )
[121] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 ] )
[122] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] )
[123] if((word) divr16u::rem#5<(word) divr16u::divisor#0) goto divr16u::@3 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] )
[120] (word) divr16u::rem#5 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] )
[121] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 ] )
[122] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] )
[123] if((word) divr16u::rem#5<(word) divr16u::divisor#0) goto divr16u::@3 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] )
to:divr16u::@5
divr16u::@5: scope:[divr16u] from divr16u::@2
[124] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#2 ] )
[125] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (word) divr16u::divisor#0 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] )
[124] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#2 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#2 ] )
[125] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (word) divr16u::divisor#0 [ divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] )
to:divr16u::@3
divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5
[126] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] )
[126] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] )
[127] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::divisor#0 divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] )
[128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::divisor#0 divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] )
[126] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] )
[126] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] )
[127] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::divisor#0 divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] )
[128] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::divisor#0 divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 divr16u::divisor#0 divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 divr16u::divisor#0 divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] )
to:divr16u::@6
divr16u::@6: scope:[divr16u] from divr16u::@3
[129] (word) rem16u#1 ← (word) divr16u::rem#10 [ rem16u#1 divr16u::return#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 rem16u#1 divr16u::return#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 rem16u#1 divr16u::return#0 ] )
[129] (word) rem16u#1 ← (word) divr16u::rem#10 [ rem16u#1 divr16u::return#0 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 rem16u#1 divr16u::return#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 rem16u#1 divr16u::return#0 ] )
to:divr16u::@return
divr16u::@return: scope:[divr16u] from divr16u::@6
[130] return [ rem16u#1 divr16u::return#0 ] ( main:2::test_16s:13::div16s:21::div16u:94::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 rem16u#1 divr16u::return#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 rem16u#1 divr16u::return#0 ] )
[130] return [ rem16u#1 divr16u::return#0 ] ( main:2::test_16s:13::div16s:21::div16u:91::divr16u:109 [ test_16s::i#10 test_16s::dividend#0 test_16s::divisor#0 print_line_cursor#1 div16s::neg#4 rem16u#1 divr16u::return#0 ] main:2::test_16u:9::div16u:222::divr16u:109 [ print_line_cursor#1 test_16u::i#10 test_16u::dividend#0 test_16u::divisor#0 rem16u#1 divr16u::return#0 ] )
to:@return
test_8s: scope:[test_8s] from main::@3
[131] phi() [ print_line_cursor#1 ] ( main:2::test_8s:11 [ print_line_cursor#1 ] )
@ -343,103 +343,103 @@ print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
[168] return [ print_char_cursor#17 ] ( main:2::test_8s:11::print_sbyte:142 [ print_line_cursor#1 test_8s::i#10 test_8s::divisor#0 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:146 [ print_line_cursor#1 test_8s::i#10 test_8s::res#0 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:150 [ print_line_cursor#1 test_8s::i#10 rem8s#3 print_char_cursor#17 ] main:2::test_8s:11::print_sbyte:154 [ print_line_cursor#1 test_8s::i#10 print_char_cursor#17 ] )
to:@return
div8s: scope:[div8s] from test_8s::@1
[169] if((signed byte) div8s::dividend#0>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@16 [ div8s::dividend#0 div8s::divisor#0 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::dividend#0 div8s::divisor#0 ] )
to:div8s::@7
div8s::@7: scope:[div8s] from div8s
[170] (signed byte~) div8s::$2 ← - (signed byte) div8s::dividend#0 [ div8s::divisor#0 div8s::$2 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::$2 ] )
[171] (byte~) div8s::dividendu#8 ← (byte)(signed byte~) div8s::$2 [ div8s::divisor#0 div8s::dividendu#8 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::dividendu#8 ] )
[169] if((signed byte) div8s::dividend#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@1 [ div8s::dividend#0 div8s::divisor#0 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::dividend#0 div8s::divisor#0 ] )
to:div8s::@16
div8s::@16: scope:[div8s] from div8s
[170] (byte~) div8s::dividendu#8 ← (byte)(signed byte) div8s::dividend#0 [ div8s::divisor#0 div8s::dividendu#8 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::dividendu#8 ] )
to:div8s::@2
div8s::@2: scope:[div8s] from div8s::@16 div8s::@7
[172] (byte) div8s::dividendu#3 ← phi( div8s::@16/(byte~) div8s::dividendu#7 div8s::@7/(byte~) div8s::dividendu#8 ) [ div8s::divisor#0 div8s::neg#3 div8s::dividendu#3 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::neg#3 div8s::dividendu#3 ] )
[172] (byte) div8s::neg#3 ← phi( div8s::@16/(byte/signed byte/word/signed word/dword/signed dword) 0 div8s::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ div8s::divisor#0 div8s::neg#3 div8s::dividendu#3 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::neg#3 div8s::dividendu#3 ] )
[173] if((signed byte) div8s::divisor#0>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@17 [ div8s::divisor#0 div8s::neg#3 div8s::dividendu#3 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::neg#3 div8s::dividendu#3 ] )
to:div8s::@9
div8s::@9: scope:[div8s] from div8s::@2
[174] (signed byte~) div8s::$7 ← - (signed byte) div8s::divisor#0 [ div8s::neg#3 div8s::dividendu#3 div8s::$7 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#3 div8s::dividendu#3 div8s::$7 ] )
[175] (byte) div8s::neg#2 ← (byte) div8s::neg#3 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 [ div8s::dividendu#3 div8s::$7 div8s::neg#2 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::dividendu#3 div8s::$7 div8s::neg#2 ] )
[176] (byte~) div8s::divisoru#5 ← (byte)(signed byte~) div8s::$7 [ div8s::dividendu#3 div8s::neg#2 div8s::divisoru#5 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::dividendu#3 div8s::neg#2 div8s::divisoru#5 ] )
div8s::@2: scope:[div8s] from div8s::@1 div8s::@16
[171] (byte) div8s::dividendu#3 ← phi( div8s::@1/(byte~) div8s::dividendu#7 div8s::@16/(byte~) div8s::dividendu#8 ) [ div8s::divisor#0 div8s::neg#3 div8s::dividendu#3 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::neg#3 div8s::dividendu#3 ] )
[171] (byte) div8s::neg#3 ← phi( div8s::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 div8s::@16/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ div8s::divisor#0 div8s::neg#3 div8s::dividendu#3 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::neg#3 div8s::dividendu#3 ] )
[172] if((signed byte) div8s::divisor#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@3 [ div8s::divisor#0 div8s::neg#3 div8s::dividendu#3 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::neg#3 div8s::dividendu#3 ] )
to:div8s::@17
div8s::@17: scope:[div8s] from div8s::@2
[173] (byte~) div8s::divisoru#5 ← (byte)(signed byte) div8s::divisor#0 [ div8s::neg#3 div8s::dividendu#3 div8s::divisoru#5 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#3 div8s::dividendu#3 div8s::divisoru#5 ] )
to:div8s::@4
div8s::@4: scope:[div8s] from div8s::@17 div8s::@9
[177] (byte) div8s::neg#4 ← phi( div8s::@17/(byte) div8s::neg#3 div8s::@9/(byte) div8s::neg#2 ) [ div8s::dividendu#3 div8s::divisoru#3 div8s::neg#4 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::dividendu#3 div8s::divisoru#3 div8s::neg#4 ] )
[177] (byte) div8s::divisoru#3 ← phi( div8s::@17/(byte~) div8s::divisoru#4 div8s::@9/(byte~) div8s::divisoru#5 ) [ div8s::dividendu#3 div8s::divisoru#3 div8s::neg#4 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::dividendu#3 div8s::divisoru#3 div8s::neg#4 ] )
[178] (byte) div8u::dividend#0 ← (byte) div8s::dividendu#3 [ div8s::divisoru#3 div8s::neg#4 div8u::dividend#0 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisoru#3 div8s::neg#4 div8u::dividend#0 ] )
[179] (byte) div8u::divisor#0 ← (byte) div8s::divisoru#3 [ div8s::neg#4 div8u::dividend#0 div8u::divisor#0 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::dividend#0 div8u::divisor#0 ] )
[180] call div8u param-assignment [ div8s::neg#4 div8u::return#0 rem8u#17 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::return#0 rem8u#17 ] )
[181] (byte) div8u::return#2 ← (byte) div8u::return#0 [ div8s::neg#4 div8u::return#2 rem8u#17 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::return#2 rem8u#17 ] )
div8s::@4: scope:[div8s] from div8s::@17 div8s::@3
[174] (byte) div8s::neg#4 ← phi( div8s::@3/(byte) div8s::neg#2 div8s::@17/(byte) div8s::neg#3 ) [ div8s::dividendu#3 div8s::divisoru#3 div8s::neg#4 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::dividendu#3 div8s::divisoru#3 div8s::neg#4 ] )
[174] (byte) div8s::divisoru#3 ← phi( div8s::@3/(byte~) div8s::divisoru#4 div8s::@17/(byte~) div8s::divisoru#5 ) [ div8s::dividendu#3 div8s::divisoru#3 div8s::neg#4 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::dividendu#3 div8s::divisoru#3 div8s::neg#4 ] )
[175] (byte) div8u::dividend#0 ← (byte) div8s::dividendu#3 [ div8s::divisoru#3 div8s::neg#4 div8u::dividend#0 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisoru#3 div8s::neg#4 div8u::dividend#0 ] )
[176] (byte) div8u::divisor#0 ← (byte) div8s::divisoru#3 [ div8s::neg#4 div8u::dividend#0 div8u::divisor#0 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::dividend#0 div8u::divisor#0 ] )
[177] call div8u param-assignment [ div8s::neg#4 div8u::return#0 rem8u#17 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::return#0 rem8u#17 ] )
[178] (byte) div8u::return#2 ← (byte) div8u::return#0 [ div8s::neg#4 div8u::return#2 rem8u#17 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::return#2 rem8u#17 ] )
to:div8s::@15
div8s::@15: scope:[div8s] from div8s::@4
[182] (byte) div8s::resultu#0 ← (byte) div8u::return#2 [ div8s::neg#4 div8s::resultu#0 rem8u#17 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8s::resultu#0 rem8u#17 ] )
[183] if((byte) div8s::neg#4!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@5 [ div8s::resultu#0 rem8u#17 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::resultu#0 rem8u#17 ] )
to:div8s::@18
div8s::@18: scope:[div8s] from div8s::@15
[184] (signed byte~) div8s::return#6 ← (signed byte)(byte) div8s::resultu#0 [ div8s::return#6 rem8u#17 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::return#6 rem8u#17 ] )
[185] (signed byte~) rem8s#32 ← (signed byte)(byte) rem8u#17 [ div8s::return#6 rem8s#32 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::return#6 rem8s#32 ] )
[179] (byte) div8s::resultu#0 ← (byte) div8u::return#2 [ div8s::neg#4 div8s::resultu#0 rem8u#17 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8s::resultu#0 rem8u#17 ] )
[180] if((byte) div8s::neg#4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto div8s::@18 [ div8s::resultu#0 rem8u#17 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::resultu#0 rem8u#17 ] )
to:div8s::@11
div8s::@11: scope:[div8s] from div8s::@15
[181] (signed byte) rem8s#2 ← - (signed byte)(byte) rem8u#17 [ div8s::resultu#0 rem8s#2 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::resultu#0 rem8s#2 ] )
[182] (signed byte) div8s::return#1 ← - (signed byte)(byte) div8s::resultu#0 [ rem8s#2 div8s::return#1 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 rem8s#2 div8s::return#1 ] )
to:div8s::@return
div8s::@return: scope:[div8s] from div8s::@18 div8s::@5
[186] (signed byte) rem8s#3 ← phi( div8s::@18/(signed byte~) rem8s#32 div8s::@5/(signed byte) rem8s#1 ) [ div8s::return#2 rem8s#3 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::return#2 rem8s#3 ] )
[186] (signed byte) div8s::return#2 ← phi( div8s::@18/(signed byte~) div8s::return#6 div8s::@5/(signed byte) div8s::return#0 ) [ div8s::return#2 rem8s#3 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::return#2 rem8s#3 ] )
[187] return [ div8s::return#2 rem8s#3 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::return#2 rem8s#3 ] )
div8s::@return: scope:[div8s] from div8s::@11 div8s::@18
[183] (signed byte) rem8s#3 ← phi( div8s::@11/(signed byte) rem8s#2 div8s::@18/(signed byte~) rem8s#33 ) [ div8s::return#2 rem8s#3 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::return#2 rem8s#3 ] )
[183] (signed byte) div8s::return#2 ← phi( div8s::@11/(signed byte) div8s::return#1 div8s::@18/(signed byte~) div8s::return#7 ) [ div8s::return#2 rem8s#3 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::return#2 rem8s#3 ] )
[184] return [ div8s::return#2 rem8s#3 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::return#2 rem8s#3 ] )
to:@return
div8s::@5: scope:[div8s] from div8s::@15
[188] (signed byte) rem8s#1 ← - (signed byte)(byte) rem8u#17 [ div8s::resultu#0 rem8s#1 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::resultu#0 rem8s#1 ] )
[189] (signed byte) div8s::return#0 ← - (signed byte)(byte) div8s::resultu#0 [ div8s::return#0 rem8s#1 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::return#0 rem8s#1 ] )
div8s::@18: scope:[div8s] from div8s::@15
[185] (signed byte~) div8s::return#7 ← (signed byte)(byte) div8s::resultu#0 [ rem8u#17 div8s::return#7 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 rem8u#17 div8s::return#7 ] )
[186] (signed byte~) rem8s#33 ← (signed byte)(byte) rem8u#17 [ div8s::return#7 rem8s#33 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::return#7 rem8s#33 ] )
to:div8s::@return
div8s::@17: scope:[div8s] from div8s::@2
[190] (byte~) div8s::divisoru#4 ← (byte)(signed byte) div8s::divisor#0 [ div8s::neg#3 div8s::dividendu#3 div8s::divisoru#4 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#3 div8s::dividendu#3 div8s::divisoru#4 ] )
div8s::@3: scope:[div8s] from div8s::@2
[187] (signed byte~) div8s::$6 ← - (signed byte) div8s::divisor#0 [ div8s::neg#3 div8s::dividendu#3 div8s::$6 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#3 div8s::dividendu#3 div8s::$6 ] )
[188] (byte) div8s::neg#2 ← (byte) div8s::neg#3 ^ (byte/signed byte/word/signed word/dword/signed dword) 1 [ div8s::dividendu#3 div8s::neg#2 div8s::$6 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::dividendu#3 div8s::neg#2 div8s::$6 ] )
[189] (byte~) div8s::divisoru#4 ← (byte)(signed byte~) div8s::$6 [ div8s::dividendu#3 div8s::divisoru#4 div8s::neg#2 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::dividendu#3 div8s::divisoru#4 div8s::neg#2 ] )
to:div8s::@4
div8s::@16: scope:[div8s] from div8s
[191] (byte~) div8s::dividendu#7 ← (byte)(signed byte) div8s::dividend#0 [ div8s::divisor#0 div8s::dividendu#7 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::dividendu#7 ] )
div8s::@1: scope:[div8s] from div8s
[190] (signed byte~) div8s::$2 ← - (signed byte) div8s::dividend#0 [ div8s::divisor#0 div8s::$2 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::$2 ] )
[191] (byte~) div8s::dividendu#7 ← (byte)(signed byte~) div8s::$2 [ div8s::divisor#0 div8s::dividendu#7 ] ( main:2::test_8s:11::div8s:137 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::divisor#0 div8s::dividendu#7 ] )
to:div8s::@2
div8u: scope:[div8u] from div8s::@4 test_8u::@1
[192] (byte) div8u::divisor#2 ← phi( div8s::@4/(byte) div8u::divisor#0 test_8u::@1/(byte) div8u::divisor#1 ) [ div8u::dividend#2 div8u::divisor#2 ] ( main:2::test_8s:11::div8s:137::div8u:180 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::dividend#2 div8u::divisor#2 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::dividend#2 div8u::divisor#2 ] )
[192] (byte) div8u::dividend#2 ← phi( div8s::@4/(byte) div8u::dividend#0 test_8u::@1/(byte) div8u::dividend#1 ) [ div8u::dividend#2 div8u::divisor#2 ] ( main:2::test_8s:11::div8s:137::div8u:180 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::dividend#2 div8u::divisor#2 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::dividend#2 div8u::divisor#2 ] )
[193] (byte) divr8u::dividend#0 ← (byte) div8u::dividend#2 [ div8u::divisor#2 divr8u::dividend#0 ] ( main:2::test_8s:11::div8s:137::div8u:180 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::divisor#2 divr8u::dividend#0 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::divisor#2 divr8u::dividend#0 ] )
[194] (byte) divr8u::divisor#0 ← (byte) div8u::divisor#2 [ divr8u::dividend#0 divr8u::divisor#0 ] ( main:2::test_8s:11::div8s:137::div8u:180 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::dividend#0 divr8u::divisor#0 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::dividend#0 divr8u::divisor#0 ] )
[195] call divr8u param-assignment [ rem8u#17 divr8u::return#1 ] ( main:2::test_8s:11::div8s:137::div8u:180 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 rem8u#17 divr8u::return#1 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 rem8u#17 divr8u::return#1 ] )
[196] (byte) divr8u::return#0 ← (byte) divr8u::return#1 [ rem8u#17 divr8u::return#0 ] ( main:2::test_8s:11::div8s:137::div8u:180 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 rem8u#17 divr8u::return#0 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 rem8u#17 divr8u::return#0 ] )
[192] (byte) div8u::divisor#2 ← phi( div8s::@4/(byte) div8u::divisor#0 test_8u::@1/(byte) div8u::divisor#1 ) [ div8u::dividend#2 div8u::divisor#2 ] ( main:2::test_8s:11::div8s:137::div8u:177 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::dividend#2 div8u::divisor#2 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::dividend#2 div8u::divisor#2 ] )
[192] (byte) div8u::dividend#2 ← phi( div8s::@4/(byte) div8u::dividend#0 test_8u::@1/(byte) div8u::dividend#1 ) [ div8u::dividend#2 div8u::divisor#2 ] ( main:2::test_8s:11::div8s:137::div8u:177 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::dividend#2 div8u::divisor#2 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::dividend#2 div8u::divisor#2 ] )
[193] (byte) divr8u::dividend#0 ← (byte) div8u::dividend#2 [ div8u::divisor#2 divr8u::dividend#0 ] ( main:2::test_8s:11::div8s:137::div8u:177 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::divisor#2 divr8u::dividend#0 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::divisor#2 divr8u::dividend#0 ] )
[194] (byte) divr8u::divisor#0 ← (byte) div8u::divisor#2 [ divr8u::dividend#0 divr8u::divisor#0 ] ( main:2::test_8s:11::div8s:137::div8u:177 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::dividend#0 divr8u::divisor#0 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::dividend#0 divr8u::divisor#0 ] )
[195] call divr8u param-assignment [ rem8u#17 divr8u::return#1 ] ( main:2::test_8s:11::div8s:137::div8u:177 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 rem8u#17 divr8u::return#1 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 rem8u#17 divr8u::return#1 ] )
[196] (byte) divr8u::return#0 ← (byte) divr8u::return#1 [ rem8u#17 divr8u::return#0 ] ( main:2::test_8s:11::div8s:137::div8u:177 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 rem8u#17 divr8u::return#0 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 rem8u#17 divr8u::return#0 ] )
to:div8u::@2
div8u::@2: scope:[div8u] from div8u
[197] (byte) div8u::return#0 ← (byte) divr8u::return#0 [ div8u::return#0 rem8u#17 ] ( main:2::test_8s:11::div8s:137::div8u:180 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::return#0 rem8u#17 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::return#0 rem8u#17 ] )
[197] (byte) div8u::return#0 ← (byte) divr8u::return#0 [ div8u::return#0 rem8u#17 ] ( main:2::test_8s:11::div8s:137::div8u:177 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::return#0 rem8u#17 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::return#0 rem8u#17 ] )
to:div8u::@return
div8u::@return: scope:[div8u] from div8u::@2
[198] return [ div8u::return#0 rem8u#17 ] ( main:2::test_8s:11::div8s:137::div8u:180 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::return#0 rem8u#17 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::return#0 rem8u#17 ] )
[198] return [ div8u::return#0 rem8u#17 ] ( main:2::test_8s:11::div8s:137::div8u:177 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 div8u::return#0 rem8u#17 ] main:2::test_8u:7::div8u:251 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 div8u::return#0 rem8u#17 ] )
to:@return
divr8u: scope:[divr8u] from div8u
[199] phi() [ divr8u::dividend#0 divr8u::divisor#0 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::dividend#0 divr8u::divisor#0 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::dividend#0 divr8u::divisor#0 ] )
[199] phi() [ divr8u::dividend#0 divr8u::divisor#0 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::dividend#0 divr8u::divisor#0 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::dividend#0 divr8u::divisor#0 ] )
to:divr8u::@1
divr8u::@1: scope:[divr8u] from divr8u divr8u::@3
[200] (byte) divr8u::i#2 ← phi( divr8u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr8u::@3/(byte) divr8u::i#1 ) [ divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] )
[200] (byte) divr8u::quotient#3 ← phi( divr8u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr8u::@3/(byte) divr8u::return#1 ) [ divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] )
[200] (byte) divr8u::dividend#2 ← phi( divr8u/(byte) divr8u::dividend#0 divr8u::@3/(byte) divr8u::dividend#1 ) [ divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] )
[200] (byte) divr8u::rem#4 ← phi( divr8u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr8u::@3/(byte) divr8u::rem#10 ) [ divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] )
[201] (byte) divr8u::rem#1 ← (byte) divr8u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] )
[202] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) 128 [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] )
[203] if((byte~) divr8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr8u::@2 [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] )
[200] (byte) divr8u::i#2 ← phi( divr8u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr8u::@3/(byte) divr8u::i#1 ) [ divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] )
[200] (byte) divr8u::quotient#3 ← phi( divr8u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr8u::@3/(byte) divr8u::return#1 ) [ divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] )
[200] (byte) divr8u::dividend#2 ← phi( divr8u/(byte) divr8u::dividend#0 divr8u::@3/(byte) divr8u::dividend#1 ) [ divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] )
[200] (byte) divr8u::rem#4 ← phi( divr8u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr8u::@3/(byte) divr8u::rem#10 ) [ divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::rem#4 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 ] )
[201] (byte) divr8u::rem#1 ← (byte) divr8u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] )
[202] (byte~) divr8u::$1 ← (byte) divr8u::dividend#2 & (byte/word/signed word/dword/signed dword) 128 [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 divr8u::$1 ] )
[203] if((byte~) divr8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr8u::@2 [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] )
to:divr8u::@4
divr8u::@4: scope:[divr8u] from divr8u::@1
[204] (byte) divr8u::rem#2 ← (byte) divr8u::rem#1 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#2 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#2 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#2 ] )
[204] (byte) divr8u::rem#2 ← (byte) divr8u::rem#1 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#2 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#2 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#2 ] )
to:divr8u::@2
divr8u::@2: scope:[divr8u] from divr8u::@1 divr8u::@4
[205] (byte) divr8u::rem#5 ← phi( divr8u::@1/(byte) divr8u::rem#1 divr8u::@4/(byte) divr8u::rem#2 ) [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#5 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#5 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#5 ] )
[206] (byte) divr8u::dividend#1 ← (byte) divr8u::dividend#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr8u::divisor#0 divr8u::quotient#3 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::quotient#3 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::quotient#3 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 ] )
[207] (byte) divr8u::quotient#1 ← (byte) divr8u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#1 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#1 ] )
[208] if((byte) divr8u::rem#5<(byte) divr8u::divisor#0) goto divr8u::@3 [ divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#1 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#1 ] )
[205] (byte) divr8u::rem#5 ← phi( divr8u::@1/(byte) divr8u::rem#1 divr8u::@4/(byte) divr8u::rem#2 ) [ divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#5 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#5 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::dividend#2 divr8u::quotient#3 divr8u::i#2 divr8u::rem#5 ] )
[206] (byte) divr8u::dividend#1 ← (byte) divr8u::dividend#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr8u::divisor#0 divr8u::quotient#3 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::quotient#3 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::quotient#3 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 ] )
[207] (byte) divr8u::quotient#1 ← (byte) divr8u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#1 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#1 ] )
[208] if((byte) divr8u::rem#5<(byte) divr8u::divisor#0) goto divr8u::@3 [ divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#1 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#1 ] )
to:divr8u::@5
divr8u::@5: scope:[divr8u] from divr8u::@2
[209] (byte) divr8u::quotient#2 ← ++ (byte) divr8u::quotient#1 [ divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#2 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#2 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#2 ] )
[210] (byte) divr8u::rem#3 ← (byte) divr8u::rem#5 - (byte) divr8u::divisor#0 [ divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::quotient#2 divr8u::rem#3 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::quotient#2 divr8u::rem#3 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::quotient#2 divr8u::rem#3 ] )
[209] (byte) divr8u::quotient#2 ← ++ (byte) divr8u::quotient#1 [ divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#2 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#2 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::rem#5 divr8u::quotient#2 ] )
[210] (byte) divr8u::rem#3 ← (byte) divr8u::rem#5 - (byte) divr8u::divisor#0 [ divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::quotient#2 divr8u::rem#3 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::quotient#2 divr8u::rem#3 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::i#2 divr8u::dividend#1 divr8u::quotient#2 divr8u::rem#3 ] )
to:divr8u::@3
divr8u::@3: scope:[divr8u] from divr8u::@2 divr8u::@5
[211] (byte) divr8u::return#1 ← phi( divr8u::@2/(byte) divr8u::quotient#1 divr8u::@5/(byte) divr8u::quotient#2 ) [ divr8u::divisor#0 divr8u::return#1 divr8u::i#2 divr8u::rem#10 divr8u::dividend#1 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::return#1 divr8u::i#2 divr8u::rem#10 divr8u::dividend#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::return#1 divr8u::i#2 divr8u::rem#10 divr8u::dividend#1 ] )
[211] (byte) divr8u::rem#10 ← phi( divr8u::@2/(byte) divr8u::rem#5 divr8u::@5/(byte) divr8u::rem#3 ) [ divr8u::divisor#0 divr8u::return#1 divr8u::i#2 divr8u::rem#10 divr8u::dividend#1 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::return#1 divr8u::i#2 divr8u::rem#10 divr8u::dividend#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::return#1 divr8u::i#2 divr8u::rem#10 divr8u::dividend#1 ] )
[212] (byte) divr8u::i#1 ← ++ (byte) divr8u::i#2 [ divr8u::divisor#0 divr8u::return#1 divr8u::rem#10 divr8u::dividend#1 divr8u::i#1 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::return#1 divr8u::rem#10 divr8u::dividend#1 divr8u::i#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::return#1 divr8u::rem#10 divr8u::dividend#1 divr8u::i#1 ] )
[213] if((byte) divr8u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto divr8u::@1 [ divr8u::divisor#0 divr8u::return#1 divr8u::rem#10 divr8u::dividend#1 divr8u::i#1 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::return#1 divr8u::rem#10 divr8u::dividend#1 divr8u::i#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::return#1 divr8u::rem#10 divr8u::dividend#1 divr8u::i#1 ] )
[211] (byte) divr8u::return#1 ← phi( divr8u::@2/(byte) divr8u::quotient#1 divr8u::@5/(byte) divr8u::quotient#2 ) [ divr8u::divisor#0 divr8u::return#1 divr8u::i#2 divr8u::rem#10 divr8u::dividend#1 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::return#1 divr8u::i#2 divr8u::rem#10 divr8u::dividend#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::return#1 divr8u::i#2 divr8u::rem#10 divr8u::dividend#1 ] )
[211] (byte) divr8u::rem#10 ← phi( divr8u::@2/(byte) divr8u::rem#5 divr8u::@5/(byte) divr8u::rem#3 ) [ divr8u::divisor#0 divr8u::return#1 divr8u::i#2 divr8u::rem#10 divr8u::dividend#1 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::return#1 divr8u::i#2 divr8u::rem#10 divr8u::dividend#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::return#1 divr8u::i#2 divr8u::rem#10 divr8u::dividend#1 ] )
[212] (byte) divr8u::i#1 ← ++ (byte) divr8u::i#2 [ divr8u::divisor#0 divr8u::return#1 divr8u::rem#10 divr8u::dividend#1 divr8u::i#1 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::return#1 divr8u::rem#10 divr8u::dividend#1 divr8u::i#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::return#1 divr8u::rem#10 divr8u::dividend#1 divr8u::i#1 ] )
[213] if((byte) divr8u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto divr8u::@1 [ divr8u::divisor#0 divr8u::return#1 divr8u::rem#10 divr8u::dividend#1 divr8u::i#1 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 divr8u::divisor#0 divr8u::return#1 divr8u::rem#10 divr8u::dividend#1 divr8u::i#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 divr8u::divisor#0 divr8u::return#1 divr8u::rem#10 divr8u::dividend#1 divr8u::i#1 ] )
to:divr8u::@6
divr8u::@6: scope:[divr8u] from divr8u::@3
[214] (byte) rem8u#17 ← (byte) divr8u::rem#10 [ rem8u#17 divr8u::return#1 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 rem8u#17 divr8u::return#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 rem8u#17 divr8u::return#1 ] )
[214] (byte) rem8u#17 ← (byte) divr8u::rem#10 [ rem8u#17 divr8u::return#1 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 rem8u#17 divr8u::return#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 rem8u#17 divr8u::return#1 ] )
to:divr8u::@return
divr8u::@return: scope:[divr8u] from divr8u::@6
[215] return [ rem8u#17 divr8u::return#1 ] ( main:2::test_8s:11::div8s:137::div8u:180::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 rem8u#17 divr8u::return#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 rem8u#17 divr8u::return#1 ] )
[215] return [ rem8u#17 divr8u::return#1 ] ( main:2::test_8s:11::div8s:137::div8u:177::divr8u:195 [ print_line_cursor#1 test_8s::i#10 test_8s::dividend#0 test_8s::divisor#0 div8s::neg#4 rem8u#17 divr8u::return#1 ] main:2::test_8u:7::div8u:251::divr8u:195 [ print_line_cursor#41 print_char_cursor#135 test_8u::i#10 test_8u::dividend#0 test_8u::divisor#0 rem8u#17 divr8u::return#1 ] )
to:@return
test_16u: scope:[test_16u] from main::@2
[216] phi() [ print_line_cursor#1 ] ( main:2::test_16u:9 [ print_line_cursor#1 ] )

File diff suppressed because one or more lines are too long

@ -3,16 +3,16 @@
(label) @end
(signed word()) div16s((signed word) div16s::dividend , (signed word) div16s::divisor)
(signed word~) div16s::$2 $2 zp ZP_WORD:8 2.0
(signed word~) div16s::$7 $7 zp ZP_WORD:10 1.0
(signed word~) div16s::$6 $6 zp ZP_WORD:10 1.0
(label) div16s::@1
(label) div16s::@11
(label) div16s::@15
(label) div16s::@16
(label) div16s::@17
(label) div16s::@18
(label) div16s::@2
(label) div16s::@3
(label) div16s::@4
(label) div16s::@5
(label) div16s::@7
(label) div16s::@9
(label) div16s::@return
(signed word) div16s::dividend
(signed word) div16s::dividend#0 dividend zp ZP_WORD:8 5.0
@ -33,10 +33,10 @@
(word) div16s::resultu
(word) div16s::resultu#0 resultu zp ZP_WORD:12 0.6666666666666666
(signed word) div16s::return
(signed word) div16s::return#0 return zp ZP_WORD:12 4.0
(signed word) div16s::return#1 return zp ZP_WORD:12 4.0
(signed word) div16s::return#2 return zp ZP_WORD:12 5.0
(signed word) div16s::return#3 return zp ZP_WORD:12 22.0
(signed word~) div16s::return#6 return zp ZP_WORD:12 2.0
(signed word~) div16s::return#7 return zp ZP_WORD:12 2.0
(word()) div16u((word) div16u::dividend , (word) div16u::divisor)
(label) div16u::@2
(label) div16u::@return
@ -54,16 +54,16 @@
(word) div16u::return#3 return zp ZP_WORD:12 22.0
(signed byte()) div8s((signed byte) div8s::dividend , (signed byte) div8s::divisor)
(signed byte~) div8s::$2 reg byte a 2.0
(signed byte~) div8s::$7 reg byte x 1.0
(signed byte~) div8s::$6 reg byte x 1.0
(label) div8s::@1
(label) div8s::@11
(label) div8s::@15
(label) div8s::@16
(label) div8s::@17
(label) div8s::@18
(label) div8s::@2
(label) div8s::@3
(label) div8s::@4
(label) div8s::@5
(label) div8s::@7
(label) div8s::@9
(label) div8s::@return
(signed byte) div8s::dividend
(signed byte) div8s::dividend#0 reg byte y 5.0
@ -84,10 +84,10 @@
(byte) div8s::resultu
(byte) div8s::resultu#0 reg byte y 0.6666666666666666
(signed byte) div8s::return
(signed byte) div8s::return#0 reg byte a 4.0
(signed byte) div8s::return#1 reg byte a 4.0
(signed byte) div8s::return#2 reg byte a 5.0
(signed byte) div8s::return#3 reg byte a 22.0
(signed byte~) div8s::return#6 reg byte a 2.0
(signed byte~) div8s::return#7 reg byte a 2.0
(byte()) div8u((byte) div8u::dividend , (byte) div8u::divisor)
(label) div8u::@2
(label) div8u::@return
@ -272,15 +272,15 @@
(word) print_word::w#5 w zp ZP_WORD:5 16.666666666666664
(word~) print_word::w#7 w zp ZP_WORD:5 4.0
(signed word) rem16s
(signed word) rem16s#1 rem16s zp ZP_WORD:14 2.0
(signed word) rem16s#2 rem16s zp ZP_WORD:14 2.0
(signed word) rem16s#3 rem16s zp ZP_WORD:14 0.8333333333333335
(signed word~) rem16s#31 rem16s zp ZP_WORD:14 4.0
(signed word~) rem16s#32 rem16s zp ZP_WORD:14 4.0
(word) rem16u
(word) rem16u#1 rem16u zp ZP_WORD:14 0.48148148148148145
(signed byte) rem8s
(signed byte) rem8s#1 reg byte x 2.0
(signed byte) rem8s#2 reg byte x 2.0
(signed byte) rem8s#3 reg byte x 0.8333333333333335
(signed byte~) rem8s#32 reg byte x 4.0
(signed byte~) rem8s#33 reg byte x 4.0
(byte) rem8u
(byte) rem8u#17 reg byte x 0.5
(void()) test_16s()
@ -403,16 +403,16 @@ zp ZP_WORD:5 [ print_sword::w#6 print_sword::w#5 print_sword::w#1 print_sword::w
zp ZP_BYTE:7 [ print_byte::b#7 print_byte::b#9 print_byte::b#1 print_byte::b#2 print_byte::b#3 print_byte::b#4 print_byte::b#5 print_byte::b#6 print_sbyte::b#6 print_sbyte::b#5 print_sbyte::b#1 print_sbyte::b#2 print_sbyte::b#3 print_sbyte::b#4 print_sbyte::b#0 test_8u::dividend#0 test_8s::dividend#0 ]
reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ]
zp ZP_WORD:8 [ print_char_cursor#80 print_char_cursor#133 print_char_cursor#130 print_char_cursor#132 print_char_cursor#128 print_char_cursor#129 print_char_cursor#156 print_char_cursor#126 print_char_cursor#17 print_char_cursor#163 print_char_cursor#135 print_char_cursor#131 print_char_cursor#1 print_char_cursor#180 print_char_cursor#186 div16s::dividendu#3 div16s::dividendu#7 div16s::dividendu#8 div16u::dividend#2 div16u::dividend#0 div16u::dividend#1 div16s::dividend#0 div16s::$2 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ]
zp ZP_WORD:10 [ div16s::divisoru#3 div16s::divisoru#4 div16s::divisoru#5 div16u::divisor#2 div16u::divisor#0 div16u::divisor#1 div16s::divisor#0 div16s::$7 divr16u::divisor#0 test_16u::divisor#0 ]
reg byte y [ div16s::neg#4 div16s::neg#3 div16s::neg#2 ]
zp ZP_WORD:12 [ div16s::return#2 div16s::return#6 div16s::return#0 div16s::resultu#0 div16s::return#3 test_16s::res#0 div16u::return#2 div16u::return#0 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div16u::return#3 test_16u::res#0 ]
zp ZP_WORD:14 [ rem16s#3 rem16s#31 rem16s#1 rem16u#1 divr16u::rem#4 divr16u::rem#10 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ]
zp ZP_WORD:10 [ div16s::divisoru#3 div16s::divisoru#4 div16s::divisoru#5 div16u::divisor#2 div16u::divisor#0 div16u::divisor#1 div16s::divisor#0 div16s::$6 divr16u::divisor#0 test_16u::divisor#0 ]
reg byte y [ div16s::neg#4 div16s::neg#2 div16s::neg#3 ]
zp ZP_WORD:12 [ div16s::return#2 div16s::return#1 div16s::return#7 div16s::resultu#0 div16s::return#3 test_16s::res#0 div16u::return#2 div16u::return#0 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div16u::return#3 test_16u::res#0 ]
zp ZP_WORD:14 [ rem16s#3 rem16s#2 rem16s#32 rem16u#1 divr16u::rem#4 divr16u::rem#10 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ]
reg byte x [ divr16u::i#2 divr16u::i#1 ]
reg byte y [ div8s::dividendu#3 div8s::dividendu#7 div8s::dividendu#8 ]
reg byte x [ div8s::divisoru#3 div8s::divisoru#4 div8s::divisoru#5 ]
zp ZP_BYTE:16 [ div8s::neg#4 div8s::neg#3 div8s::neg#2 test_8s::res#0 test_8u::divisor#0 ]
reg byte a [ div8s::return#2 div8s::return#6 div8s::return#0 ]
reg byte x [ rem8s#3 rem8s#32 rem8s#1 ]
zp ZP_BYTE:16 [ div8s::neg#4 div8s::neg#2 div8s::neg#3 test_8s::res#0 test_8u::divisor#0 ]
reg byte a [ div8s::return#2 div8s::return#1 div8s::return#7 ]
reg byte x [ rem8s#3 rem8s#2 rem8s#33 ]
reg byte a [ div8u::dividend#2 div8u::dividend#0 div8u::dividend#1 ]
reg byte x [ div8u::divisor#2 div8u::divisor#0 div8u::divisor#1 ]
reg byte y [ divr8u::rem#4 divr8u::rem#10 divr8u::rem#5 divr8u::rem#1 divr8u::rem#2 divr8u::rem#3 ]
@ -428,10 +428,10 @@ zp ZP_BYTE:21 [ test_8s::divisor#0 ]
reg byte y [ div8s::dividend#0 ]
reg byte x [ div8s::divisor#0 ]
reg byte a [ div8s::return#3 ]
reg byte a [ div8s::$2 ]
reg byte x [ div8s::$7 ]
reg byte a [ div8u::return#2 ]
reg byte y [ div8s::resultu#0 ]
reg byte x [ div8s::$6 ]
reg byte a [ div8s::$2 ]
zp ZP_BYTE:22 [ divr8u::divisor#0 ]
reg byte a [ divr8u::return#0 ]
reg byte a [ div8u::return#0 ]

@ -19,12 +19,12 @@ main: {
bne b4
jsr keyboard_key_pressed
cmp #0
beq b5
lda #GREEN
bne b5
lda #BLUE
sta BGCOL
jmp b4
b5:
lda #BLUE
lda #GREEN
sta BGCOL
jmp b4
}

@ -21,13 +21,13 @@ main::@9: scope:[main] from main::@4
to:main::@14
main::@14: scope:[main] from main::@9
[10] (byte~) main::$2 ← (byte) keyboard_key_pressed::return#2 [ main::$2 ] ( main:2 [ main::$2 ] )
[11] if((byte~) main::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5 [ ] ( main:2 [ ] )
[11] if((byte~) main::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5 [ ] ( main:2 [ ] )
to:main::@10
main::@10: scope:[main] from main::@14
[12] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] )
[12] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] )
to:main::@4
main::@5: scope:[main] from main::@14
[13] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] )
[13] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] )
to:main::@4
keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@9
[14] phi() [ ] ( main:2::keyboard_key_pressed:8 [ ] )

@ -536,74 +536,72 @@ keyboard_event_scan::@1:
(byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row
(byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0
(boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row)
(boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1
if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2
if((boolean~) keyboard_event_scan::$1) goto keyboard_event_scan::@2
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2
goto keyboard_event_scan::@3
keyboard_event_scan::@2:
(byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0
keyboard_event_scan::@3:
keyboard_event_scan::@4:
(byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row)
(byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col)
(boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5
if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4
if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@5
(boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8
(boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7
if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5
if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@6
(byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col)
(byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9
(boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10
if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6
(byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
goto keyboard_event_scan::@7
keyboard_event_scan::@6:
if((boolean~) keyboard_event_scan::$10) goto keyboard_event_scan::@7
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
goto keyboard_event_scan::@8
keyboard_event_scan::@7:
(byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$11
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
keyboard_event_scan::@8:
keyboard_event_scan::@6:
keyboard_event_scan::@5:
keyboard_event_scan::@4:
(byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode
(byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col
(boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3
(boolean~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$12) goto keyboard_event_scan::@4
*((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan
goto keyboard_event_scan::@8
keyboard_event_scan::@2:
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14
keyboard_event_scan::@8:
keyboard_event_scan::@3:
(byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row
(boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1
(boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@1
(byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT
(boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17
if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9
(byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19
(byte~) keyboard_event_scan::$14 ← call keyboard_event_pressed (byte) KEY_LSHIFT
(boolean~) keyboard_event_scan::$15 ← (byte~) keyboard_event_scan::$14 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$16 ← ! (boolean~) keyboard_event_scan::$15
if((boolean~) keyboard_event_scan::$16) goto keyboard_event_scan::@9
(byte~) keyboard_event_scan::$17 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$17
keyboard_event_scan::@9:
(byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT
(boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21
if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10
(byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23
(byte~) keyboard_event_scan::$18 ← call keyboard_event_pressed (byte) KEY_RSHIFT
(boolean~) keyboard_event_scan::$19 ← (byte~) keyboard_event_scan::$18 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$20 ← ! (boolean~) keyboard_event_scan::$19
if((boolean~) keyboard_event_scan::$20) goto keyboard_event_scan::@10
(byte~) keyboard_event_scan::$21 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$21
keyboard_event_scan::@10:
(byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL
(boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25
if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11
(byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27
(byte~) keyboard_event_scan::$22 ← call keyboard_event_pressed (byte) KEY_CTRL
(boolean~) keyboard_event_scan::$23 ← (byte~) keyboard_event_scan::$22 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$24 ← ! (boolean~) keyboard_event_scan::$23
if((boolean~) keyboard_event_scan::$24) goto keyboard_event_scan::@11
(byte~) keyboard_event_scan::$25 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$25
keyboard_event_scan::@11:
(byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE
(boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29
if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12
(byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31
(byte~) keyboard_event_scan::$26 ← call keyboard_event_pressed (byte) KEY_COMMODORE
(boolean~) keyboard_event_scan::$27 ← (byte~) keyboard_event_scan::$26 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$28 ← ! (boolean~) keyboard_event_scan::$27
if((boolean~) keyboard_event_scan::$28) goto keyboard_event_scan::@12
(byte~) keyboard_event_scan::$29 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$29
keyboard_event_scan::@12:
keyboard_event_scan::@return:
return
@ -621,14 +619,13 @@ keyboard_event_pressed::@return:
endproc // keyboard_event_pressed()
proc (byte()) keyboard_event_get()
(boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0
if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1
(byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255
if((boolean~) keyboard_event_get::$0) goto keyboard_event_get::@1
(byte) keyboard_events_size ← -- (byte) keyboard_events_size
(byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size)
goto keyboard_event_get::@return
goto keyboard_event_get::@2
keyboard_event_get::@1:
(byte) keyboard_events_size ← -- (byte) keyboard_events_size
(byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size)
(byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255
goto keyboard_event_get::@return
keyboard_event_get::@2:
keyboard_event_get::@return:
@ -646,12 +643,11 @@ main::@4:
if((boolean~) main::$1) goto main::@4
(byte~) main::$2 ← call keyboard_key_pressed (byte) KEY_SPACE
(boolean~) main::$3 ← (byte~) main::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) main::$4 ← ! (boolean~) main::$3
if((boolean~) main::$4) goto main::@5
*((byte*) BGCOL) ← (byte) GREEN
if((boolean~) main::$3) goto main::@5
*((byte*) BGCOL) ← (byte) BLUE
goto main::@6
main::@5:
*((byte*) BGCOL) ← (byte) BLUE
*((byte*) BGCOL) ← (byte) GREEN
main::@6:
goto main::@1
main::@3:
@ -799,7 +795,6 @@ SYMBOLS
(byte[]) keyboard_char_keycodes
(byte()) keyboard_event_get()
(boolean~) keyboard_event_get::$0
(boolean~) keyboard_event_get::$1
(label) keyboard_event_get::@1
(label) keyboard_event_get::@2
(label) keyboard_event_get::@return
@ -816,29 +811,27 @@ SYMBOLS
(byte~) keyboard_event_scan::$0
(boolean~) keyboard_event_scan::$1
(boolean~) keyboard_event_scan::$10
(boolean~) keyboard_event_scan::$11
(byte/word/dword~) keyboard_event_scan::$12
(byte/word/dword~) keyboard_event_scan::$11
(boolean~) keyboard_event_scan::$12
(boolean~) keyboard_event_scan::$13
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14
(byte~) keyboard_event_scan::$14
(boolean~) keyboard_event_scan::$15
(byte~) keyboard_event_scan::$16
(boolean~) keyboard_event_scan::$17
(boolean~) keyboard_event_scan::$18
(byte~) keyboard_event_scan::$19
(boolean~) keyboard_event_scan::$2
(byte~) keyboard_event_scan::$20
(boolean~) keyboard_event_scan::$21
(boolean~) keyboard_event_scan::$22
(byte~) keyboard_event_scan::$23
(byte~) keyboard_event_scan::$24
(boolean~) keyboard_event_scan::$25
(boolean~) keyboard_event_scan::$26
(byte~) keyboard_event_scan::$27
(byte~) keyboard_event_scan::$28
(boolean~) keyboard_event_scan::$29
(boolean~) keyboard_event_scan::$16
(byte~) keyboard_event_scan::$17
(byte~) keyboard_event_scan::$18
(boolean~) keyboard_event_scan::$19
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2
(boolean~) keyboard_event_scan::$20
(byte~) keyboard_event_scan::$21
(byte~) keyboard_event_scan::$22
(boolean~) keyboard_event_scan::$23
(boolean~) keyboard_event_scan::$24
(byte~) keyboard_event_scan::$25
(byte~) keyboard_event_scan::$26
(boolean~) keyboard_event_scan::$27
(boolean~) keyboard_event_scan::$28
(byte~) keyboard_event_scan::$29
(byte~) keyboard_event_scan::$3
(boolean~) keyboard_event_scan::$30
(byte~) keyboard_event_scan::$31
(byte~) keyboard_event_scan::$4
(boolean~) keyboard_event_scan::$5
(boolean~) keyboard_event_scan::$6
@ -896,7 +889,6 @@ SYMBOLS
(boolean~) main::$1
(byte~) main::$2
(boolean~) main::$3
(boolean~) main::$4
(label) main::@1
(label) main::@2
(label) main::@3
@ -1141,112 +1133,110 @@ keyboard_event_scan: scope:[keyboard_event_scan] from
(byte) keyboard_event_scan::keycode ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) keyboard_event_scan::row ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:keyboard_event_scan::@1
keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@8
keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3
(byte~) keyboard_event_scan::$0 ← call keyboard_matrix_read (byte) keyboard_event_scan::row
(byte) keyboard_event_scan::row_scan ← (byte~) keyboard_event_scan::$0
(boolean~) keyboard_event_scan::$1 ← (byte) keyboard_event_scan::row_scan != *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row)
(boolean~) keyboard_event_scan::$2 ← ! (boolean~) keyboard_event_scan::$1
if((boolean~) keyboard_event_scan::$2) goto keyboard_event_scan::@2
if((boolean~) keyboard_event_scan::$1) goto keyboard_event_scan::@2
to:keyboard_event_scan::@13
keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@1 keyboard_event_scan::@19
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$14
to:keyboard_event_scan::@8
keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@1
keyboard_event_scan::@2: scope:[keyboard_event_scan] from keyboard_event_scan::@1 keyboard_event_scan::@14
(byte) keyboard_event_scan::col ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:keyboard_event_scan::@4
keyboard_event_scan::@13: scope:[keyboard_event_scan] from keyboard_event_scan::@1
(byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2 ← (byte) keyboard_event_scan::keycode + (byte/signed byte/word/signed word/dword/signed dword) 8
(byte) keyboard_event_scan::keycode ← (byte/signed word/word/dword/signed dword~) keyboard_event_scan::$2
to:keyboard_event_scan::@3
keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@4
keyboard_event_scan::@3: scope:[keyboard_event_scan] from keyboard_event_scan::@13 keyboard_event_scan::@19
(byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row
(boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@1
to:keyboard_event_scan::@20
keyboard_event_scan::@14: scope:[keyboard_event_scan] from
to:keyboard_event_scan::@2
keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@2 keyboard_event_scan::@5
(byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan ^ *((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row)
(byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col)
(boolean~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$6 ← ! (boolean~) keyboard_event_scan::$5
if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@4
to:keyboard_event_scan::@14
keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@3 keyboard_event_scan::@5
if((boolean~) keyboard_event_scan::$6) goto keyboard_event_scan::@5
to:keyboard_event_scan::@15
keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@4 keyboard_event_scan::@6
(byte) keyboard_event_scan::keycode ← ++ (byte) keyboard_event_scan::keycode
(byte) keyboard_event_scan::col ← ++ (byte) keyboard_event_scan::col
(boolean~) keyboard_event_scan::$13 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$13) goto keyboard_event_scan::@3
to:keyboard_event_scan::@18
keyboard_event_scan::@14: scope:[keyboard_event_scan] from keyboard_event_scan::@3
(boolean~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::col != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$12) goto keyboard_event_scan::@4
to:keyboard_event_scan::@19
keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@4
(boolean~) keyboard_event_scan::$7 ← (byte) keyboard_events_size != (byte/signed byte/word/signed word/dword/signed dword) 8
(boolean~) keyboard_event_scan::$8 ← ! (boolean~) keyboard_event_scan::$7
if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@5
to:keyboard_event_scan::@15
keyboard_event_scan::@5: scope:[keyboard_event_scan] from keyboard_event_scan::@14 keyboard_event_scan::@7
to:keyboard_event_scan::@4
keyboard_event_scan::@15: scope:[keyboard_event_scan] from keyboard_event_scan::@14
if((boolean~) keyboard_event_scan::$8) goto keyboard_event_scan::@6
to:keyboard_event_scan::@16
keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@8
to:keyboard_event_scan::@5
keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15
(byte~) keyboard_event_scan::$9 ← (byte) keyboard_event_scan::row_scan & *((byte[8]) keyboard_matrix_col_bitmask + (byte) keyboard_event_scan::col)
(byte) keyboard_event_scan::event_type ← (byte~) keyboard_event_scan::$9
(boolean~) keyboard_event_scan::$10 ← (byte) keyboard_event_scan::event_type == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$11 ← ! (boolean~) keyboard_event_scan::$10
if((boolean~) keyboard_event_scan::$11) goto keyboard_event_scan::@6
to:keyboard_event_scan::@16
keyboard_event_scan::@6: scope:[keyboard_event_scan] from keyboard_event_scan::@15 keyboard_event_scan::@17
if((boolean~) keyboard_event_scan::$10) goto keyboard_event_scan::@7
to:keyboard_event_scan::@17
keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 keyboard_event_scan::@18
(byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$11
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
to:keyboard_event_scan::@8
keyboard_event_scan::@17: scope:[keyboard_event_scan] from keyboard_event_scan::@16
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte) keyboard_event_scan::keycode
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
to:keyboard_event_scan::@7
keyboard_event_scan::@16: scope:[keyboard_event_scan] from keyboard_event_scan::@15
(byte/word/dword~) keyboard_event_scan::$12 ← (byte) keyboard_event_scan::keycode | (byte/signed byte/word/signed word/dword/signed dword) 64
*((byte[8]) keyboard_events + (byte) keyboard_events_size) ← (byte/word/dword~) keyboard_event_scan::$12
(byte) keyboard_events_size ← ++ (byte) keyboard_events_size
to:keyboard_event_scan::@7
keyboard_event_scan::@7: scope:[keyboard_event_scan] from keyboard_event_scan::@16 keyboard_event_scan::@6
to:keyboard_event_scan::@5
keyboard_event_scan::@17: scope:[keyboard_event_scan] from
to:keyboard_event_scan::@6
keyboard_event_scan::@18: scope:[keyboard_event_scan] from keyboard_event_scan::@4
*((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan
to:keyboard_event_scan::@8
keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@18 keyboard_event_scan::@2
(byte) keyboard_event_scan::row ← ++ (byte) keyboard_event_scan::row
(boolean~) keyboard_event_scan::$15 ← (byte) keyboard_event_scan::row != (byte/signed byte/word/signed word/dword/signed dword) 8
if((boolean~) keyboard_event_scan::$15) goto keyboard_event_scan::@1
to:keyboard_event_scan::@20
keyboard_event_scan::@19: scope:[keyboard_event_scan] from
to:keyboard_event_scan::@2
keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@8
keyboard_event_scan::@8: scope:[keyboard_event_scan] from keyboard_event_scan::@17 keyboard_event_scan::@7
to:keyboard_event_scan::@6
keyboard_event_scan::@18: scope:[keyboard_event_scan] from
to:keyboard_event_scan::@7
keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan::@5
*((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row) ← (byte) keyboard_event_scan::row_scan
to:keyboard_event_scan::@3
keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@3
(byte) keyboard_modifiers ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte~) keyboard_event_scan::$16 ← call keyboard_event_pressed (byte) KEY_LSHIFT
(boolean~) keyboard_event_scan::$17 ← (byte~) keyboard_event_scan::$16 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$18 ← ! (boolean~) keyboard_event_scan::$17
if((boolean~) keyboard_event_scan::$18) goto keyboard_event_scan::@9
(byte~) keyboard_event_scan::$14 ← call keyboard_event_pressed (byte) KEY_LSHIFT
(boolean~) keyboard_event_scan::$15 ← (byte~) keyboard_event_scan::$14 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$16 ← ! (boolean~) keyboard_event_scan::$15
if((boolean~) keyboard_event_scan::$16) goto keyboard_event_scan::@9
to:keyboard_event_scan::@21
keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@20 keyboard_event_scan::@21
(byte~) keyboard_event_scan::$20 ← call keyboard_event_pressed (byte) KEY_RSHIFT
(boolean~) keyboard_event_scan::$21 ← (byte~) keyboard_event_scan::$20 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$22 ← ! (boolean~) keyboard_event_scan::$21
if((boolean~) keyboard_event_scan::$22) goto keyboard_event_scan::@10
(byte~) keyboard_event_scan::$18 ← call keyboard_event_pressed (byte) KEY_RSHIFT
(boolean~) keyboard_event_scan::$19 ← (byte~) keyboard_event_scan::$18 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$20 ← ! (boolean~) keyboard_event_scan::$19
if((boolean~) keyboard_event_scan::$20) goto keyboard_event_scan::@10
to:keyboard_event_scan::@22
keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@20
(byte~) keyboard_event_scan::$19 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$19
(byte~) keyboard_event_scan::$17 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_LSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$17
to:keyboard_event_scan::@9
keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@9
(byte~) keyboard_event_scan::$24 ← call keyboard_event_pressed (byte) KEY_CTRL
(boolean~) keyboard_event_scan::$25 ← (byte~) keyboard_event_scan::$24 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$26 ← ! (boolean~) keyboard_event_scan::$25
if((boolean~) keyboard_event_scan::$26) goto keyboard_event_scan::@11
(byte~) keyboard_event_scan::$22 ← call keyboard_event_pressed (byte) KEY_CTRL
(boolean~) keyboard_event_scan::$23 ← (byte~) keyboard_event_scan::$22 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$24 ← ! (boolean~) keyboard_event_scan::$23
if((boolean~) keyboard_event_scan::$24) goto keyboard_event_scan::@11
to:keyboard_event_scan::@23
keyboard_event_scan::@22: scope:[keyboard_event_scan] from keyboard_event_scan::@9
(byte~) keyboard_event_scan::$23 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$23
(byte~) keyboard_event_scan::$21 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_RSHIFT
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$21
to:keyboard_event_scan::@10
keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@10 keyboard_event_scan::@23
(byte~) keyboard_event_scan::$28 ← call keyboard_event_pressed (byte) KEY_COMMODORE
(boolean~) keyboard_event_scan::$29 ← (byte~) keyboard_event_scan::$28 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$30 ← ! (boolean~) keyboard_event_scan::$29
if((boolean~) keyboard_event_scan::$30) goto keyboard_event_scan::@12
(byte~) keyboard_event_scan::$26 ← call keyboard_event_pressed (byte) KEY_COMMODORE
(boolean~) keyboard_event_scan::$27 ← (byte~) keyboard_event_scan::$26 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_scan::$28 ← ! (boolean~) keyboard_event_scan::$27
if((boolean~) keyboard_event_scan::$28) goto keyboard_event_scan::@12
to:keyboard_event_scan::@24
keyboard_event_scan::@23: scope:[keyboard_event_scan] from keyboard_event_scan::@10
(byte~) keyboard_event_scan::$27 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$27
(byte~) keyboard_event_scan::$25 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_CTRL
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$25
to:keyboard_event_scan::@11
keyboard_event_scan::@12: scope:[keyboard_event_scan] from keyboard_event_scan::@11 keyboard_event_scan::@24
to:keyboard_event_scan::@return
keyboard_event_scan::@24: scope:[keyboard_event_scan] from keyboard_event_scan::@11
(byte~) keyboard_event_scan::$31 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$31
(byte~) keyboard_event_scan::$29 ← (byte) keyboard_modifiers | (byte) KEY_MODIFIER_COMMODORE
(byte) keyboard_modifiers ← (byte~) keyboard_event_scan::$29
to:keyboard_event_scan::@12
keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@12
return
@ -1270,15 +1260,14 @@ keyboard_event_pressed::@1: scope:[keyboard_event_pressed] from
to:@7
keyboard_event_get: scope:[keyboard_event_get] from
(boolean~) keyboard_event_get::$0 ← (byte) keyboard_events_size == (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) keyboard_event_get::$1 ← ! (boolean~) keyboard_event_get::$0
if((boolean~) keyboard_event_get::$1) goto keyboard_event_get::@1
if((boolean~) keyboard_event_get::$0) goto keyboard_event_get::@1
to:keyboard_event_get::@3
keyboard_event_get::@1: scope:[keyboard_event_get] from keyboard_event_get keyboard_event_get::@5
(byte) keyboard_events_size ← -- (byte) keyboard_events_size
(byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size)
(byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255
to:keyboard_event_get::@return
keyboard_event_get::@3: scope:[keyboard_event_get] from keyboard_event_get
(byte) keyboard_event_get::return ← (byte/word/signed word/dword/signed dword) 255
(byte) keyboard_events_size ← -- (byte) keyboard_events_size
(byte) keyboard_event_get::return ← *((byte[8]) keyboard_events + (byte) keyboard_events_size)
to:keyboard_event_get::@return
keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get::@1 keyboard_event_get::@2 keyboard_event_get::@3
(byte) keyboard_event_get::return ← (byte) keyboard_event_get::return
@ -1315,14 +1304,13 @@ main::@4: scope:[main] from main::@2 main::@4
main::@9: scope:[main] from main::@4
(byte~) main::$2 ← call keyboard_key_pressed (byte) KEY_SPACE
(boolean~) main::$3 ← (byte~) main::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) main::$4 ← ! (boolean~) main::$3
if((boolean~) main::$4) goto main::@5
if((boolean~) main::$3) goto main::@5
to:main::@10
main::@5: scope:[main] from main::@11 main::@9
*((byte*) BGCOL) ← (byte) BLUE
*((byte*) BGCOL) ← (byte) GREEN
to:main::@6
main::@10: scope:[main] from main::@9
*((byte*) BGCOL) ← (byte) GREEN
*((byte*) BGCOL) ← (byte) BLUE
to:main::@6
main::@6: scope:[main] from main::@10 main::@5
to:main::@1
@ -1571,14 +1559,13 @@ main::@14: scope:[main] from main::@9
(byte) keyboard_key_pressed::return#4 ← phi( main::@9/(byte) keyboard_key_pressed::return#2 )
(byte~) main::$2 ← (byte) keyboard_key_pressed::return#4
(boolean~) main::$3 ← (byte~) main::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) main::$4 ← ! (boolean~) main::$3
if((boolean~) main::$4) goto main::@5
if((boolean~) main::$3) goto main::@5
to:main::@10
main::@5: scope:[main] from main::@14
*((byte*) BGCOL#0) ← (byte) BLUE#0
*((byte*) BGCOL#0) ← (byte) GREEN#0
to:main::@1
main::@10: scope:[main] from main::@14
*((byte*) BGCOL#0) ← (byte) GREEN#0
*((byte*) BGCOL#0) ← (byte) BLUE#0
to:main::@1
main::@return: scope:[main] from main::@1
return
@ -1658,7 +1645,6 @@ SYMBOL TABLE SSA
(boolean~) main::$1
(byte~) main::$2
(boolean~) main::$3
(boolean~) main::$4
(label) main::@1
(label) main::@10
(label) main::@13
@ -1674,8 +1660,6 @@ Culled Empty Block (label) main::@13
Culled Empty Block (label) main::@2
Culled Empty Block (label) @9
Succesful SSA optimization Pass2CullEmptyBlocks
Inversing boolean not (boolean~) main::$4 ← (byte~) main::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (boolean~) main::$3 ← (byte~) main::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0
Succesful SSA optimization Pass2UnaryNotSimplification
Not aliassing across scopes: keyboard_matrix_read::rowid#1 keyboard_matrix_read::rowid#0
Not aliassing across scopes: keyboard_key_pressed::key#1 keyboard_key_pressed::key#0
Not aliassing across scopes: keyboard_matrix_read::rowid#0 keyboard_key_pressed::rowidx#0
@ -1703,7 +1687,7 @@ Redundant Phi (byte) keyboard_matrix_read::rowid#1 (byte) keyboard_matrix_read::
Redundant Phi (byte) keyboard_key_pressed::key#1 (byte) keyboard_key_pressed::key#0
Succesful SSA optimization Pass2RedundantPhiElimination
Simple Condition (boolean~) main::$1 if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4
Simple Condition (boolean~) main::$4 if((byte~) main::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5
Simple Condition (boolean~) main::$3 if((byte~) main::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5
Succesful SSA optimization Pass2ConditionalJumpSimplification
Constant (const byte*) RASTER#0 = ((byte*))53266
Constant (const byte*) BGCOL#0 = ((byte*))53281
@ -1798,13 +1782,13 @@ main::@9: scope:[main] from main::@4
to:main::@14
main::@14: scope:[main] from main::@9
[10] (byte~) main::$2 ← (byte) keyboard_key_pressed::return#2 [ main::$2 ] ( main:2 [ main::$2 ] )
[11] if((byte~) main::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5 [ ] ( main:2 [ ] )
[11] if((byte~) main::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5 [ ] ( main:2 [ ] )
to:main::@10
main::@10: scope:[main] from main::@14
[12] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] )
[12] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] )
to:main::@4
main::@5: scope:[main] from main::@14
[13] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] )
[13] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] )
to:main::@4
keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@9
[14] phi() [ ] ( main:2::keyboard_key_pressed:8 [ ] )
@ -1986,20 +1970,20 @@ main: {
//SEG19 [10] (byte~) main::$2 ← (byte) keyboard_key_pressed::return#2 [ main::$2 ] ( main:2 [ main::$2 ] ) -- vbuz1=vbuz2
lda keyboard_key_pressed.return_2
sta _2
//SEG20 [11] if((byte~) main::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5 [ ] ( main:2 [ ] ) -- vbuz1_eq_0_then_la1
//SEG20 [11] if((byte~) main::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5 [ ] ( main:2 [ ] ) -- vbuz1_neq_0_then_la1
lda _2
beq b5
bne b5
jmp b10
//SEG21 main::@10
b10:
//SEG22 [12] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #GREEN
//SEG22 [12] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #BLUE
sta BGCOL
jmp b4
//SEG23 main::@5
b5:
//SEG24 [13] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #BLUE
//SEG24 [13] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #GREEN
sta BGCOL
jmp b4
}
@ -2067,8 +2051,8 @@ keyboard_init: {
REGISTER UPLIFT POTENTIAL REGISTERS
Statement [6] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ ] ( main:2 [ ] ) always clobbers reg byte a
Statement [12] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
Statement [13] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
Statement [12] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
Statement [13] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
Statement [18] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0+(const byte) keyboard_key_pressed::colidx#0) [ keyboard_key_pressed::return#0 ] ( main:2::keyboard_key_pressed:8 [ keyboard_key_pressed::return#0 ] ) always clobbers reg byte a
Statement [20] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0+(const byte) keyboard_key_pressed::rowidx#0) [ ] ( main:2::keyboard_key_pressed:8::keyboard_matrix_read:15 [ ] ) always clobbers reg byte a
Statement [21] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:2::keyboard_key_pressed:8::keyboard_matrix_read:15 [ keyboard_matrix_read::return#0 ] ) always clobbers reg byte a
@ -2152,20 +2136,20 @@ main: {
b14:
//SEG19 [10] (byte~) main::$2 ← (byte) keyboard_key_pressed::return#2 [ main::$2 ] ( main:2 [ main::$2 ] )
// (byte~) main::$2 = (byte) keyboard_key_pressed::return#2 // register copy reg byte a
//SEG20 [11] if((byte~) main::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5 [ ] ( main:2 [ ] ) -- vbuaa_eq_0_then_la1
//SEG20 [11] if((byte~) main::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5 [ ] ( main:2 [ ] ) -- vbuaa_neq_0_then_la1
cmp #0
beq b5
bne b5
jmp b10
//SEG21 main::@10
b10:
//SEG22 [12] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #GREEN
//SEG22 [12] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #BLUE
sta BGCOL
jmp b4
//SEG23 main::@5
b5:
//SEG24 [13] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #BLUE
//SEG24 [13] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #GREEN
sta BGCOL
jmp b4
}
@ -2359,18 +2343,18 @@ main: {
//SEG18 main::@14
//SEG19 [10] (byte~) main::$2 ← (byte) keyboard_key_pressed::return#2 [ main::$2 ] ( main:2 [ main::$2 ] )
// (byte~) main::$2 = (byte) keyboard_key_pressed::return#2 // register copy reg byte a
//SEG20 [11] if((byte~) main::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5 [ ] ( main:2 [ ] ) -- vbuaa_eq_0_then_la1
//SEG20 [11] if((byte~) main::$2!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@5 [ ] ( main:2 [ ] ) -- vbuaa_neq_0_then_la1
cmp #0
beq b5
bne b5
//SEG21 main::@10
//SEG22 [12] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #GREEN
//SEG22 [12] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #BLUE
sta BGCOL
jmp b4
//SEG23 main::@5
b5:
//SEG24 [13] *((const byte*) BGCOL#0) ← (const byte) BLUE#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #BLUE
//SEG24 [13] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) -- _deref_pbuc1=vbuc2
lda #GREEN
sta BGCOL
jmp b4
}

@ -102,8 +102,8 @@ main: {
txa
and #$80
cmp #0
beq b8
lda #'1'
bne b8
lda #'0'
sta (screen),y
b9:
txa
@ -162,7 +162,7 @@ main: {
bcc b13
jmp b5
b8:
lda #'0'
lda #'1'
sta (screen),y
jmp b9
}

@ -37,10 +37,10 @@ main::@7: scope:[main] from main::@28 main::@9
[17] (byte) main::col#2 ← phi( main::@28/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::col#1 ) [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] )
[17] (byte) main::row_pressed_bits#2 ← phi( main::@28/(byte) main::row_pressed_bits#0 main::@9/(byte) main::row_pressed_bits#1 ) [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] )
[18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 main::$5 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 main::$5 ] )
[19] if((byte~) main::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] )
[19] if((byte~) main::$5!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] )
to:main::@18
main::@18: scope:[main] from main::@7
[20] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '1' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] )
[20] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] )
to:main::@9
main::@9: scope:[main] from main::@18 main::@8
[21] (byte) main::row_pressed_bits#1 ← (byte) main::row_pressed_bits#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ main::row#2 main::screen#13 main::col#2 main::row_pressed_bits#1 ] ( main:2 [ main::row#2 main::screen#13 main::col#2 main::row_pressed_bits#1 ] )
@ -72,8 +72,8 @@ main::@22: scope:[main] from main::@29
[36] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#2 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::return#2 ] )
to:main::@30
main::@30: scope:[main] from main::@22
[37] (byte~) main::$16 ← (byte) keyboard_key_pressed::return#2 [ main::screen#2 main::ch#2 main::i#10 main::$16 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 main::$16 ] )
[38] if((byte~) main::$16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@11 [ main::screen#2 main::ch#2 main::i#10 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 ] )
[37] (byte~) main::$15 ← (byte) keyboard_key_pressed::return#2 [ main::screen#2 main::ch#2 main::i#10 main::$15 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 main::$15 ] )
[38] if((byte~) main::$15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@11 [ main::screen#2 main::ch#2 main::i#10 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 ] )
to:main::@23
main::@23: scope:[main] from main::@30
[39] *((byte*) main::screen#2 + (byte) main::i#10) ← (byte) main::ch#2 [ main::screen#2 main::ch#2 main::i#10 ] ( main:2 [ main::screen#2 main::ch#2 main::i#10 ] )
@ -91,7 +91,7 @@ main::@13: scope:[main] from main::@11 main::@13
[47] if((byte) main::i#2<(byte/signed byte/word/signed word/dword/signed dword) 5) goto main::@13 [ main::screen#2 main::i#2 ] ( main:2 [ main::screen#2 main::i#2 ] )
to:main::@5
main::@8: scope:[main] from main::@7
[48] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '0' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] )
[48] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '1' [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] ( main:2 [ main::row#2 main::screen#13 main::row_pressed_bits#2 main::col#2 ] )
to:main::@9
keyboard_key_pressed: scope:[keyboard_key_pressed] from main::@22
[49] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] ( main:2::keyboard_key_pressed:35 [ main::screen#2 main::ch#2 main::i#10 keyboard_key_pressed::key#0 keyboard_key_pressed::colidx#0 ] )

File diff suppressed because it is too large Load Diff

@ -151,7 +151,7 @@
(byte[8]) keyboard_matrix_row_bitmask
(const byte[8]) keyboard_matrix_row_bitmask#0 keyboard_matrix_row_bitmask = { (byte/word/signed word/dword/signed dword) 254, (byte/word/signed word/dword/signed dword) 253, (byte/word/signed word/dword/signed dword) 251, (byte/word/signed word/dword/signed dword) 247, (byte/word/signed word/dword/signed dword) 239, (byte/word/signed word/dword/signed dword) 223, (byte/word/signed word/dword/signed dword) 191, (byte/signed byte/word/signed word/dword/signed dword) 127 }
(void()) main()
(byte~) main::$16 reg byte a 202.0
(byte~) main::$15 reg byte a 202.0
(byte~) main::$5 reg byte a 2002.0
(label) main::@1
(label) main::@10
@ -213,7 +213,7 @@ reg byte a [ keyboard_get_keycode::return#2 ]
reg byte a [ main::key#0 ]
reg byte y [ keyboard_key_pressed::key#0 ]
reg byte a [ keyboard_key_pressed::return#2 ]
reg byte a [ main::$16 ]
reg byte a [ main::$15 ]
zp ZP_BYTE:5 [ keyboard_key_pressed::colidx#0 ]
reg byte a [ keyboard_key_pressed::rowidx#0 ]
reg byte a [ keyboard_matrix_read::return#2 ]

@ -389,13 +389,69 @@ mul16u: {
}
muls16s: {
.label m = $a
.label i = 8
.label return = $a
.label j = 8
.label return = $a
.label i = 8
.label a = 2
.label b = 4
lda a+1
bpl b1
bmi b6
bmi b2
bne !+
lda a
beq b2
!:
lda #<0
sta j
sta j+1
sta m
sta m+1
lda #<0>>$10
sta m+2
lda #>0>>$10
sta m+3
b3:
lda b+1
ora #$7f
bmi !+
lda #0
!:
sta $ff
lda m
clc
adc b
sta m
lda m+1
adc b+1
sta m+1
lda m+2
adc $ff
sta m+2
lda m+3
adc $ff
sta m+3
inc j
bne !+
inc j+1
!:
lda j+1
cmp a+1
bne b3
lda j
cmp a
bne b3
jmp b4
b2:
lda #<0
sta return
sta return+1
lda #<0>>$10
sta return+2
lda #>0>>$10
sta return+3
b4:
rts
b6:
lda #<0
sta i
sta i+1
@ -405,7 +461,7 @@ muls16s: {
sta m+2
lda #>0>>$10
sta m+3
b2:
b5:
lda b+1
ora #$7f
bmi !+
@ -432,68 +488,11 @@ muls16s: {
dec i
lda i+1
cmp a+1
bne b2
bne b5
lda i
cmp a
bne b2
jmp b3
b6:
lda #<0
sta return
sta return+1
lda #<0>>$10
sta return+2
lda #>0>>$10
sta return+3
b3:
rts
b1:
lda a+1
bmi b6
bne !+
lda a
beq b6
!:
lda #<0
sta j
sta j+1
sta m
sta m+1
lda #<0>>$10
sta m+2
lda #>0>>$10
sta m+3
b5:
lda b+1
ora #$7f
bmi !+
lda #0
!:
sta $ff
lda m
clc
adc b
sta m
lda m+1
adc b+1
sta m+1
lda m+2
adc $ff
sta m+2
lda m+3
adc $ff
sta m+3
inc j
bne !+
inc j+1
!:
lda j+1
cmp a+1
bne b5
lda j
cmp a
bne b5
jmp b3
jmp b4
}
mul16u_compare: {
.label a = 2

@ -306,31 +306,31 @@ mul16u::@4: scope:[mul16u] from mul16u::@2 mul16u::@7
[147] (dword) mul16u::mb#1 ← (dword) mul16u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] ( main:2::mul16s_compare:11::mul16s:25::mul16u:122 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 mul16s_compare::ms#0 print_line_cursor#1 mul16s::a#0 mul16s::b#0 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] main:2::mul16u_compare:9::mul16u:172 [ mul16u_compare::i#9 mul16u_compare::a#1 mul16u_compare::b#1 mul16u_compare::j#2 mul16u_compare::ms#0 mul16u::a#0 mul16u::res#6 mul16u::mb#1 ] )
to:mul16u::@1
muls16s: scope:[muls16s] from mul16s_compare::@2
[148] if((signed word) muls16s::a#0>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto muls16s::@1 [ muls16s::a#0 muls16s::b#0 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 ] )
to:muls16s::@2
muls16s::@2: scope:[muls16s] from muls16s muls16s::@2
[149] (signed word) muls16s::i#2 ← phi( muls16s::@2/(signed word) muls16s::i#1 muls16s/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ muls16s::a#0 muls16s::b#0 muls16s::m#3 muls16s::i#2 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#3 muls16s::i#2 ] )
[149] (signed dword) muls16s::m#3 ← phi( muls16s::@2/(signed dword) muls16s::m#1 muls16s/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ muls16s::a#0 muls16s::b#0 muls16s::m#3 muls16s::i#2 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#3 muls16s::i#2 ] )
[150] (signed dword) muls16s::m#1 ← (signed dword) muls16s::m#3 - (signed word) muls16s::b#0 [ muls16s::a#0 muls16s::b#0 muls16s::i#2 muls16s::m#1 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::i#2 muls16s::m#1 ] )
[151] (signed word) muls16s::i#1 ← -- (signed word) muls16s::i#2 [ muls16s::a#0 muls16s::b#0 muls16s::m#1 muls16s::i#1 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#1 muls16s::i#1 ] )
[152] if((signed word) muls16s::i#1!=(signed word) muls16s::a#0) goto muls16s::@2 [ muls16s::a#0 muls16s::b#0 muls16s::m#1 muls16s::i#1 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#1 muls16s::i#1 ] )
[148] if((signed word) muls16s::a#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto muls16s::@5 [ muls16s::a#0 muls16s::b#0 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 ] )
to:muls16s::@6
muls16s::@6: scope:[muls16s] from muls16s
[149] if((signed word) muls16s::a#0<=(byte/signed byte/word/signed word/dword/signed dword) 0) goto muls16s::@4 [ muls16s::a#0 muls16s::b#0 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 ] )
to:muls16s::@3
muls16s::@3: scope:[muls16s] from muls16s::@1 muls16s::@2 muls16s::@5
[153] (signed dword) muls16s::return#0 ← phi( muls16s::@2/(signed dword) muls16s::m#1 muls16s::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 muls16s::@5/(signed dword) muls16s::m#2 ) [ muls16s::return#0 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::return#0 ] )
muls16s::@3: scope:[muls16s] from muls16s::@3 muls16s::@6
[150] (signed word) muls16s::j#2 ← phi( muls16s::@3/(signed word) muls16s::j#1 muls16s::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ muls16s::a#0 muls16s::b#0 muls16s::m#3 muls16s::j#2 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#3 muls16s::j#2 ] )
[150] (signed dword) muls16s::m#3 ← phi( muls16s::@3/(signed dword) muls16s::m#1 muls16s::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ muls16s::a#0 muls16s::b#0 muls16s::m#3 muls16s::j#2 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#3 muls16s::j#2 ] )
[151] (signed dword) muls16s::m#1 ← (signed dword) muls16s::m#3 + (signed word) muls16s::b#0 [ muls16s::a#0 muls16s::b#0 muls16s::j#2 muls16s::m#1 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::j#2 muls16s::m#1 ] )
[152] (signed word) muls16s::j#1 ← ++ (signed word) muls16s::j#2 [ muls16s::a#0 muls16s::b#0 muls16s::m#1 muls16s::j#1 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#1 muls16s::j#1 ] )
[153] if((signed word) muls16s::j#1!=(signed word) muls16s::a#0) goto muls16s::@3 [ muls16s::a#0 muls16s::b#0 muls16s::m#1 muls16s::j#1 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#1 muls16s::j#1 ] )
to:muls16s::@4
muls16s::@4: scope:[muls16s] from muls16s::@3 muls16s::@5 muls16s::@6
[154] (signed dword) muls16s::return#0 ← phi( muls16s::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 muls16s::@3/(signed dword) muls16s::m#1 muls16s::@5/(signed dword) muls16s::m#2 ) [ muls16s::return#0 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::return#0 ] )
to:muls16s::@return
muls16s::@return: scope:[muls16s] from muls16s::@3
[154] return [ muls16s::return#0 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::return#0 ] )
muls16s::@return: scope:[muls16s] from muls16s::@4
[155] return [ muls16s::return#0 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::return#0 ] )
to:@return
muls16s::@1: scope:[muls16s] from muls16s
[155] if((signed word) muls16s::a#0<=(byte/signed byte/word/signed word/dword/signed dword) 0) goto muls16s::@3 [ muls16s::a#0 muls16s::b#0 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 ] )
to:muls16s::@5
muls16s::@5: scope:[muls16s] from muls16s::@1 muls16s::@5
[156] (signed word) muls16s::j#2 ← phi( muls16s::@5/(signed word) muls16s::j#1 muls16s::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ muls16s::a#0 muls16s::b#0 muls16s::m#5 muls16s::j#2 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#5 muls16s::j#2 ] )
[156] (signed dword) muls16s::m#5 ← phi( muls16s::@5/(signed dword) muls16s::m#2 muls16s::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ muls16s::a#0 muls16s::b#0 muls16s::m#5 muls16s::j#2 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#5 muls16s::j#2 ] )
[157] (signed dword) muls16s::m#2 ← (signed dword) muls16s::m#5 + (signed word) muls16s::b#0 [ muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::j#2 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::j#2 ] )
[158] (signed word) muls16s::j#1 ← ++ (signed word) muls16s::j#2 [ muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::j#1 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::j#1 ] )
[159] if((signed word) muls16s::j#1!=(signed word) muls16s::a#0) goto muls16s::@5 [ muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::j#1 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::j#1 ] )
to:muls16s::@3
muls16s::@5: scope:[muls16s] from muls16s muls16s::@5
[156] (signed word) muls16s::i#2 ← phi( muls16s/(byte/signed byte/word/signed word/dword/signed dword) 0 muls16s::@5/(signed word) muls16s::i#1 ) [ muls16s::a#0 muls16s::b#0 muls16s::m#5 muls16s::i#2 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#5 muls16s::i#2 ] )
[156] (signed dword) muls16s::m#5 ← phi( muls16s/(byte/signed byte/word/signed word/dword/signed dword) 0 muls16s::@5/(signed dword) muls16s::m#2 ) [ muls16s::a#0 muls16s::b#0 muls16s::m#5 muls16s::i#2 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#5 muls16s::i#2 ] )
[157] (signed dword) muls16s::m#2 ← (signed dword) muls16s::m#5 - (signed word) muls16s::b#0 [ muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#2 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#2 ] )
[158] (signed word) muls16s::i#1 ← -- (signed word) muls16s::i#2 [ muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#1 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#1 ] )
[159] if((signed word) muls16s::i#1!=(signed word) muls16s::a#0) goto muls16s::@5 [ muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#1 ] ( main:2::mul16s_compare:11::muls16s:20 [ mul16s_compare::i#9 mul16s_compare::a#1 mul16s_compare::b#1 mul16s_compare::j#2 print_line_cursor#1 muls16s::a#0 muls16s::b#0 muls16s::m#2 muls16s::i#1 ] )
to:muls16s::@4
mul16u_compare: scope:[mul16u_compare] from main::@2
[160] phi() [ ] ( main:2::mul16u_compare:9 [ ] )
to:mul16u_compare::@1

File diff suppressed because it is too large Load Diff

@ -223,10 +223,10 @@
(byte[512]) mulf_sqr2_lo
(const byte[512]) mulf_sqr2_lo#0 mulf_sqr2_lo = { fill( 512, 0) }
(signed dword()) muls16s((signed word) muls16s::a , (signed word) muls16s::b)
(label) muls16s::@1
(label) muls16s::@2
(label) muls16s::@3
(label) muls16s::@4
(label) muls16s::@5
(label) muls16s::@6
(label) muls16s::@return
(signed word) muls16s::a
(signed word) muls16s::a#0 a zp ZP_WORD:2 175.58333333333334
@ -363,7 +363,7 @@ zp ZP_WORD:4 [ mul16s_compare::b#2 mul16s_compare::b#5 mul16s_compare::b#1 muls1
reg byte y [ mul16s_compare::j#2 mul16s_compare::j#1 ]
reg byte a [ mul16s_compare::ok#2 ]
zp ZP_WORD:6 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ]
zp ZP_WORD:8 [ print_str::str#11 print_str::str#13 print_str::str#0 mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 muls16s::i#2 muls16s::i#1 muls16s::j#2 muls16s::j#1 mul16s::$6 mul16s::$16 mul16s::$12 mul16s::$17 ]
zp ZP_WORD:8 [ print_str::str#11 print_str::str#13 print_str::str#0 mul16u::a#3 mul16u::a#6 mul16u::a#8 mul16u::a#2 mul16u::a#0 muls16s::j#2 muls16s::j#1 muls16s::i#2 muls16s::i#1 mul16s::$6 mul16s::$16 mul16s::$12 mul16s::$17 ]
zp ZP_DWORD:10 [ print_sdword::dw#4 print_sdword::dw#3 print_sdword::dw#1 print_sdword::dw#2 print_sdword::dw#0 print_dword::dw#3 print_dword::dw#1 print_dword::dw#2 print_dword::dw#0 mul16s_error::ms#0 mul16s_compare::ms#0 mul16u_compare::ms#0 mul16u_error::ms#0 muls16s::m#5 muls16s::return#0 muls16s::m#3 muls16s::m#1 muls16s::m#2 muls16s::return#2 muls16u::return#0 muls16u::m#3 muls16u::m#1 muls16u::return#2 ]
reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
reg byte a [ print_char::ch#4 print_char::ch#2 print_char::ch#3 ]

@ -366,46 +366,14 @@ muls8s: {
.label return = 8
.label a = 2
lda a
cmp #0
bpl b1
lda #0
tay
sta m
sta m+1
b2:
txa
sta $fe
ora #$7f
bmi !+
lda #0
!:
sta $ff
sec
lda m
sbc $fe
sta m
lda m+1
sbc $ff
sta m+1
dey
cpy a
bne b2
jmp b3
b6:
lda #<0
sta return
sta return+1
b3:
rts
b1:
lda a
cmp #1
bmi b6
cmp #1
bmi b2
lda #0
tay
sta m
sta m+1
b5:
b3:
txa
sta $fe
ora #$7f
@ -422,8 +390,38 @@ muls8s: {
sta m+1
iny
cpy a
bne b3
jmp b4
b2:
lda #<0
sta return
sta return+1
b4:
rts
b6:
lda #0
tay
sta m
sta m+1
b5:
txa
sta $fe
ora #$7f
bmi !+
lda #0
!:
sta $ff
sec
lda m
sbc $fe
sta m
lda m+1
sbc $ff
sta m+1
dey
cpy a
bne b5
jmp b3
jmp b4
}
mul8u_compare: {
.label ms = 8

Some files were not shown because too many files have changed in this diff Show More