1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-09-08 17:54:40 +00:00

Optimized & minimized spline sample program. Found a few TODO's regarding struct unwinding.

This commit is contained in:
Jesper Gravgaard 2019-07-16 22:03:16 +02:00
parent eba674bd44
commit 33b506902f
6 changed files with 1974 additions and 2084 deletions

View File

@ -55,6 +55,9 @@ public class Pass1ProcedureCallParameters extends ControlFlowGraphCopyVisitor {
Procedure procedure = getScope().getProcedure(procedureRef);
List<Variable> parameterDecls = procedure.getParameters();
List<RValue> parameterValues = origCall.getParameters();
if(parameterDecls.size()!=parameterValues.size()) {
throw new CompileError("Wrong number of parameters in call "+origCall.toString(program, false)+" expected "+procedure.toString(program), origCall);
}
for(int i = 0; i < parameterDecls.size(); i++) {
Variable parameterDecl = parameterDecls.get(i);
RValue parameterValue = parameterValues.get(i);

View File

@ -18,7 +18,7 @@ struct Segment {
struct SplineVector16 via;
};
// True type letter a
// True type letter c
struct Segment[21] letter_c;
void main() {
@ -53,20 +53,16 @@ void main() {
struct SplineVector16 current = {0,0};
for( byte i: 0..sizeof(letter_c)/sizeof(struct Segment)) {
//for( byte i: 0..7) {
struct Segment segment = letter_c[i];
if(segment.type==MOVE_TO) {
current = segment.to;
} else if(segment.type==SPLINE_TO) {
struct SplineVector16 to = segment.to;
struct SplineVector16 via = segment.via;
spline_8segB(current, via, to);
spline_8segB(current, segment.via, segment.to);
bitmap_plot_spline_8seg();
current = to;
current = segment.to;
} else {
struct SplineVector16 to = segment.to;
bitmap_line((unsigned int)current.x, (unsigned int)current.y, (unsigned int)to.x, (unsigned int)to.y);
current = to;
bitmap_line((unsigned int)current.x, (unsigned int)current.y, (unsigned int)segment.to.x, (unsigned int)segment.to.y);
current = segment.to;
}
}
@ -77,15 +73,8 @@ void main() {
void bitmap_plot_spline_8seg() {
struct SplineVector16 current = SPLINE_8SEG[0];
for(char n:1..8) {
struct SplineVector16 to = SPLINE_8SEG[n];
bitmap_line((unsigned int)current.x, (unsigned int)current.y, (unsigned int)to.x, (unsigned int)to.y);
//bitmap_plot((unsigned int)current.x, (unsigned char)current.y);
current = to;
bitmap_line((unsigned int)current.x, (unsigned int)current.y, (unsigned int)SPLINE_8SEG[n].x, (unsigned int)SPLINE_8SEG[n].y);
//bitmap_plot((unsigned int)current.x, (unsigned char)current.y);
current = SPLINE_8SEG[n];
}
}
void bitmap_plot_spline_16seg() {
for( char n:0..16) {
bitmap_plot((unsigned int)SPLINE_16SEG[n].x, <SPLINE_16SEG[n].y);
}
}

View File

@ -504,8 +504,6 @@ main: {
bitmap_plot_spline_8seg: {
.label current_x = 3
.label current_y = 5
.label to_x = $24
.label to_y = $26
.label n = 7
lda SPLINE_8SEG
sta current_x
@ -523,46 +521,40 @@ bitmap_plot_spline_8seg: {
asl
tax
lda SPLINE_8SEG,x
sta to_x
lda SPLINE_8SEG+1,x
sta to_x+1
lda SPLINE_8SEG+OFFSET_STRUCT_SPLINEVECTOR16_Y,x
sta to_y
lda SPLINE_8SEG+OFFSET_STRUCT_SPLINEVECTOR16_Y+1,x
sta to_y+1
lda to_x
sta bitmap_line.x2
lda to_x+1
lda SPLINE_8SEG+1,x
sta bitmap_line.x2+1
lda to_y
lda SPLINE_8SEG+OFFSET_STRUCT_SPLINEVECTOR16_Y,x
sta bitmap_line.y2
lda to_y+1
lda SPLINE_8SEG+OFFSET_STRUCT_SPLINEVECTOR16_Y+1,x
sta bitmap_line.y2+1
jsr bitmap_line
lda n
asl
asl
tax
lda SPLINE_8SEG,x
sta current_x
lda SPLINE_8SEG+1,x
sta current_x+1
lda SPLINE_8SEG+OFFSET_STRUCT_SPLINEVECTOR16_Y,x
sta current_y
lda SPLINE_8SEG+OFFSET_STRUCT_SPLINEVECTOR16_Y+1,x
sta current_y+1
inc n
lda #9
cmp n
bne b3
bne b1
rts
b3:
lda to_x
sta current_x
lda to_x+1
sta current_x+1
lda to_y
sta current_y
lda to_y+1
sta current_y+1
jmp b1
}
// Draw a line on the bitmap using bresenhams algorithm
// bitmap_line(word zeropage(3) x1, word zeropage(5) y1, word zeropage(8) x2, word zeropage($a) y2)
bitmap_line: {
.label x = 3
.label y = 5
.label dx = $28
.label dx = $24
.label dy = $14
.label sx = $2a
.label sx = $26
.label sy = $12
.label e1 = $e
.label e = $c
@ -750,8 +742,8 @@ bitmap_line: {
// Plot a single dot in the bitmap
// bitmap_plot(word zeropage(3) x, byte register(X) y)
bitmap_plot: {
.label _1 = $2e
.label plotter = $2c
.label _1 = $2a
.label plotter = $28
.label x = 3
lda bitmap_plot_yhi,x
sta plotter+1
@ -827,10 +819,10 @@ abs_u16: {
// The curve connects P0 to P2 through a smooth curve that moves towards P1, but does usually not touch it.
// spline_8segB(signed word zeropage(3) p0_x, signed word zeropage(5) p0_y, signed word zeropage($16) p1_x, signed word zeropage($18) p1_y, signed word zeropage($20) p2_x, signed word zeropage($22) p2_y)
spline_8segB: {
.label _0 = $30
.label _1 = $30
.label _3 = $32
.label _4 = $32
.label _0 = $2c
.label _1 = $2c
.label _3 = $2e
.label _4 = $2e
.label _6 = $16
.label _8 = $18
.label _10 = $16
@ -839,18 +831,18 @@ spline_8segB: {
.label _19 = 3
.label _20 = 5
.label _21 = 5
.label _22 = $34
.label _23 = $34
.label _24 = $36
.label _25 = $36
.label a_x = $30
.label a_y = $32
.label _22 = $30
.label _23 = $30
.label _24 = $32
.label _25 = $32
.label a_x = $2c
.label a_y = $2e
.label b_x = $16
.label b_y = $18
.label i_x = $16
.label i_y = $18
.label j_x = $30
.label j_y = $32
.label j_x = $2c
.label j_y = $2e
.label p_x = 3
.label p_y = 5
.label p0_x = 3
@ -1184,7 +1176,7 @@ memset: {
}
// Initialize bitmap plotting tables
bitmap_init: {
.label _7 = $38
.label _7 = $34
.label yoffs = $1e
ldx #0
lda #$80

View File

@ -191,288 +191,285 @@ bitmap_plot_spline_8seg: scope:[bitmap_plot_spline_8seg] from main::@9
[152] (signed word) bitmap_plot_spline_8seg::current_x#0 ← *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0)
[153] (signed word) bitmap_plot_spline_8seg::current_y#0 ← *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y)
to:bitmap_plot_spline_8seg::@1
bitmap_plot_spline_8seg::@1: scope:[bitmap_plot_spline_8seg] from bitmap_plot_spline_8seg bitmap_plot_spline_8seg::@3
[154] (signed word) bitmap_plot_spline_8seg::current_y#2 ← phi( bitmap_plot_spline_8seg/(signed word) bitmap_plot_spline_8seg::current_y#0 bitmap_plot_spline_8seg::@3/(signed word~) bitmap_plot_spline_8seg::current_y#4 )
[154] (signed word) bitmap_plot_spline_8seg::current_x#2 ← phi( bitmap_plot_spline_8seg/(signed word) bitmap_plot_spline_8seg::current_x#0 bitmap_plot_spline_8seg::@3/(signed word~) bitmap_plot_spline_8seg::current_x#4 )
[154] (byte) bitmap_plot_spline_8seg::n#2 ← phi( bitmap_plot_spline_8seg/(byte) 1 bitmap_plot_spline_8seg::@3/(byte) bitmap_plot_spline_8seg::n#1 )
[155] (byte~) bitmap_plot_spline_8seg::$7 ← (byte) bitmap_plot_spline_8seg::n#2 << (byte) 2
[156] (signed word) bitmap_plot_spline_8seg::to_x#0 ← *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0 + (byte~) bitmap_plot_spline_8seg::$7)
[157] (signed word) bitmap_plot_spline_8seg::to_y#0 ← *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y + (byte~) bitmap_plot_spline_8seg::$7)
[158] (word) bitmap_line::x1#1 ← (word)(signed word) bitmap_plot_spline_8seg::current_x#2
[159] (word) bitmap_line::y1#1 ← (word)(signed word) bitmap_plot_spline_8seg::current_y#2
[160] (word) bitmap_line::x2#1 ← (word)(signed word) bitmap_plot_spline_8seg::to_x#0
[161] (word) bitmap_line::y2#1 ← (word)(signed word) bitmap_plot_spline_8seg::to_y#0
[162] call bitmap_line
bitmap_plot_spline_8seg::@1: scope:[bitmap_plot_spline_8seg] from bitmap_plot_spline_8seg bitmap_plot_spline_8seg::@2
[154] (byte) bitmap_plot_spline_8seg::n#2 ← phi( bitmap_plot_spline_8seg/(byte) 1 bitmap_plot_spline_8seg::@2/(byte) bitmap_plot_spline_8seg::n#1 )
[154] (signed word) bitmap_plot_spline_8seg::current_y#2 ← phi( bitmap_plot_spline_8seg/(signed word) bitmap_plot_spline_8seg::current_y#0 bitmap_plot_spline_8seg::@2/(signed word) bitmap_plot_spline_8seg::current_y#1 )
[154] (signed word) bitmap_plot_spline_8seg::current_x#2 ← phi( bitmap_plot_spline_8seg/(signed word) bitmap_plot_spline_8seg::current_x#0 bitmap_plot_spline_8seg::@2/(signed word) bitmap_plot_spline_8seg::current_x#1 )
[155] (word) bitmap_line::x1#1 ← (word)(signed word) bitmap_plot_spline_8seg::current_x#2
[156] (word) bitmap_line::y1#1 ← (word)(signed word) bitmap_plot_spline_8seg::current_y#2
[157] (byte~) bitmap_plot_spline_8seg::$8 ← (byte) bitmap_plot_spline_8seg::n#2 << (byte) 2
[158] (word~) bitmap_line::x2#13 ← (word)*((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0 + (byte~) bitmap_plot_spline_8seg::$8)
[159] (word~) bitmap_line::y2#13 ← (word)*((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y + (byte~) bitmap_plot_spline_8seg::$8)
[160] call bitmap_line
to:bitmap_plot_spline_8seg::@2
bitmap_plot_spline_8seg::@2: scope:[bitmap_plot_spline_8seg] from bitmap_plot_spline_8seg::@1
[163] (byte) bitmap_plot_spline_8seg::n#1 ← ++ (byte) bitmap_plot_spline_8seg::n#2
[164] if((byte) bitmap_plot_spline_8seg::n#1!=(byte) 9) goto bitmap_plot_spline_8seg::@3
[161] (byte~) bitmap_plot_spline_8seg::$9 ← (byte) bitmap_plot_spline_8seg::n#2 << (byte) 2
[162] (signed word) bitmap_plot_spline_8seg::current_x#1 ← *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0 + (byte~) bitmap_plot_spline_8seg::$9)
[163] (signed word) bitmap_plot_spline_8seg::current_y#1 ← *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y + (byte~) bitmap_plot_spline_8seg::$9)
[164] (byte) bitmap_plot_spline_8seg::n#1 ← ++ (byte) bitmap_plot_spline_8seg::n#2
[165] if((byte) bitmap_plot_spline_8seg::n#1!=(byte) 9) goto bitmap_plot_spline_8seg::@1
to:bitmap_plot_spline_8seg::@return
bitmap_plot_spline_8seg::@return: scope:[bitmap_plot_spline_8seg] from bitmap_plot_spline_8seg::@2
[165] return
[166] return
to:@return
bitmap_plot_spline_8seg::@3: scope:[bitmap_plot_spline_8seg] from bitmap_plot_spline_8seg::@2
[166] (signed word~) bitmap_plot_spline_8seg::current_x#4 ← (signed word) bitmap_plot_spline_8seg::to_x#0
[167] (signed word~) bitmap_plot_spline_8seg::current_y#4 ← (signed word) bitmap_plot_spline_8seg::to_y#0
to:bitmap_plot_spline_8seg::@1
bitmap_line: scope:[bitmap_line] from bitmap_plot_spline_8seg::@1 main::@5
[168] (word) bitmap_line::y2#11 ← phi( bitmap_plot_spline_8seg::@1/(word) bitmap_line::y2#1 main::@5/(word) bitmap_line::y2#0 )
[168] (word) bitmap_line::x2#10 ← phi( bitmap_plot_spline_8seg::@1/(word) bitmap_line::x2#1 main::@5/(word) bitmap_line::x2#0 )
[168] (word) bitmap_line::y#0 ← phi( bitmap_plot_spline_8seg::@1/(word) bitmap_line::y1#1 main::@5/(word) bitmap_line::y1#0 )
[168] (word) bitmap_line::x#0 ← phi( bitmap_plot_spline_8seg::@1/(word) bitmap_line::x1#1 main::@5/(word) bitmap_line::x1#0 )
[169] (word) abs_u16::w#0 ← (word) bitmap_line::x2#10 - (word) bitmap_line::x#0
[170] call abs_u16
[171] (word) abs_u16::return#0 ← (word) abs_u16::return#4
[167] (word) bitmap_line::y2#11 ← phi( bitmap_plot_spline_8seg::@1/(word~) bitmap_line::y2#13 main::@5/(word) bitmap_line::y2#0 )
[167] (word) bitmap_line::x2#10 ← phi( bitmap_plot_spline_8seg::@1/(word~) bitmap_line::x2#13 main::@5/(word) bitmap_line::x2#0 )
[167] (word) bitmap_line::y#0 ← phi( bitmap_plot_spline_8seg::@1/(word) bitmap_line::y1#1 main::@5/(word) bitmap_line::y1#0 )
[167] (word) bitmap_line::x#0 ← phi( bitmap_plot_spline_8seg::@1/(word) bitmap_line::x1#1 main::@5/(word) bitmap_line::x1#0 )
[168] (word) abs_u16::w#0 ← (word) bitmap_line::x2#10 - (word) bitmap_line::x#0
[169] call abs_u16
[170] (word) abs_u16::return#0 ← (word) abs_u16::return#4
to:bitmap_line::@12
bitmap_line::@12: scope:[bitmap_line] from bitmap_line
[172] (word) bitmap_line::dx#0 ← (word) abs_u16::return#0
[173] (word) abs_u16::w#1 ← (word) bitmap_line::y2#11 - (word) bitmap_line::y#0
[174] call abs_u16
[175] (word) abs_u16::return#1 ← (word) abs_u16::return#4
[171] (word) bitmap_line::dx#0 ← (word) abs_u16::return#0
[172] (word) abs_u16::w#1 ← (word) bitmap_line::y2#11 - (word) bitmap_line::y#0
[173] call abs_u16
[174] (word) abs_u16::return#1 ← (word) abs_u16::return#4
to:bitmap_line::@13
bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@12
[176] (word) bitmap_line::dy#0 ← (word) abs_u16::return#1
[177] if((word) bitmap_line::dx#0!=(byte) 0) goto bitmap_line::@1
[175] (word) bitmap_line::dy#0 ← (word) abs_u16::return#1
[176] if((word) bitmap_line::dx#0!=(byte) 0) goto bitmap_line::@1
to:bitmap_line::@18
bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@13
[178] if((word) bitmap_line::dy#0==(byte) 0) goto bitmap_line::@4
[177] if((word) bitmap_line::dy#0==(byte) 0) goto bitmap_line::@4
to:bitmap_line::@1
bitmap_line::@1: scope:[bitmap_line] from bitmap_line::@13 bitmap_line::@18
[179] (word) sgn_u16::w#0 ← (word) bitmap_line::x2#10 - (word) bitmap_line::x#0
[180] call sgn_u16
[181] (word) sgn_u16::return#0 ← (word) sgn_u16::return#4
[178] (word) sgn_u16::w#0 ← (word) bitmap_line::x2#10 - (word) bitmap_line::x#0
[179] call sgn_u16
[180] (word) sgn_u16::return#0 ← (word) sgn_u16::return#4
to:bitmap_line::@14
bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@1
[182] (word) bitmap_line::sx#0 ← (word) sgn_u16::return#0
[183] (word) sgn_u16::w#1 ← (word) bitmap_line::y2#11 - (word) bitmap_line::y#0
[184] call sgn_u16
[185] (word) sgn_u16::return#1 ← (word) sgn_u16::return#4
[181] (word) bitmap_line::sx#0 ← (word) sgn_u16::return#0
[182] (word) sgn_u16::w#1 ← (word) bitmap_line::y2#11 - (word) bitmap_line::y#0
[183] call sgn_u16
[184] (word) sgn_u16::return#1 ← (word) sgn_u16::return#4
to:bitmap_line::@15
bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@14
[186] (word) bitmap_line::sy#0 ← (word) sgn_u16::return#1
[187] if((word) bitmap_line::dx#0>(word) bitmap_line::dy#0) goto bitmap_line::@2
[185] (word) bitmap_line::sy#0 ← (word) sgn_u16::return#1
[186] if((word) bitmap_line::dx#0>(word) bitmap_line::dy#0) goto bitmap_line::@2
to:bitmap_line::@5
bitmap_line::@5: scope:[bitmap_line] from bitmap_line::@15
[188] (word) bitmap_line::e#0 ← (word) bitmap_line::dx#0 >> (byte) 1
[187] (word) bitmap_line::e#0 ← (word) bitmap_line::dx#0 >> (byte) 1
to:bitmap_line::@6
bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::@7
[189] (word) bitmap_line::e#3 ← phi( bitmap_line::@5/(word) bitmap_line::e#0 bitmap_line::@7/(word) bitmap_line::e#6 )
[189] (word) bitmap_line::x#13 ← phi( bitmap_line::@5/(word) bitmap_line::x#0 bitmap_line::@7/(word) bitmap_line::x#12 )
[189] (word) bitmap_line::y#4 ← phi( bitmap_line::@5/(word) bitmap_line::y#0 bitmap_line::@7/(word) bitmap_line::y#1 )
[190] (byte) bitmap_plot::y#1 ← (byte)(word) bitmap_line::y#4
[191] (word) bitmap_plot::x#1 ← (word) bitmap_line::x#13
[192] call bitmap_plot
[188] (word) bitmap_line::e#3 ← phi( bitmap_line::@5/(word) bitmap_line::e#0 bitmap_line::@7/(word) bitmap_line::e#6 )
[188] (word) bitmap_line::x#13 ← phi( bitmap_line::@5/(word) bitmap_line::x#0 bitmap_line::@7/(word) bitmap_line::x#12 )
[188] (word) bitmap_line::y#4 ← phi( bitmap_line::@5/(word) bitmap_line::y#0 bitmap_line::@7/(word) bitmap_line::y#1 )
[189] (byte) bitmap_plot::y#1 ← (byte)(word) bitmap_line::y#4
[190] (word) bitmap_plot::x#1 ← (word) bitmap_line::x#13
[191] call bitmap_plot
to:bitmap_line::@16
bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@6
[193] (word) bitmap_line::y#1 ← (word) bitmap_line::y#4 + (word) bitmap_line::sy#0
[194] (word) bitmap_line::e#1 ← (word) bitmap_line::e#3 + (word) bitmap_line::dx#0
[195] if((word) bitmap_line::dy#0>=(word) bitmap_line::e#1) goto bitmap_line::@7
[192] (word) bitmap_line::y#1 ← (word) bitmap_line::y#4 + (word) bitmap_line::sy#0
[193] (word) bitmap_line::e#1 ← (word) bitmap_line::e#3 + (word) bitmap_line::dx#0
[194] if((word) bitmap_line::dy#0>=(word) bitmap_line::e#1) goto bitmap_line::@7
to:bitmap_line::@8
bitmap_line::@8: scope:[bitmap_line] from bitmap_line::@16
[196] (word) bitmap_line::x#1 ← (word) bitmap_line::x#13 + (word) bitmap_line::sx#0
[197] (word) bitmap_line::e#2 ← (word) bitmap_line::e#1 - (word) bitmap_line::dy#0
[195] (word) bitmap_line::x#1 ← (word) bitmap_line::x#13 + (word) bitmap_line::sx#0
[196] (word) bitmap_line::e#2 ← (word) bitmap_line::e#1 - (word) bitmap_line::dy#0
to:bitmap_line::@7
bitmap_line::@7: scope:[bitmap_line] from bitmap_line::@16 bitmap_line::@8
[198] (word) bitmap_line::e#6 ← phi( bitmap_line::@16/(word) bitmap_line::e#1 bitmap_line::@8/(word) bitmap_line::e#2 )
[198] (word) bitmap_line::x#12 ← phi( bitmap_line::@16/(word) bitmap_line::x#13 bitmap_line::@8/(word) bitmap_line::x#1 )
[199] if((word) bitmap_line::y#1!=(word) bitmap_line::y2#11) goto bitmap_line::@6
[197] (word) bitmap_line::e#6 ← phi( bitmap_line::@16/(word) bitmap_line::e#1 bitmap_line::@8/(word) bitmap_line::e#2 )
[197] (word) bitmap_line::x#12 ← phi( bitmap_line::@16/(word) bitmap_line::x#13 bitmap_line::@8/(word) bitmap_line::x#1 )
[198] if((word) bitmap_line::y#1!=(word) bitmap_line::y2#11) goto bitmap_line::@6
to:bitmap_line::@3
bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@7
[200] (word) bitmap_line::x#6 ← phi( bitmap_line::@10/(word) bitmap_line::x#15 bitmap_line::@7/(word) bitmap_line::x#12 )
[200] (word) bitmap_line::y#7 ← phi( bitmap_line::@10/(word) bitmap_line::y#13 bitmap_line::@7/(word) bitmap_line::y#1 )
[201] (byte) bitmap_plot::y#2 ← (byte)(word) bitmap_line::y#7
[202] (word) bitmap_plot::x#2 ← (word) bitmap_line::x#6
[203] call bitmap_plot
[199] (word) bitmap_line::x#6 ← phi( bitmap_line::@10/(word) bitmap_line::x#15 bitmap_line::@7/(word) bitmap_line::x#12 )
[199] (word) bitmap_line::y#7 ← phi( bitmap_line::@10/(word) bitmap_line::y#13 bitmap_line::@7/(word) bitmap_line::y#1 )
[200] (byte) bitmap_plot::y#2 ← (byte)(word) bitmap_line::y#7
[201] (word) bitmap_plot::x#2 ← (word) bitmap_line::x#6
[202] call bitmap_plot
to:bitmap_line::@return
bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::@4
[204] return
[203] return
to:@return
bitmap_line::@2: scope:[bitmap_line] from bitmap_line::@15
[205] (word) bitmap_line::e1#0 ← (word) bitmap_line::dy#0 >> (byte) 1
[204] (word) bitmap_line::e1#0 ← (word) bitmap_line::dy#0 >> (byte) 1
to:bitmap_line::@9
bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@10 bitmap_line::@2
[206] (word) bitmap_line::e1#3 ← phi( bitmap_line::@10/(word) bitmap_line::e1#6 bitmap_line::@2/(word) bitmap_line::e1#0 )
[206] (word) bitmap_line::x#7 ← phi( bitmap_line::@10/(word) bitmap_line::x#15 bitmap_line::@2/(word) bitmap_line::x#0 )
[206] (word) bitmap_line::y#15 ← phi( bitmap_line::@10/(word) bitmap_line::y#13 bitmap_line::@2/(word) bitmap_line::y#0 )
[207] (byte) bitmap_plot::y#3 ← (byte)(word) bitmap_line::y#15
[208] (word) bitmap_plot::x#3 ← (word) bitmap_line::x#7
[209] call bitmap_plot
[205] (word) bitmap_line::e1#3 ← phi( bitmap_line::@10/(word) bitmap_line::e1#6 bitmap_line::@2/(word) bitmap_line::e1#0 )
[205] (word) bitmap_line::x#7 ← phi( bitmap_line::@10/(word) bitmap_line::x#15 bitmap_line::@2/(word) bitmap_line::x#0 )
[205] (word) bitmap_line::y#15 ← phi( bitmap_line::@10/(word) bitmap_line::y#13 bitmap_line::@2/(word) bitmap_line::y#0 )
[206] (byte) bitmap_plot::y#3 ← (byte)(word) bitmap_line::y#15
[207] (word) bitmap_plot::x#3 ← (word) bitmap_line::x#7
[208] call bitmap_plot
to:bitmap_line::@17
bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9
[210] (word) bitmap_line::x#15 ← (word) bitmap_line::x#7 + (word) bitmap_line::sx#0
[211] (word) bitmap_line::e1#1 ← (word) bitmap_line::e1#3 + (word) bitmap_line::dy#0
[212] if((word) bitmap_line::dx#0>=(word) bitmap_line::e1#1) goto bitmap_line::@10
[209] (word) bitmap_line::x#15 ← (word) bitmap_line::x#7 + (word) bitmap_line::sx#0
[210] (word) bitmap_line::e1#1 ← (word) bitmap_line::e1#3 + (word) bitmap_line::dy#0
[211] if((word) bitmap_line::dx#0>=(word) bitmap_line::e1#1) goto bitmap_line::@10
to:bitmap_line::@11
bitmap_line::@11: scope:[bitmap_line] from bitmap_line::@17
[213] (word) bitmap_line::y#2 ← (word) bitmap_line::y#15 + (word) bitmap_line::sy#0
[214] (word) bitmap_line::e1#2 ← (word) bitmap_line::e1#1 - (word) bitmap_line::dx#0
[212] (word) bitmap_line::y#2 ← (word) bitmap_line::y#15 + (word) bitmap_line::sy#0
[213] (word) bitmap_line::e1#2 ← (word) bitmap_line::e1#1 - (word) bitmap_line::dx#0
to:bitmap_line::@10
bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::@17
[215] (word) bitmap_line::e1#6 ← phi( bitmap_line::@11/(word) bitmap_line::e1#2 bitmap_line::@17/(word) bitmap_line::e1#1 )
[215] (word) bitmap_line::y#13 ← phi( bitmap_line::@11/(word) bitmap_line::y#2 bitmap_line::@17/(word) bitmap_line::y#15 )
[216] if((word) bitmap_line::x#15!=(word) bitmap_line::x2#10) goto bitmap_line::@9
[214] (word) bitmap_line::e1#6 ← phi( bitmap_line::@11/(word) bitmap_line::e1#2 bitmap_line::@17/(word) bitmap_line::e1#1 )
[214] (word) bitmap_line::y#13 ← phi( bitmap_line::@11/(word) bitmap_line::y#2 bitmap_line::@17/(word) bitmap_line::y#15 )
[215] if((word) bitmap_line::x#15!=(word) bitmap_line::x2#10) goto bitmap_line::@9
to:bitmap_line::@3
bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@18
[217] (byte) bitmap_plot::y#0 ← (byte)(word) bitmap_line::y#0
[218] (word) bitmap_plot::x#0 ← (word) bitmap_line::x#0
[219] call bitmap_plot
[216] (byte) bitmap_plot::y#0 ← (byte)(word) bitmap_line::y#0
[217] (word) bitmap_plot::x#0 ← (word) bitmap_line::x#0
[218] call bitmap_plot
to:bitmap_line::@return
bitmap_plot: scope:[bitmap_plot] from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9
[220] (word) bitmap_plot::x#4 ← phi( bitmap_line::@9/(word) bitmap_plot::x#3 bitmap_line::@3/(word) bitmap_plot::x#2 bitmap_line::@4/(word) bitmap_plot::x#0 bitmap_line::@6/(word) bitmap_plot::x#1 )
[220] (byte) bitmap_plot::y#4 ← phi( bitmap_line::@9/(byte) bitmap_plot::y#3 bitmap_line::@3/(byte) bitmap_plot::y#2 bitmap_line::@4/(byte) bitmap_plot::y#0 bitmap_line::@6/(byte) bitmap_plot::y#1 )
[221] (word) bitmap_plot::plotter#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4)
[222] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#4 & (word) $fff8
[223] (byte*) bitmap_plot::plotter#1 ← (byte*)(word) bitmap_plot::plotter#0 + (word~) bitmap_plot::$1
[224] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#4
[225] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2)
[219] (word) bitmap_plot::x#4 ← phi( bitmap_line::@9/(word) bitmap_plot::x#3 bitmap_line::@3/(word) bitmap_plot::x#2 bitmap_line::@4/(word) bitmap_plot::x#0 bitmap_line::@6/(word) bitmap_plot::x#1 )
[219] (byte) bitmap_plot::y#4 ← phi( bitmap_line::@9/(byte) bitmap_plot::y#3 bitmap_line::@3/(byte) bitmap_plot::y#2 bitmap_line::@4/(byte) bitmap_plot::y#0 bitmap_line::@6/(byte) bitmap_plot::y#1 )
[220] (word) bitmap_plot::plotter#0 ← *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_plot::y#4) w= *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_plot::y#4)
[221] (word~) bitmap_plot::$1 ← (word) bitmap_plot::x#4 & (word) $fff8
[222] (byte*) bitmap_plot::plotter#1 ← (byte*)(word) bitmap_plot::plotter#0 + (word~) bitmap_plot::$1
[223] (byte~) bitmap_plot::$2 ← < (word) bitmap_plot::x#4
[224] *((byte*) bitmap_plot::plotter#1) ← *((byte*) bitmap_plot::plotter#1) | *((const byte[$100]) bitmap_plot_bit#0 + (byte~) bitmap_plot::$2)
to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
[226] return
[225] return
to:@return
sgn_u16: scope:[sgn_u16] from bitmap_line::@1 bitmap_line::@14
[227] (word) sgn_u16::w#2 ← phi( bitmap_line::@1/(word) sgn_u16::w#0 bitmap_line::@14/(word) sgn_u16::w#1 )
[228] (byte~) sgn_u16::$0 ← > (word) sgn_u16::w#2
[229] (byte~) sgn_u16::$1 ← (byte~) sgn_u16::$0 & (byte) $80
[230] if((byte) 0!=(byte~) sgn_u16::$1) goto sgn_u16::@1
[226] (word) sgn_u16::w#2 ← phi( bitmap_line::@1/(word) sgn_u16::w#0 bitmap_line::@14/(word) sgn_u16::w#1 )
[227] (byte~) sgn_u16::$0 ← > (word) sgn_u16::w#2
[228] (byte~) sgn_u16::$1 ← (byte~) sgn_u16::$0 & (byte) $80
[229] if((byte) 0!=(byte~) sgn_u16::$1) goto sgn_u16::@1
to:sgn_u16::@return
sgn_u16::@1: scope:[sgn_u16] from sgn_u16
[231] phi()
[230] phi()
to:sgn_u16::@return
sgn_u16::@return: scope:[sgn_u16] from sgn_u16 sgn_u16::@1
[232] (word) sgn_u16::return#4 ← phi( sgn_u16::@1/(byte) -1 sgn_u16/(byte) 1 )
[233] return
[231] (word) sgn_u16::return#4 ← phi( sgn_u16::@1/(byte) -1 sgn_u16/(byte) 1 )
[232] return
to:@return
abs_u16: scope:[abs_u16] from bitmap_line bitmap_line::@12
[234] (word) abs_u16::w#2 ← phi( bitmap_line/(word) abs_u16::w#0 bitmap_line::@12/(word) abs_u16::w#1 )
[235] (byte~) abs_u16::$0 ← > (word) abs_u16::w#2
[236] (byte~) abs_u16::$1 ← (byte~) abs_u16::$0 & (byte) $80
[237] if((byte) 0!=(byte~) abs_u16::$1) goto abs_u16::@1
[233] (word) abs_u16::w#2 ← phi( bitmap_line/(word) abs_u16::w#0 bitmap_line::@12/(word) abs_u16::w#1 )
[234] (byte~) abs_u16::$0 ← > (word) abs_u16::w#2
[235] (byte~) abs_u16::$1 ← (byte~) abs_u16::$0 & (byte) $80
[236] if((byte) 0!=(byte~) abs_u16::$1) goto abs_u16::@1
to:abs_u16::@return
abs_u16::@1: scope:[abs_u16] from abs_u16
[238] (word) abs_u16::return#2 ← - (word) abs_u16::w#2
[237] (word) abs_u16::return#2 ← - (word) abs_u16::w#2
to:abs_u16::@return
abs_u16::@return: scope:[abs_u16] from abs_u16 abs_u16::@1
[239] (word) abs_u16::return#4 ← phi( abs_u16::@1/(word) abs_u16::return#2 abs_u16/(word) abs_u16::w#2 )
[240] return
[238] (word) abs_u16::return#4 ← phi( abs_u16::@1/(word) abs_u16::return#2 abs_u16/(word) abs_u16::w#2 )
[239] return
to:@return
spline_8segB: scope:[spline_8segB] from main::@2
[241] (signed word~) spline_8segB::$0 ← (signed word) spline_8segB::p1_x#0 << (byte) 1
[242] (signed word~) spline_8segB::$1 ← (signed word) spline_8segB::p2_x#0 - (signed word~) spline_8segB::$0
[243] (signed word) spline_8segB::a_x#0 ← (signed word~) spline_8segB::$1 + (signed word) spline_8segB::p0_x#0
[244] (signed word~) spline_8segB::$3 ← (signed word) spline_8segB::p1_y#0 << (byte) 1
[245] (signed word~) spline_8segB::$4 ← (signed word) spline_8segB::p2_y#0 - (signed word~) spline_8segB::$3
[246] (signed word) spline_8segB::a_y#0 ← (signed word~) spline_8segB::$4 + (signed word) spline_8segB::p0_y#0
[247] (signed word~) spline_8segB::$6 ← (signed word) spline_8segB::p1_x#0 - (signed word) spline_8segB::p0_x#0
[248] (signed word) spline_8segB::b_x#0 ← (signed word~) spline_8segB::$6 << (byte) 1
[249] (signed word~) spline_8segB::$8 ← (signed word) spline_8segB::p1_y#0 - (signed word) spline_8segB::p0_y#0
[250] (signed word) spline_8segB::b_y#0 ← (signed word~) spline_8segB::$8 << (byte) 1
[251] (signed word~) spline_8segB::$10 ← (signed word) spline_8segB::b_x#0 << (byte) 3
[252] (signed word) spline_8segB::i_x#0 ← (signed word) spline_8segB::a_x#0 + (signed word~) spline_8segB::$10
[253] (signed word~) spline_8segB::$12 ← (signed word) spline_8segB::b_y#0 << (byte) 3
[254] (signed word) spline_8segB::i_y#0 ← (signed word) spline_8segB::a_y#0 + (signed word~) spline_8segB::$12
[255] (signed word) spline_8segB::j_x#0 ← (signed word) spline_8segB::a_x#0 << (byte) 1
[256] (signed word) spline_8segB::j_y#0 ← (signed word) spline_8segB::a_y#0 << (byte) 1
[257] (signed word) spline_8segB::p_x#0 ← (signed word) spline_8segB::p0_x#0 << (byte) 6
[258] (signed word) spline_8segB::p_y#0 ← (signed word) spline_8segB::p0_y#0 << (byte) 6
[240] (signed word~) spline_8segB::$0 ← (signed word) spline_8segB::p1_x#0 << (byte) 1
[241] (signed word~) spline_8segB::$1 ← (signed word) spline_8segB::p2_x#0 - (signed word~) spline_8segB::$0
[242] (signed word) spline_8segB::a_x#0 ← (signed word~) spline_8segB::$1 + (signed word) spline_8segB::p0_x#0
[243] (signed word~) spline_8segB::$3 ← (signed word) spline_8segB::p1_y#0 << (byte) 1
[244] (signed word~) spline_8segB::$4 ← (signed word) spline_8segB::p2_y#0 - (signed word~) spline_8segB::$3
[245] (signed word) spline_8segB::a_y#0 ← (signed word~) spline_8segB::$4 + (signed word) spline_8segB::p0_y#0
[246] (signed word~) spline_8segB::$6 ← (signed word) spline_8segB::p1_x#0 - (signed word) spline_8segB::p0_x#0
[247] (signed word) spline_8segB::b_x#0 ← (signed word~) spline_8segB::$6 << (byte) 1
[248] (signed word~) spline_8segB::$8 ← (signed word) spline_8segB::p1_y#0 - (signed word) spline_8segB::p0_y#0
[249] (signed word) spline_8segB::b_y#0 ← (signed word~) spline_8segB::$8 << (byte) 1
[250] (signed word~) spline_8segB::$10 ← (signed word) spline_8segB::b_x#0 << (byte) 3
[251] (signed word) spline_8segB::i_x#0 ← (signed word) spline_8segB::a_x#0 + (signed word~) spline_8segB::$10
[252] (signed word~) spline_8segB::$12 ← (signed word) spline_8segB::b_y#0 << (byte) 3
[253] (signed word) spline_8segB::i_y#0 ← (signed word) spline_8segB::a_y#0 + (signed word~) spline_8segB::$12
[254] (signed word) spline_8segB::j_x#0 ← (signed word) spline_8segB::a_x#0 << (byte) 1
[255] (signed word) spline_8segB::j_y#0 ← (signed word) spline_8segB::a_y#0 << (byte) 1
[256] (signed word) spline_8segB::p_x#0 ← (signed word) spline_8segB::p0_x#0 << (byte) 6
[257] (signed word) spline_8segB::p_y#0 ← (signed word) spline_8segB::p0_y#0 << (byte) 6
to:spline_8segB::@1
spline_8segB::@1: scope:[spline_8segB] from spline_8segB spline_8segB::@1
[259] (signed word) spline_8segB::i_y#2 ← phi( spline_8segB/(signed word) spline_8segB::i_y#0 spline_8segB::@1/(signed word) spline_8segB::i_y#1 )
[259] (signed word) spline_8segB::i_x#2 ← phi( spline_8segB/(signed word) spline_8segB::i_x#0 spline_8segB::@1/(signed word) spline_8segB::i_x#1 )
[259] (byte) spline_8segB::n#2 ← phi( spline_8segB/(byte) 0 spline_8segB::@1/(byte) spline_8segB::n#1 )
[259] (signed word) spline_8segB::p_y#2 ← phi( spline_8segB/(signed word) spline_8segB::p_y#0 spline_8segB::@1/(signed word) spline_8segB::p_y#1 )
[259] (signed word) spline_8segB::p_x#2 ← phi( spline_8segB/(signed word) spline_8segB::p_x#0 spline_8segB::@1/(signed word) spline_8segB::p_x#1 )
[260] (signed word~) spline_8segB::$22 ← (signed word) spline_8segB::p_x#2 + (signed byte) $20
[261] (signed word~) spline_8segB::$23 ← (signed word~) spline_8segB::$22 >> (byte) 6
[262] (signed word~) spline_8segB::$24 ← (signed word) spline_8segB::p_y#2 + (signed byte) $20
[263] (signed word~) spline_8segB::$25 ← (signed word~) spline_8segB::$24 >> (byte) 6
[264] (byte~) spline_8segB::$31 ← (byte) spline_8segB::n#2 << (byte) 2
[265] *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0 + (byte~) spline_8segB::$31) ← (signed word~) spline_8segB::$23
[266] *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y + (byte~) spline_8segB::$31) ← (signed word~) spline_8segB::$25
[267] (signed word) spline_8segB::p_x#1 ← (signed word) spline_8segB::p_x#2 + (signed word) spline_8segB::i_x#2
[268] (signed word) spline_8segB::p_y#1 ← (signed word) spline_8segB::p_y#2 + (signed word) spline_8segB::i_y#2
[269] (signed word) spline_8segB::i_x#1 ← (signed word) spline_8segB::i_x#2 + (signed word) spline_8segB::j_x#0
[270] (signed word) spline_8segB::i_y#1 ← (signed word) spline_8segB::i_y#2 + (signed word) spline_8segB::j_y#0
[271] (byte) spline_8segB::n#1 ← ++ (byte) spline_8segB::n#2
[272] if((byte) spline_8segB::n#1!=(byte) 8) goto spline_8segB::@1
[258] (signed word) spline_8segB::i_y#2 ← phi( spline_8segB/(signed word) spline_8segB::i_y#0 spline_8segB::@1/(signed word) spline_8segB::i_y#1 )
[258] (signed word) spline_8segB::i_x#2 ← phi( spline_8segB/(signed word) spline_8segB::i_x#0 spline_8segB::@1/(signed word) spline_8segB::i_x#1 )
[258] (byte) spline_8segB::n#2 ← phi( spline_8segB/(byte) 0 spline_8segB::@1/(byte) spline_8segB::n#1 )
[258] (signed word) spline_8segB::p_y#2 ← phi( spline_8segB/(signed word) spline_8segB::p_y#0 spline_8segB::@1/(signed word) spline_8segB::p_y#1 )
[258] (signed word) spline_8segB::p_x#2 ← phi( spline_8segB/(signed word) spline_8segB::p_x#0 spline_8segB::@1/(signed word) spline_8segB::p_x#1 )
[259] (signed word~) spline_8segB::$22 ← (signed word) spline_8segB::p_x#2 + (signed byte) $20
[260] (signed word~) spline_8segB::$23 ← (signed word~) spline_8segB::$22 >> (byte) 6
[261] (signed word~) spline_8segB::$24 ← (signed word) spline_8segB::p_y#2 + (signed byte) $20
[262] (signed word~) spline_8segB::$25 ← (signed word~) spline_8segB::$24 >> (byte) 6
[263] (byte~) spline_8segB::$31 ← (byte) spline_8segB::n#2 << (byte) 2
[264] *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0 + (byte~) spline_8segB::$31) ← (signed word~) spline_8segB::$23
[265] *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y + (byte~) spline_8segB::$31) ← (signed word~) spline_8segB::$25
[266] (signed word) spline_8segB::p_x#1 ← (signed word) spline_8segB::p_x#2 + (signed word) spline_8segB::i_x#2
[267] (signed word) spline_8segB::p_y#1 ← (signed word) spline_8segB::p_y#2 + (signed word) spline_8segB::i_y#2
[268] (signed word) spline_8segB::i_x#1 ← (signed word) spline_8segB::i_x#2 + (signed word) spline_8segB::j_x#0
[269] (signed word) spline_8segB::i_y#1 ← (signed word) spline_8segB::i_y#2 + (signed word) spline_8segB::j_y#0
[270] (byte) spline_8segB::n#1 ← ++ (byte) spline_8segB::n#2
[271] if((byte) spline_8segB::n#1!=(byte) 8) goto spline_8segB::@1
to:spline_8segB::@2
spline_8segB::@2: scope:[spline_8segB] from spline_8segB::@1
[273] (signed word~) spline_8segB::$18 ← (signed word) spline_8segB::p_x#1 + (signed byte) $20
[274] (signed word~) spline_8segB::$19 ← (signed word~) spline_8segB::$18 >> (byte) 6
[275] (signed word~) spline_8segB::$20 ← (signed word) spline_8segB::p_y#1 + (signed byte) $20
[276] (signed word~) spline_8segB::$21 ← (signed word~) spline_8segB::$20 >> (byte) 6
[277] *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(byte) 8*(const byte) SIZEOF_STRUCT_SPLINEVECTOR16) ← (signed word~) spline_8segB::$19
[278] *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 8*(const byte) SIZEOF_STRUCT_SPLINEVECTOR16) ← (signed word~) spline_8segB::$21
[272] (signed word~) spline_8segB::$18 ← (signed word) spline_8segB::p_x#1 + (signed byte) $20
[273] (signed word~) spline_8segB::$19 ← (signed word~) spline_8segB::$18 >> (byte) 6
[274] (signed word~) spline_8segB::$20 ← (signed word) spline_8segB::p_y#1 + (signed byte) $20
[275] (signed word~) spline_8segB::$21 ← (signed word~) spline_8segB::$20 >> (byte) 6
[276] *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(byte) 8*(const byte) SIZEOF_STRUCT_SPLINEVECTOR16) ← (signed word~) spline_8segB::$19
[277] *((signed word*)(const struct SplineVector16[9]) SPLINE_8SEG#0+(const byte) OFFSET_STRUCT_SPLINEVECTOR16_Y+(byte) 8*(const byte) SIZEOF_STRUCT_SPLINEVECTOR16) ← (signed word~) spline_8segB::$21
to:spline_8segB::@return
spline_8segB::@return: scope:[spline_8segB] from spline_8segB::@2
[279] return
[278] return
to:@return
bitmap_clear: scope:[bitmap_clear] from main::@8
[280] phi()
[281] call memset
[279] phi()
[280] call memset
to:bitmap_clear::@1
bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear
[282] phi()
[283] call memset
[281] phi()
[282] call memset
to:bitmap_clear::@return
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@1
[284] return
[283] return
to:@return
memset: scope:[memset] from bitmap_clear bitmap_clear::@1
[285] (byte) memset::c#3 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
[285] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) BITMAP_SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP_GRAPHICS#0 )
[285] (word) memset::num#2 ← phi( bitmap_clear/(word) $3e8 bitmap_clear::@1/(word) $1f40 )
[286] if((word) memset::num#2<=(byte) 0) goto memset::@return
[284] (byte) memset::c#3 ← phi( bitmap_clear/(const byte) bitmap_clear::col#0 bitmap_clear::@1/(byte) 0 )
[284] (void*) memset::str#3 ← phi( bitmap_clear/(void*)(const byte*) BITMAP_SCREEN#0 bitmap_clear::@1/(void*)(const byte*) BITMAP_GRAPHICS#0 )
[284] (word) memset::num#2 ← phi( bitmap_clear/(word) $3e8 bitmap_clear::@1/(word) $1f40 )
[285] if((word) memset::num#2<=(byte) 0) goto memset::@return
to:memset::@1
memset::@1: scope:[memset] from memset
[287] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2
[288] (byte*~) memset::dst#3 ← (byte*)(void*) memset::str#3
[286] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2
[287] (byte*~) memset::dst#3 ← (byte*)(void*) memset::str#3
to:memset::@2
memset::@2: scope:[memset] from memset::@1 memset::@2
[289] (byte*) memset::dst#2 ← phi( memset::@1/(byte*~) memset::dst#3 memset::@2/(byte*) memset::dst#1 )
[290] *((byte*) memset::dst#2) ← (byte) memset::c#3
[291] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
[292] if((byte*) memset::dst#1!=(byte*) memset::end#0) goto memset::@2
[288] (byte*) memset::dst#2 ← phi( memset::@1/(byte*~) memset::dst#3 memset::@2/(byte*) memset::dst#1 )
[289] *((byte*) memset::dst#2) ← (byte) memset::c#3
[290] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
[291] if((byte*) memset::dst#1!=(byte*) memset::end#0) goto memset::@2
to:memset::@return
memset::@return: scope:[memset] from memset memset::@2
[293] return
[292] return
to:@return
bitmap_init: scope:[bitmap_init] from main
[294] phi()
[293] phi()
to:bitmap_init::@1
bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2
[295] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) 0 bitmap_init::@2/(byte) bitmap_init::x#1 )
[295] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 )
[296] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3
[297] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1
[298] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@6
[294] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) 0 bitmap_init::@2/(byte) bitmap_init::x#1 )
[294] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 )
[295] *((const byte[$100]) bitmap_plot_bit#0 + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3
[296] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1
[297] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@6
to:bitmap_init::@2
bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@1
[299] phi()
[298] phi()
to:bitmap_init::@2
bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@6
[300] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@6/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte) $80 )
[301] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2
[302] if((byte) bitmap_init::x#1!=(byte) 0) goto bitmap_init::@1
[299] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@6/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte) $80 )
[300] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2
[301] if((byte) bitmap_init::x#1!=(byte) 0) goto bitmap_init::@1
to:bitmap_init::@3
bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4
[303] (byte*) bitmap_init::yoffs#2 ← phi( bitmap_init::@2/(const byte*) BITMAP_GRAPHICS#0 bitmap_init::@4/(byte*) bitmap_init::yoffs#4 )
[303] (byte) bitmap_init::y#2 ← phi( bitmap_init::@2/(byte) 0 bitmap_init::@4/(byte) bitmap_init::y#1 )
[304] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte) 7
[305] (byte~) bitmap_init::$4 ← < (byte*) bitmap_init::yoffs#2
[306] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$7 | (byte~) bitmap_init::$4
[307] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5
[308] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2
[309] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6
[310] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@4
[302] (byte*) bitmap_init::yoffs#2 ← phi( bitmap_init::@2/(const byte*) BITMAP_GRAPHICS#0 bitmap_init::@4/(byte*) bitmap_init::yoffs#4 )
[302] (byte) bitmap_init::y#2 ← phi( bitmap_init::@2/(byte) 0 bitmap_init::@4/(byte) bitmap_init::y#1 )
[303] (byte~) bitmap_init::$7 ← (byte) bitmap_init::y#2 & (byte) 7
[304] (byte~) bitmap_init::$4 ← < (byte*) bitmap_init::yoffs#2
[305] (byte~) bitmap_init::$5 ← (byte~) bitmap_init::$7 | (byte~) bitmap_init::$4
[306] *((const byte[$100]) bitmap_plot_ylo#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$5
[307] (byte~) bitmap_init::$6 ← > (byte*) bitmap_init::yoffs#2
[308] *((const byte[$100]) bitmap_plot_yhi#0 + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$6
[309] if((byte~) bitmap_init::$7!=(byte) 7) goto bitmap_init::@4
to:bitmap_init::@5
bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3
[311] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8
[310] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8
to:bitmap_init::@4
bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
[312] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@5/(byte*) bitmap_init::yoffs#1 )
[313] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2
[314] if((byte) bitmap_init::y#1!=(byte) 0) goto bitmap_init::@3
[311] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@5/(byte*) bitmap_init::yoffs#1 )
[312] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2
[313] if((byte) bitmap_init::y#1!=(byte) 0) goto bitmap_init::@3
to:bitmap_init::@return
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
[315] return
[314] return
to:@return

File diff suppressed because it is too large Load Diff

View File

@ -70,7 +70,7 @@
(byte~) bitmap_init::$4 reg byte a 22.0
(byte~) bitmap_init::$5 reg byte a 22.0
(byte~) bitmap_init::$6 reg byte a 22.0
(byte~) bitmap_init::$7 $7 zp ZP_BYTE:56 5.5
(byte~) bitmap_init::$7 $7 zp ZP_BYTE:52 5.5
(label) bitmap_init::@1
(label) bitmap_init::@2
(label) bitmap_init::@3
@ -115,7 +115,7 @@
(label) bitmap_line::@9
(label) bitmap_line::@return
(word) bitmap_line::dx
(word) bitmap_line::dx#0 dx zp ZP_WORD:40 7.775
(word) bitmap_line::dx#0 dx zp ZP_WORD:36 7.775
(word) bitmap_line::dy
(word) bitmap_line::dy#0 dy zp ZP_WORD:20 8.638888888888888
(word) bitmap_line::e
@ -131,7 +131,7 @@
(word) bitmap_line::e1#3 e1 zp ZP_WORD:14 40.8
(word) bitmap_line::e1#6 e1 zp ZP_WORD:14 151.5
(word) bitmap_line::sx
(word) bitmap_line::sx#0 sx zp ZP_WORD:42 6.800000000000001
(word) bitmap_line::sx#0 sx zp ZP_WORD:38 6.800000000000001
(word) bitmap_line::sy
(word) bitmap_line::sy#0 sy zp ZP_WORD:18 7.846153846153847
(word) bitmap_line::x
@ -144,11 +144,11 @@
(word) bitmap_line::x#7 x zp ZP_WORD:3 76.25
(word) bitmap_line::x1
(word) bitmap_line::x1#0 x1 zp ZP_WORD:3 5.5
(word) bitmap_line::x1#1 x1 zp ZP_WORD:3 50.5
(word) bitmap_line::x1#1 x1 zp ZP_WORD:3 40.4
(word) bitmap_line::x2
(word) bitmap_line::x2#0 x2 zp ZP_WORD:8 11.0
(word) bitmap_line::x2#1 x2 zp ZP_WORD:8 101.0
(word) bitmap_line::x2#10 x2 zp ZP_WORD:8 6.78125
(word~) bitmap_line::x2#13 x2 zp ZP_WORD:8 101.0
(word) bitmap_line::y
(word) bitmap_line::y#0 y zp ZP_WORD:5 5.454545454545454
(word) bitmap_line::y#1 y zp ZP_WORD:5 57.714285714285715
@ -159,18 +159,18 @@
(word) bitmap_line::y#7 y zp ZP_WORD:5 202.0
(word) bitmap_line::y1
(word) bitmap_line::y1#0 y1 zp ZP_WORD:5 7.333333333333333
(word) bitmap_line::y1#1 y1 zp ZP_WORD:5 67.33333333333333
(word) bitmap_line::y1#1 y1 zp ZP_WORD:5 50.5
(word) bitmap_line::y2
(word) bitmap_line::y2#0 y2 zp ZP_WORD:10 22.0
(word) bitmap_line::y2#1 y2 zp ZP_WORD:10 202.0
(word) bitmap_line::y2#11 y2 zp ZP_WORD:10 6.78125
(word~) bitmap_line::y2#13 y2 zp ZP_WORD:10 202.0
(void()) bitmap_plot((word) bitmap_plot::x , (byte) bitmap_plot::y)
(word~) bitmap_plot::$1 $1 zp ZP_WORD:46 4.0
(word~) bitmap_plot::$1 $1 zp ZP_WORD:42 4.0
(byte~) bitmap_plot::$2 reg byte a 4.0
(label) bitmap_plot::@return
(byte*) bitmap_plot::plotter
(word) bitmap_plot::plotter#0 plotter zp ZP_WORD:44 1.0
(byte*) bitmap_plot::plotter#1 plotter zp ZP_WORD:44 3.0
(word) bitmap_plot::plotter#0 plotter zp ZP_WORD:40 1.0
(byte*) bitmap_plot::plotter#1 plotter zp ZP_WORD:40 3.0
(word) bitmap_plot::x
(word) bitmap_plot::x#0 x zp ZP_WORD:3 4.0
(word) bitmap_plot::x#1 x zp ZP_WORD:3 202.0
@ -186,26 +186,22 @@
(byte[$100]) bitmap_plot_bit
(const byte[$100]) bitmap_plot_bit#0 bitmap_plot_bit = { fill( $100, 0) }
(void()) bitmap_plot_spline_8seg()
(byte~) bitmap_plot_spline_8seg::$7 reg byte x 151.5
(byte~) bitmap_plot_spline_8seg::$8 reg byte x 50.5
(byte~) bitmap_plot_spline_8seg::$9 reg byte x 151.5
(label) bitmap_plot_spline_8seg::@1
(label) bitmap_plot_spline_8seg::@2
(label) bitmap_plot_spline_8seg::@3
(label) bitmap_plot_spline_8seg::@return
(signed word) bitmap_plot_spline_8seg::current_x
(signed word) bitmap_plot_spline_8seg::current_x#0 current_x zp ZP_WORD:3 2.0
(signed word) bitmap_plot_spline_8seg::current_x#2 current_x zp ZP_WORD:3 25.75
(signed word~) bitmap_plot_spline_8seg::current_x#4 current_x zp ZP_WORD:3 101.0
(signed word) bitmap_plot_spline_8seg::current_x#1 current_x zp ZP_WORD:3 50.5
(signed word) bitmap_plot_spline_8seg::current_x#2 current_x zp ZP_WORD:3 103.0
(signed word) bitmap_plot_spline_8seg::current_y
(signed word) bitmap_plot_spline_8seg::current_y#0 current_y zp ZP_WORD:5 4.0
(signed word) bitmap_plot_spline_8seg::current_y#2 current_y zp ZP_WORD:5 20.599999999999998
(signed word~) bitmap_plot_spline_8seg::current_y#4 current_y zp ZP_WORD:5 202.0
(signed word) bitmap_plot_spline_8seg::current_y#1 current_y zp ZP_WORD:5 67.33333333333333
(signed word) bitmap_plot_spline_8seg::current_y#2 current_y zp ZP_WORD:5 51.5
(byte) bitmap_plot_spline_8seg::n
(byte) bitmap_plot_spline_8seg::n#1 n zp ZP_BYTE:7 75.75
(byte) bitmap_plot_spline_8seg::n#2 n zp ZP_BYTE:7 33.666666666666664
(signed word) bitmap_plot_spline_8seg::to_x
(signed word) bitmap_plot_spline_8seg::to_x#0 to_x zp ZP_WORD:36 22.444444444444443
(signed word) bitmap_plot_spline_8seg::to_y
(signed word) bitmap_plot_spline_8seg::to_y#0 to_y zp ZP_WORD:38 22.444444444444443
(byte) bitmap_plot_spline_8seg::n#1 n zp ZP_BYTE:7 151.5
(byte) bitmap_plot_spline_8seg::n#2 n zp ZP_BYTE:7 40.4
(byte[$100]) bitmap_plot_yhi
(const byte[$100]) bitmap_plot_yhi#0 bitmap_plot_yhi = { fill( $100, 0) }
(byte[$100]) bitmap_plot_ylo
@ -245,8 +241,6 @@
(signed word) main::segment_via_x#0 segment_via_x zp ZP_WORD:22 3.6666666666666665
(signed word) main::segment_via_y
(signed word) main::segment_via_y#0 segment_via_y zp ZP_WORD:24 3.6666666666666665
(signed word) main::to1_x
(signed word) main::to1_y
(label) main::toD0181
(word~) main::toD0181_$0
(number~) main::toD0181_$1
@ -261,10 +255,6 @@
(byte) main::toD0181_return
(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) BITMAP_SCREEN#0&(word) $3fff*(byte) 4|>(word)(const byte*) BITMAP_GRAPHICS#0/(byte) 4&(byte) $f
(byte*) main::toD0181_screen
(signed word) main::to_x
(signed word) main::to_y
(signed word) main::via_x
(signed word) main::via_y
(label) main::vicSelectGfxBank1
(byte~) main::vicSelectGfxBank1_$0
(label) main::vicSelectGfxBank1_@1
@ -308,30 +298,30 @@
(word) sgn_u16::w#1 w zp ZP_WORD:16 4.0
(word) sgn_u16::w#2 w zp ZP_WORD:16 6.0
(void()) spline_8segB((signed word) spline_8segB::p0_x , (signed word) spline_8segB::p0_y , (signed word) spline_8segB::p1_x , (signed word) spline_8segB::p1_y , (signed word) spline_8segB::p2_x , (signed word) spline_8segB::p2_y)
(signed word~) spline_8segB::$0 $0 zp ZP_WORD:48 4.0
(signed word~) spline_8segB::$1 $1 zp ZP_WORD:48 4.0
(signed word~) spline_8segB::$0 $0 zp ZP_WORD:44 4.0
(signed word~) spline_8segB::$1 $1 zp ZP_WORD:44 4.0
(signed word~) spline_8segB::$10 $10 zp ZP_WORD:22 4.0
(signed word~) spline_8segB::$12 $12 zp ZP_WORD:24 4.0
(signed word~) spline_8segB::$18 $18 zp ZP_WORD:3 4.0
(signed word~) spline_8segB::$19 $19 zp ZP_WORD:3 1.3333333333333333
(signed word~) spline_8segB::$20 $20 zp ZP_WORD:5 4.0
(signed word~) spline_8segB::$21 $21 zp ZP_WORD:5 2.0
(signed word~) spline_8segB::$22 $22 zp ZP_WORD:52 202.0
(signed word~) spline_8segB::$23 $23 zp ZP_WORD:52 50.5
(signed word~) spline_8segB::$24 $24 zp ZP_WORD:54 202.0
(signed word~) spline_8segB::$25 $25 zp ZP_WORD:54 67.33333333333333
(signed word~) spline_8segB::$3 $3 zp ZP_WORD:50 4.0
(signed word~) spline_8segB::$22 $22 zp ZP_WORD:48 202.0
(signed word~) spline_8segB::$23 $23 zp ZP_WORD:48 50.5
(signed word~) spline_8segB::$24 $24 zp ZP_WORD:50 202.0
(signed word~) spline_8segB::$25 $25 zp ZP_WORD:50 67.33333333333333
(signed word~) spline_8segB::$3 $3 zp ZP_WORD:46 4.0
(byte~) spline_8segB::$31 reg byte x 151.5
(signed word~) spline_8segB::$4 $4 zp ZP_WORD:50 4.0
(signed word~) spline_8segB::$4 $4 zp ZP_WORD:46 4.0
(signed word~) spline_8segB::$6 $6 zp ZP_WORD:22 4.0
(signed word~) spline_8segB::$8 $8 zp ZP_WORD:24 4.0
(label) spline_8segB::@1
(label) spline_8segB::@2
(label) spline_8segB::@return
(signed word) spline_8segB::a_x
(signed word) spline_8segB::a_x#0 a_x zp ZP_WORD:48 0.5
(signed word) spline_8segB::a_x#0 a_x zp ZP_WORD:44 0.5
(signed word) spline_8segB::a_y
(signed word) spline_8segB::a_y#0 a_y zp ZP_WORD:50 0.6000000000000001
(signed word) spline_8segB::a_y#0 a_y zp ZP_WORD:46 0.6000000000000001
(signed word) spline_8segB::b_x
(signed word) spline_8segB::b_x#0 b_x zp ZP_WORD:22 1.3333333333333333
(signed word) spline_8segB::b_y
@ -345,9 +335,9 @@
(signed word) spline_8segB::i_y#1 i_y zp ZP_WORD:24 67.33333333333333
(signed word) spline_8segB::i_y#2 i_y zp ZP_WORD:24 27.727272727272727
(signed word) spline_8segB::j_x
(signed word) spline_8segB::j_x#0 j_x zp ZP_WORD:48 5.722222222222221
(signed word) spline_8segB::j_x#0 j_x zp ZP_WORD:44 5.722222222222221
(signed word) spline_8segB::j_y
(signed word) spline_8segB::j_y#0 j_y zp ZP_WORD:50 6.0588235294117645
(signed word) spline_8segB::j_y#0 j_y zp ZP_WORD:46 6.0588235294117645
(byte) spline_8segB::n
(byte) spline_8segB::n#1 reg byte y 151.5
(byte) spline_8segB::n#2 reg byte y 25.25
@ -376,11 +366,11 @@
(signed word) spline_8segB::p_y#2 p_y zp ZP_WORD:5 33.888888888888886
zp ZP_BYTE:2 [ main::i#10 main::i#1 ]
zp ZP_WORD:3 [ main::current_x#4 main::current_x#9 bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#0 bitmap_line::x1#1 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 bitmap_plot::x#4 bitmap_plot::x#3 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 spline_8segB::p0_x#0 bitmap_plot_spline_8seg::current_x#2 bitmap_plot_spline_8seg::current_x#0 bitmap_plot_spline_8seg::current_x#4 spline_8segB::p_x#2 spline_8segB::p_x#0 spline_8segB::p_x#1 spline_8segB::$18 spline_8segB::$19 ]
zp ZP_WORD:5 [ main::current_y#4 main::current_y#9 bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#0 bitmap_line::y1#1 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 spline_8segB::p0_y#0 bitmap_plot_spline_8seg::current_y#2 bitmap_plot_spline_8seg::current_y#0 bitmap_plot_spline_8seg::current_y#4 spline_8segB::p_y#2 spline_8segB::p_y#0 spline_8segB::p_y#1 spline_8segB::$20 spline_8segB::$21 ]
zp ZP_WORD:3 [ main::current_x#4 main::current_x#9 bitmap_line::x#7 bitmap_line::x#6 bitmap_line::x#15 bitmap_line::x#13 bitmap_line::x#0 bitmap_line::x1#1 bitmap_line::x1#0 bitmap_line::x#12 bitmap_line::x#1 bitmap_plot::x#4 bitmap_plot::x#3 bitmap_plot::x#2 bitmap_plot::x#0 bitmap_plot::x#1 spline_8segB::p0_x#0 bitmap_plot_spline_8seg::current_x#2 bitmap_plot_spline_8seg::current_x#0 bitmap_plot_spline_8seg::current_x#1 spline_8segB::p_x#2 spline_8segB::p_x#0 spline_8segB::p_x#1 spline_8segB::$18 spline_8segB::$19 ]
zp ZP_WORD:5 [ main::current_y#4 main::current_y#9 bitmap_line::y#15 bitmap_line::y#7 bitmap_line::y#13 bitmap_line::y#4 bitmap_line::y#0 bitmap_line::y1#1 bitmap_line::y1#0 bitmap_line::y#1 bitmap_line::y#2 spline_8segB::p0_y#0 bitmap_plot_spline_8seg::current_y#2 bitmap_plot_spline_8seg::current_y#0 bitmap_plot_spline_8seg::current_y#1 spline_8segB::p_y#2 spline_8segB::p_y#0 spline_8segB::p_y#1 spline_8segB::$20 spline_8segB::$21 ]
zp ZP_BYTE:7 [ bitmap_plot_spline_8seg::n#2 bitmap_plot_spline_8seg::n#1 ]
zp ZP_WORD:8 [ bitmap_line::x2#10 bitmap_line::x2#1 bitmap_line::x2#0 ]
zp ZP_WORD:10 [ bitmap_line::y2#11 bitmap_line::y2#1 bitmap_line::y2#0 ]
zp ZP_WORD:8 [ bitmap_line::x2#10 bitmap_line::x2#13 bitmap_line::x2#0 ]
zp ZP_WORD:10 [ bitmap_line::y2#11 bitmap_line::y2#13 bitmap_line::y2#0 ]
zp ZP_WORD:12 [ bitmap_line::e#3 bitmap_line::e#0 bitmap_line::e#6 bitmap_line::e#1 bitmap_line::e#2 ]
zp ZP_WORD:14 [ bitmap_line::e1#3 bitmap_line::e1#6 bitmap_line::e1#0 bitmap_line::e1#2 bitmap_line::e1#1 ]
reg byte x [ bitmap_plot::y#4 bitmap_plot::y#3 bitmap_plot::y#2 bitmap_plot::y#0 bitmap_plot::y#1 ]
@ -402,24 +392,23 @@ reg byte y [ main::$44 ]
reg byte x [ main::segment_type#0 ]
zp ZP_WORD:32 [ main::current_x#8 spline_8segB::p2_x#0 ]
zp ZP_WORD:34 [ main::current_y#8 spline_8segB::p2_y#0 ]
reg byte x [ bitmap_plot_spline_8seg::$7 ]
zp ZP_WORD:36 [ bitmap_plot_spline_8seg::to_x#0 ]
zp ZP_WORD:38 [ bitmap_plot_spline_8seg::to_y#0 ]
zp ZP_WORD:40 [ bitmap_line::dx#0 ]
zp ZP_WORD:42 [ bitmap_line::sx#0 ]
zp ZP_WORD:44 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 ]
zp ZP_WORD:46 [ bitmap_plot::$1 ]
reg byte x [ bitmap_plot_spline_8seg::$8 ]
reg byte x [ bitmap_plot_spline_8seg::$9 ]
zp ZP_WORD:36 [ bitmap_line::dx#0 ]
zp ZP_WORD:38 [ bitmap_line::sx#0 ]
zp ZP_WORD:40 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 ]
zp ZP_WORD:42 [ bitmap_plot::$1 ]
reg byte a [ bitmap_plot::$2 ]
reg byte a [ sgn_u16::$0 ]
reg byte a [ sgn_u16::$1 ]
reg byte a [ abs_u16::$0 ]
reg byte a [ abs_u16::$1 ]
zp ZP_WORD:48 [ spline_8segB::$0 spline_8segB::$1 spline_8segB::a_x#0 spline_8segB::j_x#0 ]
zp ZP_WORD:50 [ spline_8segB::$3 spline_8segB::$4 spline_8segB::a_y#0 spline_8segB::j_y#0 ]
zp ZP_WORD:52 [ spline_8segB::$22 spline_8segB::$23 ]
zp ZP_WORD:54 [ spline_8segB::$24 spline_8segB::$25 ]
zp ZP_WORD:44 [ spline_8segB::$0 spline_8segB::$1 spline_8segB::a_x#0 spline_8segB::j_x#0 ]
zp ZP_WORD:46 [ spline_8segB::$3 spline_8segB::$4 spline_8segB::a_y#0 spline_8segB::j_y#0 ]
zp ZP_WORD:48 [ spline_8segB::$22 spline_8segB::$23 ]
zp ZP_WORD:50 [ spline_8segB::$24 spline_8segB::$25 ]
reg byte x [ spline_8segB::$31 ]
zp ZP_BYTE:56 [ bitmap_init::$7 ]
zp ZP_BYTE:52 [ bitmap_init::$7 ]
reg byte a [ bitmap_init::$4 ]
reg byte a [ bitmap_init::$5 ]
reg byte a [ bitmap_init::$6 ]