1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-23 08:32:39 +00:00

Fixed fragment.

This commit is contained in:
jespergravgaard 2019-06-12 21:53:10 +02:00
parent a3c5bb06da
commit d78fa15fe1
6 changed files with 62 additions and 42 deletions

View File

@ -1,3 +1,5 @@
pha
lda ({z1}),y
tay
lda {c1},y
pla
sta {c1},y

View File

@ -131,7 +131,8 @@ public class TestFragments {
"pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuz1_band_pbuz3_derefidx_vbuc2",
"vbuxx=pbuz1_derefidx_vbuc1_band_pbuz2_derefidx_vbuc2",
"_deref_pbuz1=pbuz2_derefidx_vbuc1_band_pbuz3_derefidx_vbuc2",
"pbuz1_derefidx_vbuaa=pbuz2_derefidx_vbuc1_band_pbuz3_derefidx_vbuc2");
"pbuz1_derefidx_vbuaa=pbuz2_derefidx_vbuc1_band_pbuz3_derefidx_vbuc2",
"pbuc1_derefidx_pbuz1_derefidx_vbuc2=pbuz1_derefidx_vbuc3");
testFragments("fragments-complex", signaturesComplex);
}

View File

@ -37,7 +37,7 @@ public class TestPrograms {
@Test
public void testBlackhole() throws IOException, URISyntaxException {
compileAndCompare("complex/blackhole/blackhole");
compileAndCompare("complex/blackhole/blackhole", log());
}
// TODO: Optimize unused IRQ's away (and other unused funtions that reference each other circularly)

View File

@ -710,9 +710,11 @@ processChars: {
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_PTR
lda (processing),y
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_ID
pha
lda (processing),y
tay
lda SCREEN+SPRITE_PTRS,y
pla
sta SCREEN+SPRITE_PTRS,y
// Set status
lda #STATUS_PROCESSING
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_STATUS

View File

@ -4604,9 +4604,11 @@ processChars: {
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_PTR
lda (processing),y
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_ID
pha
lda (processing),y
tay
lda SCREEN+SPRITE_PTRS,y
pla
sta SCREEN+SPRITE_PTRS,y
//SEG325 [181] *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS) ← (const byte) STATUS_PROCESSING#0 -- pbuz1_derefidx_vbuc1=vbuc2
// Set status
lda #STATUS_PROCESSING
@ -5156,65 +5158,65 @@ Uplift Scope [ProcessingSprite]
Uplift Scope [setupRasterIrq]
Uplift Scope []
Uplifting [getCharToProcess] best 254157 combination zp ZP_WORD:22 [ getCharToProcess::return_dist#1 getCharToProcess::return_dist#5 getCharToProcess::return_dist#6 getCharToProcess::dist#0 ] zp ZP_WORD:18 [ getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 ] zp ZP_BYTE:21 [ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ] reg byte a [ getCharToProcess::$14 ] zp ZP_BYTE:20 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ] zp ZP_BYTE:17 [ getCharToProcess::x#2 getCharToProcess::x#1 ] zp ZP_BYTE:77 [ getCharToProcess::$13 ] zp ZP_BYTE:16 [ getCharToProcess::y#7 getCharToProcess::y#1 ] zp ZP_WORD:14 [ getCharToProcess::screen_line#4 getCharToProcess::screen_line#1 ] zp ZP_BYTE:40 [ getCharToProcess::return_x#0 ] zp ZP_BYTE:41 [ getCharToProcess::return_y#0 ] zp ZP_WORD:42 [ getCharToProcess::return_dist#0 ] zp ZP_WORD:81 [ getCharToProcess::$15 ] zp ZP_WORD:83 [ getCharToProcess::$16 ] zp ZP_WORD:85 [ getCharToProcess::$10 ] zp ZP_WORD:87 [ getCharToProcess::$11 ] zp ZP_WORD:79 [ getCharToProcess::$9 ]
Uplifting [getCharToProcess] best 254232 combination zp ZP_WORD:22 [ getCharToProcess::return_dist#1 getCharToProcess::return_dist#5 getCharToProcess::return_dist#6 getCharToProcess::dist#0 ] zp ZP_WORD:18 [ getCharToProcess::closest_dist#2 getCharToProcess::closest_dist#8 getCharToProcess::closest_dist#10 getCharToProcess::closest_dist#12 ] zp ZP_BYTE:21 [ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ] reg byte a [ getCharToProcess::$14 ] zp ZP_BYTE:20 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ] zp ZP_BYTE:17 [ getCharToProcess::x#2 getCharToProcess::x#1 ] zp ZP_BYTE:77 [ getCharToProcess::$13 ] zp ZP_BYTE:16 [ getCharToProcess::y#7 getCharToProcess::y#1 ] zp ZP_WORD:14 [ getCharToProcess::screen_line#4 getCharToProcess::screen_line#1 ] zp ZP_BYTE:40 [ getCharToProcess::return_x#0 ] zp ZP_BYTE:41 [ getCharToProcess::return_y#0 ] zp ZP_WORD:42 [ getCharToProcess::return_dist#0 ] zp ZP_WORD:81 [ getCharToProcess::$15 ] zp ZP_WORD:83 [ getCharToProcess::$16 ] zp ZP_WORD:85 [ getCharToProcess::$10 ] zp ZP_WORD:87 [ getCharToProcess::$11 ] zp ZP_WORD:79 [ getCharToProcess::$9 ]
Limited combination testing to 100 combinations of 8748 possible.
Uplifting [startProcessing] best 248353 combination zp ZP_BYTE:10 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ] reg byte a [ startProcessing::$21 ] reg byte x [ startProcessing::freeIdx#6 startProcessing::freeIdx#7 ] zp ZP_WORD:11 [ startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 ] reg byte x [ startProcessing::i1#2 startProcessing::i1#1 ] zp ZP_WORD:51 [ startProcessing::$0 ] zp ZP_WORD:53 [ startProcessing::$1 ] zp ZP_WORD:55 [ startProcessing::$3 ] zp ZP_WORD:57 [ startProcessing::$4 ] reg byte a [ startProcessing::$6 ] zp ZP_WORD:66 [ startProcessing::$30 ] zp ZP_WORD:68 [ startProcessing::$31 ] zp ZP_WORD:70 [ startProcessing::$12 ] zp ZP_WORD:72 [ startProcessing::$13 ] zp ZP_WORD:64 [ startProcessing::$11 ] zp ZP_BYTE:76 [ startProcessing::$22 ] zp ZP_WORD:74 [ startProcessing::screenPtr#0 ] zp ZP_BYTE:49 [ startProcessing::center_y#0 ] zp ZP_BYTE:48 [ startProcessing::center_x#0 ] zp ZP_BYTE:62 [ startProcessing::spriteY#0 ] zp ZP_WORD:59 [ startProcessing::spriteX#0 ] zp ZP_BYTE:63 [ startProcessing::spritePtr#0 ]
Uplifting [startProcessing] best 248428 combination zp ZP_BYTE:10 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ] reg byte a [ startProcessing::$21 ] reg byte x [ startProcessing::freeIdx#6 startProcessing::freeIdx#7 ] zp ZP_WORD:11 [ startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 ] reg byte x [ startProcessing::i1#2 startProcessing::i1#1 ] zp ZP_WORD:51 [ startProcessing::$0 ] zp ZP_WORD:53 [ startProcessing::$1 ] zp ZP_WORD:55 [ startProcessing::$3 ] zp ZP_WORD:57 [ startProcessing::$4 ] reg byte a [ startProcessing::$6 ] zp ZP_WORD:66 [ startProcessing::$30 ] zp ZP_WORD:68 [ startProcessing::$31 ] zp ZP_WORD:70 [ startProcessing::$12 ] zp ZP_WORD:72 [ startProcessing::$13 ] zp ZP_WORD:64 [ startProcessing::$11 ] zp ZP_BYTE:76 [ startProcessing::$22 ] zp ZP_WORD:74 [ startProcessing::screenPtr#0 ] zp ZP_BYTE:49 [ startProcessing::center_y#0 ] zp ZP_BYTE:48 [ startProcessing::center_x#0 ] zp ZP_BYTE:62 [ startProcessing::spriteY#0 ] zp ZP_WORD:59 [ startProcessing::spriteX#0 ] zp ZP_BYTE:63 [ startProcessing::spritePtr#0 ]
Limited combination testing to 100 combinations of 20736 possible.
Uplifting [mul8u] best 247327 combination zp ZP_WORD:31 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:33 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#2 mul8u::a#1 mul8u::a#0 ] reg byte a [ mul8u::$1 ] reg byte a [ mul8u::b#1 ] reg byte a [ mul8u::b#0 ] zp ZP_WORD:89 [ mul8u::return#2 ] zp ZP_WORD:94 [ mul8u::return#3 ]
Uplifting [mul8u] best 247402 combination zp ZP_WORD:31 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp ZP_WORD:33 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#2 mul8u::a#1 mul8u::a#0 ] reg byte a [ mul8u::$1 ] reg byte a [ mul8u::b#1 ] reg byte a [ mul8u::b#0 ] zp ZP_WORD:89 [ mul8u::return#2 ] zp ZP_WORD:94 [ mul8u::return#3 ]
Limited combination testing to 100 combinations of 192 possible.
Uplifting [initSquareTables] best 247167 combination reg byte a [ initSquareTables::x_dist#0 initSquareTables::$4 initSquareTables::$2 ] reg byte a [ initSquareTables::y_dist#0 initSquareTables::$12 initSquareTables::$10 ] zp ZP_BYTE:24 [ initSquareTables::x#2 initSquareTables::x#1 ] zp ZP_BYTE:26 [ initSquareTables::y#2 initSquareTables::y#1 ] zp ZP_BYTE:93 [ initSquareTables::$16 ] zp ZP_BYTE:98 [ initSquareTables::$17 ] zp ZP_WORD:91 [ initSquareTables::$6 ] zp ZP_WORD:96 [ initSquareTables::$14 ]
Uplifting [initSquareTables] best 247242 combination reg byte a [ initSquareTables::x_dist#0 initSquareTables::$4 initSquareTables::$2 ] reg byte a [ initSquareTables::y_dist#0 initSquareTables::$12 initSquareTables::$10 ] zp ZP_BYTE:24 [ initSquareTables::x#2 initSquareTables::x#1 ] zp ZP_BYTE:26 [ initSquareTables::y#2 initSquareTables::y#1 ] zp ZP_BYTE:93 [ initSquareTables::$16 ] zp ZP_BYTE:98 [ initSquareTables::$17 ] zp ZP_WORD:91 [ initSquareTables::$6 ] zp ZP_WORD:96 [ initSquareTables::$14 ]
Limited combination testing to 100 combinations of 2304 possible.
Uplifting [main] best 246787 combination zp ZP_WORD:3 [ main::sp#2 main::sp#1 ] zp ZP_WORD:5 [ main::src#2 main::src#1 ] zp ZP_WORD:7 [ main::dst#2 main::dst#1 ] zp ZP_WORD:46 [ main::center_dist#0 ] reg byte y [ main::i#2 main::i#1 ] reg byte x [ main::$17 ] reg byte y [ main::center_x#0 ] reg byte x [ main::center_y#0 ]
Uplifting [processChars] best 246547 combination reg byte a [ processChars::$18 ] reg byte a [ processChars::$9 ] reg byte a [ processChars::$10 ] reg byte a [ processChars::$12 ] zp ZP_BYTE:108 [ processChars::$16 ] zp ZP_BYTE:36 [ processChars::i#10 processChars::i#1 ] zp ZP_BYTE:106 [ processChars::$13 ] zp ZP_BYTE:103 [ processChars::bitmask#0 ] zp ZP_WORD:101 [ processChars::processing#0 ]
Uplifting [main] best 246862 combination zp ZP_WORD:3 [ main::sp#2 main::sp#1 ] zp ZP_WORD:5 [ main::src#2 main::src#1 ] zp ZP_WORD:7 [ main::dst#2 main::dst#1 ] zp ZP_WORD:46 [ main::center_dist#0 ] reg byte y [ main::i#2 main::i#1 ] reg byte x [ main::$17 ] reg byte y [ main::center_x#0 ] reg byte x [ main::center_y#0 ]
Uplifting [processChars] best 246622 combination reg byte a [ processChars::$18 ] reg byte a [ processChars::$9 ] reg byte a [ processChars::$10 ] reg byte a [ processChars::$12 ] zp ZP_BYTE:108 [ processChars::$16 ] zp ZP_BYTE:36 [ processChars::i#10 processChars::i#1 ] zp ZP_BYTE:106 [ processChars::$13 ] zp ZP_BYTE:103 [ processChars::bitmask#0 ] zp ZP_WORD:101 [ processChars::processing#0 ]
Limited combination testing to 100 combinations of 2048 possible.
Uplifting [irqTop] best 246367 combination reg byte x [ irqTop::i#2 irqTop::i#1 ] reg byte x [ irqTop::i1#2 irqTop::i1#1 ]
Uplifting [irqBottom] best 246277 combination reg byte x [ irqBottom::i#2 irqBottom::i#1 ]
Uplifting [ProcessingChar] best 246277 combination
Uplifting [ProcessingSprite] best 246277 combination
Uplifting [setupRasterIrq] best 246277 combination
Uplifting [] best 246277 combination
Uplifting [irqTop] best 246442 combination reg byte x [ irqTop::i#2 irqTop::i#1 ] reg byte x [ irqTop::i1#2 irqTop::i1#1 ]
Uplifting [irqBottom] best 246352 combination reg byte x [ irqBottom::i#2 irqBottom::i#1 ]
Uplifting [ProcessingChar] best 246352 combination
Uplifting [ProcessingSprite] best 246352 combination
Uplifting [setupRasterIrq] best 246352 combination
Uplifting [] best 246352 combination
Attempting to uplift remaining variables inzp ZP_BYTE:10 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ]
Uplifting [startProcessing] best 246277 combination zp ZP_BYTE:10 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ]
Uplifting [startProcessing] best 246352 combination zp ZP_BYTE:10 [ startProcessing::freeIdx#2 startProcessing::freeIdx#8 startProcessing::i#2 startProcessing::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:21 [ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ]
Uplifting [getCharToProcess] best 246277 combination zp ZP_BYTE:21 [ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ]
Uplifting [getCharToProcess] best 246352 combination zp ZP_BYTE:21 [ getCharToProcess::closest_y#7 getCharToProcess::closest_y#9 getCharToProcess::return_y#1 getCharToProcess::return_y#7 ]
Attempting to uplift remaining variables inzp ZP_BYTE:20 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ]
Uplifting [getCharToProcess] best 246277 combination zp ZP_BYTE:20 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ]
Uplifting [getCharToProcess] best 246352 combination zp ZP_BYTE:20 [ getCharToProcess::closest_x#7 getCharToProcess::closest_x#9 getCharToProcess::return_x#1 getCharToProcess::return_x#7 ]
Attempting to uplift remaining variables inzp ZP_BYTE:17 [ getCharToProcess::x#2 getCharToProcess::x#1 ]
Uplifting [getCharToProcess] best 246277 combination zp ZP_BYTE:17 [ getCharToProcess::x#2 getCharToProcess::x#1 ]
Uplifting [getCharToProcess] best 246352 combination zp ZP_BYTE:17 [ getCharToProcess::x#2 getCharToProcess::x#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:77 [ getCharToProcess::$13 ]
Uplifting [getCharToProcess] best 242277 combination reg byte x [ getCharToProcess::$13 ]
Uplifting [getCharToProcess] best 242352 combination reg byte x [ getCharToProcess::$13 ]
Attempting to uplift remaining variables inzp ZP_BYTE:16 [ getCharToProcess::y#7 getCharToProcess::y#1 ]
Uplifting [getCharToProcess] best 242277 combination zp ZP_BYTE:16 [ getCharToProcess::y#7 getCharToProcess::y#1 ]
Uplifting [getCharToProcess] best 242352 combination zp ZP_BYTE:16 [ getCharToProcess::y#7 getCharToProcess::y#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:24 [ initSquareTables::x#2 initSquareTables::x#1 ]
Uplifting [initSquareTables] best 242277 combination zp ZP_BYTE:24 [ initSquareTables::x#2 initSquareTables::x#1 ]
Uplifting [initSquareTables] best 242352 combination zp ZP_BYTE:24 [ initSquareTables::x#2 initSquareTables::x#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:26 [ initSquareTables::y#2 initSquareTables::y#1 ]
Uplifting [initSquareTables] best 242277 combination zp ZP_BYTE:26 [ initSquareTables::y#2 initSquareTables::y#1 ]
Uplifting [initSquareTables] best 242352 combination zp ZP_BYTE:26 [ initSquareTables::y#2 initSquareTables::y#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:93 [ initSquareTables::$16 ]
Uplifting [initSquareTables] best 242237 combination reg byte a [ initSquareTables::$16 ]
Uplifting [initSquareTables] best 242312 combination reg byte a [ initSquareTables::$16 ]
Attempting to uplift remaining variables inzp ZP_BYTE:98 [ initSquareTables::$17 ]
Uplifting [initSquareTables] best 242197 combination reg byte a [ initSquareTables::$17 ]
Uplifting [initSquareTables] best 242272 combination reg byte a [ initSquareTables::$17 ]
Attempting to uplift remaining variables inzp ZP_BYTE:108 [ processChars::$16 ]
Uplifting [processChars] best 242137 combination reg byte a [ processChars::$16 ]
Uplifting [processChars] best 242212 combination reg byte a [ processChars::$16 ]
Attempting to uplift remaining variables inzp ZP_BYTE:36 [ processChars::i#10 processChars::i#1 ]
Uplifting [processChars] best 242137 combination zp ZP_BYTE:36 [ processChars::i#10 processChars::i#1 ]
Uplifting [processChars] best 242212 combination zp ZP_BYTE:36 [ processChars::i#10 processChars::i#1 ]
Attempting to uplift remaining variables inzp ZP_BYTE:106 [ processChars::$13 ]
Uplifting [processChars] best 242067 combination reg byte x [ processChars::$13 ]
Uplifting [processChars] best 242142 combination reg byte x [ processChars::$13 ]
Attempting to uplift remaining variables inzp ZP_BYTE:40 [ getCharToProcess::return_x#0 ]
Uplifting [getCharToProcess] best 242007 combination reg byte y [ getCharToProcess::return_x#0 ]
Uplifting [getCharToProcess] best 242082 combination reg byte y [ getCharToProcess::return_x#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:41 [ getCharToProcess::return_y#0 ]
Uplifting [getCharToProcess] best 241947 combination reg byte x [ getCharToProcess::return_y#0 ]
Uplifting [getCharToProcess] best 242022 combination reg byte x [ getCharToProcess::return_y#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:103 [ processChars::bitmask#0 ]
Uplifting [processChars] best 241947 combination zp ZP_BYTE:103 [ processChars::bitmask#0 ]
Uplifting [processChars] best 242022 combination zp ZP_BYTE:103 [ processChars::bitmask#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:76 [ startProcessing::$22 ]
Uplifting [startProcessing] best 241928 combination reg byte x [ startProcessing::$22 ]
Uplifting [startProcessing] best 242003 combination reg byte x [ startProcessing::$22 ]
Attempting to uplift remaining variables inzp ZP_BYTE:49 [ startProcessing::center_y#0 ]
Uplifting [startProcessing] best 241928 combination zp ZP_BYTE:49 [ startProcessing::center_y#0 ]
Uplifting [startProcessing] best 242003 combination zp ZP_BYTE:49 [ startProcessing::center_y#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:48 [ startProcessing::center_x#0 ]
Uplifting [startProcessing] best 241928 combination zp ZP_BYTE:48 [ startProcessing::center_x#0 ]
Uplifting [startProcessing] best 242003 combination zp ZP_BYTE:48 [ startProcessing::center_x#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:62 [ startProcessing::spriteY#0 ]
Uplifting [startProcessing] best 241926 combination reg byte y [ startProcessing::spriteY#0 ]
Uplifting [startProcessing] best 242001 combination reg byte y [ startProcessing::spriteY#0 ]
Attempting to uplift remaining variables inzp ZP_BYTE:63 [ startProcessing::spritePtr#0 ]
Uplifting [startProcessing] best 241926 combination zp ZP_BYTE:63 [ startProcessing::spritePtr#0 ]
Uplifting [startProcessing] best 242001 combination zp ZP_BYTE:63 [ startProcessing::spritePtr#0 ]
Coalescing zero page register with common assignment [ zp ZP_WORD:11 [ startProcessing::spriteData#2 startProcessing::spriteData#0 startProcessing::spriteData#1 ] ] with [ zp ZP_WORD:53 [ startProcessing::$1 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:22 [ getCharToProcess::return_dist#1 getCharToProcess::return_dist#5 getCharToProcess::return_dist#6 getCharToProcess::dist#0 ] ] with [ zp ZP_WORD:42 [ getCharToProcess::return_dist#0 ] ] - score: 1
Coalescing zero page register with common assignment [ zp ZP_WORD:31 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] ] with [ zp ZP_WORD:89 [ mul8u::return#2 ] ] - score: 1
@ -6439,9 +6441,11 @@ processChars: {
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_PTR
lda (processing),y
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_ID
pha
lda (processing),y
tay
lda SCREEN+SPRITE_PTRS,y
pla
sta SCREEN+SPRITE_PTRS,y
//SEG325 [181] *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS) ← (const byte) STATUS_PROCESSING#0 -- pbuz1_derefidx_vbuc1=vbuc2
// Set status
lda #STATUS_PROCESSING
@ -6835,7 +6839,7 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination
Removing instruction bbegin:
Succesful ASM optimization Pass5UnusedLabelElimination
Fixing long branch [326] bne b2 to beq
Fixing long branch [752] bne b1 to beq
Fixing long branch [754] bne b1 to beq
Fixing long branch [188] bne b3 to beq
Fixing long branch [194] beq b8 to bne
Fixing long branch [374] beq b11 to bne
@ -7243,7 +7247,7 @@ reg byte a [ processChars::$16 ]
FINAL ASSEMBLER
Score: 225871
Score: 225946
//SEG0 File Comments
// Black Hole at the center of the BASIC screen sucking in letters
@ -8282,9 +8286,11 @@ processChars: {
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_PTR
lda (processing),y
ldy #OFFSET_STRUCT_PROCESSINGSPRITE_ID
pha
lda (processing),y
tay
lda SCREEN+SPRITE_PTRS,y
pla
sta SCREEN+SPRITE_PTRS,y
//SEG325 [181] *((byte*)(struct ProcessingSprite*) processChars::processing#0 + (const byte) OFFSET_STRUCT_PROCESSINGSPRITE_STATUS) ← (const byte) STATUS_PROCESSING#0 -- pbuz1_derefidx_vbuc1=vbuc2
// Set status
lda #STATUS_PROCESSING

View File

@ -41,3 +41,12 @@ pbuz1_derefidx_vbuaa=pbuz2_derefidx_vbuc1_band_pbuz3_derefidx_vbuc2 < pbuz1_dere
and ({z3}),y
ldy $ff
sta ({z1}),y
pbuc1_derefidx_pbuz1_derefidx_vbuc2=pbuz1_derefidx_vbuc3 < pbuc1_derefidx_pbuz1_derefidx_vbuc2=pbuz1_derefidx_vbuyy < pbuc1_derefidx_pbuz1_derefidx_vbuc2=vbuaa < pbuc1_derefidx_pbuz1_derefidx_vbuyy=vbuaa - clobber:A Y cycles:29.0
ldy #{c3}
lda ({z1}),y
ldy #{c2}
pha
lda ({z1}),y
tay
pla
sta {c1},y