Skip to content

Commit 429ba3a

Browse files
committed
optimizations
1 parent 08a5b91 commit 429ba3a

File tree

6 files changed

+46
-14
lines changed

6 files changed

+46
-14
lines changed

origin/include/cmd_listing.inc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11

2+
function DATA(i: integer): Boolean;
3+
begin
4+
Result := (pos('-DATAORIGIN', listing[i]) > 0);
5+
end;
6+
7+
28
function TAY(i: integer): Boolean;
39
begin
410
Result := listing[i] = #9'tay'

origin/include/opt6502/opt_LDY.inc

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ begin
6767
end;
6868

6969

70-
if ldy_im(i) and // ldy # ; 0
70+
if ldy_im(i) and (DATA(i) = false) and // ldy # ; 0
7171
iny(i+1) then // iny ; 1
72-
begin
72+
begin
7373
p := GetBYTE(i) + 1;
7474

7575
if p < 256 then begin
@@ -79,7 +79,17 @@ begin
7979
exit(false);
8080
end;
8181

82-
end;
82+
end;
83+
84+
85+
if ldy_im(i) and DATA(i) and // ldy #CONTEXT.STATE-DATAORIGIN ; 0
86+
iny(i+1) then // iny ; 1
87+
begin
88+
listing[i] := listing[i] + '+1';
89+
listing[i+1] := '';
90+
91+
exit(false);
92+
end;
8393

8494

8595
if iny(i) and // iny ; 0
@@ -341,10 +351,10 @@ begin
341351
end;
342352

343353

344-
if ldy_im(i+5) and // ldy # ; 5
354+
if ldy_im(i+5) and (DATA(i+5) = false) and // ldy # ; 5
345355

346356
lda_bp2(i) and // lda :bp2 ; 0
347-
add_im(i+1) and (pos('-DATAORIGIN', listing[i+1]) > 0) and // add #CONTEXT.STATE-DATAORIGIN ; 1
357+
add_im(i+1) and DATA(i+1) and // add #CONTEXT.STATE-DATAORIGIN ; 1
348358
sta_bp2(i+2) and // sta :bp2 ; 2
349359
scc(i+3) and // scc ; 3
350360
inc_bp2_1(i+4) then // inc :bp2+1 ; 4
@@ -369,7 +379,7 @@ begin
369379
if ldy_im(i+12) and // ldy # ; 12
370380

371381
lda_bp2(i) and // lda :bp2 ; 0
372-
add_im(i+1) and (pos('-DATAORIGIN', listing[i+1]) > 0) and // add #CONTEXT.STATE-DATAORIGIN ; 1
382+
add_im(i+1) and DATA(i+1) and // add #CONTEXT.STATE-DATAORIGIN ; 1
373383
sta_bp2(i+2) and // sta :bp2 ; 2
374384
lda_bp2_1(i+3) and // lda :bp2+1 ; 3
375385
adc_im_0(i+4) and // adc #$00 ; 4

origin/include/opt6502/opt_STACK_ADD.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ begin
228228

229229
mwy_bp2(i) and // mwy LEVEL :bp2 ; 0
230230
lda_bp2(i+1) and // lda :bp2 ; 1
231-
add_im(i+2) and (pos('-DATAORIGIN', listing[i+2]) > 0) and // add #CONTEXT.STATE-DATAORIGIN ; 2
231+
add_im(i+2) and DATA(i+2) and // add #CONTEXT.STATE-DATAORIGIN ; 2
232232
sta_bp2(i+3) and // sta :bp2 ; 3
233233
lda_bp2_1(i+4) and // lda :bp2+1 ; 4
234234
adc_im_0(i+5) and // adc #$00 ; 5

src/include/cmd_listing.inc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11

2+
function DATA(i: integer): Boolean;
3+
begin
4+
Result := (pos('-DATAORIGIN', listing[i]) > 0);
5+
end;
6+
7+
28
function TAY(i: integer): Boolean;
39
begin
410
Result := listing[i] = #9'tay'

src/include/opt6502/opt_LDY.inc

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ begin
6767
end;
6868

6969

70-
if ldy_im(i) and // ldy # ; 0
70+
if ldy_im(i) and (DATA(i) = false) and // ldy # ; 0
7171
iny(i+1) then // iny ; 1
72-
begin
72+
begin
7373
p := GetBYTE(i) + 1;
7474

7575
if p < 256 then begin
@@ -79,7 +79,17 @@ begin
7979
exit(false);
8080
end;
8181

82-
end;
82+
end;
83+
84+
85+
if ldy_im(i) and DATA(i) and // ldy #CONTEXT.STATE-DATAORIGIN ; 0
86+
iny(i+1) then // iny ; 1
87+
begin
88+
listing[i] := listing[i] + '+1';
89+
listing[i+1] := '';
90+
91+
exit(false);
92+
end;
8393

8494

8595
if iny(i) and // iny ; 0
@@ -341,10 +351,10 @@ begin
341351
end;
342352

343353

344-
if ldy_im(i+5) and // ldy # ; 5
354+
if ldy_im(i+5) and (DATA(i+5) = false) and // ldy # ; 5
345355

346356
lda_bp2(i) and // lda :bp2 ; 0
347-
add_im(i+1) and (pos('-DATAORIGIN', listing[i+1]) > 0) and // add #CONTEXT.STATE-DATAORIGIN ; 1
357+
add_im(i+1) and DATA(i+1) and // add #CONTEXT.STATE-DATAORIGIN ; 1
348358
sta_bp2(i+2) and // sta :bp2 ; 2
349359
scc(i+3) and // scc ; 3
350360
inc_bp2_1(i+4) then // inc :bp2+1 ; 4
@@ -369,7 +379,7 @@ begin
369379
if ldy_im(i+12) and // ldy # ; 12
370380

371381
lda_bp2(i) and // lda :bp2 ; 0
372-
add_im(i+1) and (pos('-DATAORIGIN', listing[i+1]) > 0) and // add #CONTEXT.STATE-DATAORIGIN ; 1
382+
add_im(i+1) and DATA(i+1) and // add #CONTEXT.STATE-DATAORIGIN ; 1
373383
sta_bp2(i+2) and // sta :bp2 ; 2
374384
lda_bp2_1(i+3) and // lda :bp2+1 ; 3
375385
adc_im_0(i+4) and // adc #$00 ; 4

src/include/opt6502/opt_STACK_ADD.inc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ begin
228228

229229
mwy_bp2(i) and // mwy LEVEL :bp2 ; 0
230230
lda_bp2(i+1) and // lda :bp2 ; 1
231-
add_im(i+2) and (pos('-DATAORIGIN', listing[i+2]) > 0) and // add #CONTEXT.STATE-DATAORIGIN ; 2
231+
add_im(i+2) and DATA(i+2) and // add #CONTEXT.STATE-DATAORIGIN ; 2
232232
sta_bp2(i+3) and // sta :bp2 ; 3
233233
lda_bp2_1(i+4) and // lda :bp2+1 ; 4
234234
adc_im_0(i+5) and // adc #$00 ; 5

0 commit comments

Comments
 (0)