mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-08-11 02:25:17 +00:00
Improved fragment. Updated test data.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
//KICKC FRAGMENT CACHE 160b015f22
|
//KICKC FRAGMENT CACHE 15c5116a3c
|
||||||
//FRAGMENT vbuz1=vbuc1
|
//FRAGMENT vbuz1=vbuc1
|
||||||
lda #{c1}
|
lda #{c1}
|
||||||
sta {z1}
|
sta {z1}
|
||||||
|
248
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
248
src/main/fragment/cache/fragment-cache-mos6502x.asm
vendored
@@ -1,34 +1,7 @@
|
|||||||
//KICKC FRAGMENT CACHE 160b015f22
|
//KICKC FRAGMENT CACHE 15c5116a3c
|
||||||
//FRAGMENT vbuz1=vbuc1
|
//FRAGMENT vbuz1=vbuc1
|
||||||
lda #{c1}
|
lda #{c1}
|
||||||
sta {z1}
|
sta {z1}
|
||||||
//FRAGMENT pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1
|
|
||||||
ldx {z1}
|
|
||||||
inc {c1},x
|
|
||||||
//FRAGMENT vbuz1=_inc_vbuz1
|
|
||||||
inc {z1}
|
|
||||||
//FRAGMENT pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuaa
|
|
||||||
tax
|
|
||||||
inc {c1},x
|
|
||||||
//FRAGMENT pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx
|
|
||||||
inc {c1},x
|
|
||||||
//FRAGMENT vbuaa=vbuc1
|
|
||||||
lda #{c1}
|
|
||||||
//FRAGMENT vbuaa=_inc_vbuaa
|
|
||||||
clc
|
|
||||||
adc #1
|
|
||||||
//FRAGMENT vbuxx=vbuc1
|
|
||||||
ldx #{c1}
|
|
||||||
//FRAGMENT vbuxx=_inc_vbuxx
|
|
||||||
inx
|
|
||||||
//FRAGMENT vbuyy=vbuc1
|
|
||||||
ldy #{c1}
|
|
||||||
//FRAGMENT pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuyy
|
|
||||||
tya
|
|
||||||
tax
|
|
||||||
inc {c1},x
|
|
||||||
//FRAGMENT vbuyy=_inc_vbuyy
|
|
||||||
iny
|
|
||||||
//FRAGMENT pbuz1=pbuc1
|
//FRAGMENT pbuz1=pbuc1
|
||||||
lda #<{c1}
|
lda #<{c1}
|
||||||
sta {z1}
|
sta {z1}
|
||||||
@@ -70,6 +43,8 @@ lda {z2}
|
|||||||
sta {z1}
|
sta {z1}
|
||||||
lda {z2}+1
|
lda {z2}+1
|
||||||
sta {z1}+1
|
sta {z1}+1
|
||||||
|
//FRAGMENT vbuz1=_inc_vbuz1
|
||||||
|
inc {z1}
|
||||||
//FRAGMENT vbuz1_neq_vbuc1_then_la1
|
//FRAGMENT vbuz1_neq_vbuc1_then_la1
|
||||||
lda #{c1}
|
lda #{c1}
|
||||||
cmp {z1}
|
cmp {z1}
|
||||||
@@ -278,6 +253,12 @@ tay
|
|||||||
txa
|
txa
|
||||||
and #{c1}
|
and #{c1}
|
||||||
tay
|
tay
|
||||||
|
//FRAGMENT vbuaa=vbuc1
|
||||||
|
lda #{c1}
|
||||||
|
//FRAGMENT vbuxx=vbuc1
|
||||||
|
ldx #{c1}
|
||||||
|
//FRAGMENT vbuyy=vbuc1
|
||||||
|
ldy #{c1}
|
||||||
//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx
|
//FRAGMENT vbuaa=pbuc1_derefidx_vbuxx
|
||||||
lda {c1},x
|
lda {c1},x
|
||||||
//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy
|
//FRAGMENT vbuaa=pbuc1_derefidx_vbuyy
|
||||||
@@ -1297,6 +1278,10 @@ ldy {z1}+1
|
|||||||
//FRAGMENT vbuyy=vbuaa_band_vbuc1
|
//FRAGMENT vbuyy=vbuaa_band_vbuc1
|
||||||
and #{c1}
|
and #{c1}
|
||||||
tay
|
tay
|
||||||
|
//FRAGMENT vbuxx=_inc_vbuxx
|
||||||
|
inx
|
||||||
|
//FRAGMENT vbuyy=_inc_vbuyy
|
||||||
|
iny
|
||||||
//FRAGMENT vbuyy_neq_vbuc1_then_la1
|
//FRAGMENT vbuyy_neq_vbuc1_then_la1
|
||||||
cpy #{c1}
|
cpy #{c1}
|
||||||
bne {la1}
|
bne {la1}
|
||||||
@@ -1614,6 +1599,9 @@ sta {c1},x
|
|||||||
//FRAGMENT vbuaa_neq_vbuc1_then_la1
|
//FRAGMENT vbuaa_neq_vbuc1_then_la1
|
||||||
cmp #{c1}
|
cmp #{c1}
|
||||||
bne {la1}
|
bne {la1}
|
||||||
|
//FRAGMENT vbuaa=_inc_vbuaa
|
||||||
|
clc
|
||||||
|
adc #1
|
||||||
//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2
|
//FRAGMENT _deref_pbuc1=_deref_pbuc1_bor_vbuc2
|
||||||
lda #{c2}
|
lda #{c2}
|
||||||
ora {c1}
|
ora {c1}
|
||||||
@@ -8018,6 +8006,9 @@ ldy {z1}
|
|||||||
lda {c1},y
|
lda {c1},y
|
||||||
cmp #{c2}
|
cmp #{c2}
|
||||||
beq {la1}
|
beq {la1}
|
||||||
|
//FRAGMENT pbuc1_derefidx_vbuz1=_inc_pbuc1_derefidx_vbuz1
|
||||||
|
ldx {z1}
|
||||||
|
inc {c1},x
|
||||||
//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuc2_then_la1
|
//FRAGMENT pbuc1_derefidx_vbuaa_eq_vbuc2_then_la1
|
||||||
tay
|
tay
|
||||||
lda {c1},y
|
lda {c1},y
|
||||||
@@ -8031,6 +8022,12 @@ beq {la1}
|
|||||||
lda {c1},y
|
lda {c1},y
|
||||||
cmp #{c2}
|
cmp #{c2}
|
||||||
beq {la1}
|
beq {la1}
|
||||||
|
//FRAGMENT pbuc1_derefidx_vbuxx=_inc_pbuc1_derefidx_vbuxx
|
||||||
|
inc {c1},x
|
||||||
|
//FRAGMENT pbuc1_derefidx_vbuyy=_inc_pbuc1_derefidx_vbuyy
|
||||||
|
tya
|
||||||
|
tax
|
||||||
|
inc {c1},x
|
||||||
//FRAGMENT vduz1=vduc1_plus_vbuz2
|
//FRAGMENT vduz1=vduc1_plus_vbuz2
|
||||||
lda {z2}
|
lda {z2}
|
||||||
clc
|
clc
|
||||||
@@ -13794,6 +13791,9 @@ lda {z1}
|
|||||||
sta {c1}
|
sta {c1}
|
||||||
lda {z1}+1
|
lda {z1}+1
|
||||||
sta {c1}+1
|
sta {c1}+1
|
||||||
|
//FRAGMENT pbuc1_derefidx_vbuaa=_inc_pbuc1_derefidx_vbuaa
|
||||||
|
tax
|
||||||
|
inc {c1},x
|
||||||
//FRAGMENT vbuaa=vbuaa_bor_vbuc1
|
//FRAGMENT vbuaa=vbuaa_bor_vbuc1
|
||||||
ora #{c1}
|
ora #{c1}
|
||||||
//FRAGMENT vbuz1=_deref_pbuz2_rol_1
|
//FRAGMENT vbuz1=_deref_pbuz2_rol_1
|
||||||
@@ -15339,65 +15339,6 @@ sta {m1}
|
|||||||
bcc !+
|
bcc !+
|
||||||
inc {m1}+1
|
inc {m1}+1
|
||||||
!:
|
!:
|
||||||
//FRAGMENT vwsz1=vwsz1_plus_vbsz2
|
|
||||||
lda {z2}
|
|
||||||
sta $fe
|
|
||||||
ora #$7f
|
|
||||||
bmi !+
|
|
||||||
lda #0
|
|
||||||
!:
|
|
||||||
sta $ff
|
|
||||||
clc
|
|
||||||
lda {z1}
|
|
||||||
adc $fe
|
|
||||||
sta {z1}
|
|
||||||
lda {z1}+1
|
|
||||||
adc $ff
|
|
||||||
sta {z1}+1
|
|
||||||
//FRAGMENT vwsz1=vwsz1_plus_vbsaa
|
|
||||||
sta $fe
|
|
||||||
ora #$7f
|
|
||||||
bmi !+
|
|
||||||
lda #0
|
|
||||||
!:
|
|
||||||
sta $ff
|
|
||||||
clc
|
|
||||||
lda {z1}
|
|
||||||
adc $fe
|
|
||||||
sta {z1}
|
|
||||||
lda {z1}+1
|
|
||||||
adc $ff
|
|
||||||
sta {z1}+1
|
|
||||||
//FRAGMENT vwsz1=vwsz1_plus_vbsxx
|
|
||||||
txa
|
|
||||||
sta $fe
|
|
||||||
ora #$7f
|
|
||||||
bmi !+
|
|
||||||
lda #0
|
|
||||||
!:
|
|
||||||
sta $ff
|
|
||||||
clc
|
|
||||||
lda {z1}
|
|
||||||
adc $fe
|
|
||||||
sta {z1}
|
|
||||||
lda {z1}+1
|
|
||||||
adc $ff
|
|
||||||
sta {z1}+1
|
|
||||||
//FRAGMENT vwsz1=vwsz1_plus_vbsyy
|
|
||||||
tya
|
|
||||||
sta $fe
|
|
||||||
ora #$7f
|
|
||||||
bmi !+
|
|
||||||
lda #0
|
|
||||||
!:
|
|
||||||
sta $ff
|
|
||||||
clc
|
|
||||||
lda {z1}
|
|
||||||
adc $fe
|
|
||||||
sta {z1}
|
|
||||||
lda {z1}+1
|
|
||||||
adc $ff
|
|
||||||
sta {z1}+1
|
|
||||||
//FRAGMENT pbuz1=pbuc1_sethi_vbuz2
|
//FRAGMENT pbuz1=pbuc1_sethi_vbuz2
|
||||||
lda {z2}
|
lda {z2}
|
||||||
sta {z1}+1
|
sta {z1}+1
|
||||||
@@ -15591,92 +15532,6 @@ lda ({z1}),y
|
|||||||
sta {z1}+1
|
sta {z1}+1
|
||||||
pla
|
pla
|
||||||
sta {z1}
|
sta {z1}
|
||||||
//FRAGMENT _deref_pbuz1_eq__deref_pbuz2_then_la1
|
|
||||||
ldy #0
|
|
||||||
lda ({z1}),y
|
|
||||||
ldy #0
|
|
||||||
cmp ({z2}),y
|
|
||||||
beq {la1}
|
|
||||||
//FRAGMENT vbsz1_le_0_then_la1
|
|
||||||
lda {z1}
|
|
||||||
cmp #1
|
|
||||||
bmi {la1}
|
|
||||||
//FRAGMENT vwsz1=vwsz1_minus_vbsz2
|
|
||||||
lda {z2}
|
|
||||||
sta $fe
|
|
||||||
ora #$7f
|
|
||||||
bmi !+
|
|
||||||
lda #0
|
|
||||||
!:
|
|
||||||
sta $ff
|
|
||||||
sec
|
|
||||||
lda {z1}
|
|
||||||
sbc $fe
|
|
||||||
sta {z1}
|
|
||||||
lda {z1}+1
|
|
||||||
sbc $ff
|
|
||||||
sta {z1}+1
|
|
||||||
//FRAGMENT vbsaa_le_0_then_la1
|
|
||||||
cmp #1
|
|
||||||
bmi {la1}
|
|
||||||
//FRAGMENT vbsaa_neq_vbsz1_then_la1
|
|
||||||
cmp {z1}
|
|
||||||
bne {la1}
|
|
||||||
//FRAGMENT vwsz1=vwsz1_minus_vbsxx
|
|
||||||
txa
|
|
||||||
sta $fe
|
|
||||||
ora #$7f
|
|
||||||
bmi !+
|
|
||||||
lda #0
|
|
||||||
!:
|
|
||||||
sta $ff
|
|
||||||
sec
|
|
||||||
lda {z1}
|
|
||||||
sbc $fe
|
|
||||||
sta {z1}
|
|
||||||
lda {z1}+1
|
|
||||||
sbc $ff
|
|
||||||
sta {z1}+1
|
|
||||||
//FRAGMENT vwsz1=vwsz1_minus_vbsyy
|
|
||||||
tya
|
|
||||||
sta $fe
|
|
||||||
ora #$7f
|
|
||||||
bmi !+
|
|
||||||
lda #0
|
|
||||||
!:
|
|
||||||
sta $ff
|
|
||||||
sec
|
|
||||||
lda {z1}
|
|
||||||
sbc $fe
|
|
||||||
sta {z1}
|
|
||||||
lda {z1}+1
|
|
||||||
sbc $ff
|
|
||||||
sta {z1}+1
|
|
||||||
//FRAGMENT vbsyy_neq_vbsc1_then_la1
|
|
||||||
cpy #{c1}
|
|
||||||
bne {la1}
|
|
||||||
//FRAGMENT vbsxx_le_0_then_la1
|
|
||||||
cpx #1
|
|
||||||
bmi {la1}
|
|
||||||
//FRAGMENT vbsyy_neq_vbsz1_then_la1
|
|
||||||
cpy {z1}
|
|
||||||
bne {la1}
|
|
||||||
//FRAGMENT vbsyy=_dec_vbsyy
|
|
||||||
dey
|
|
||||||
//FRAGMENT vbsyy_neq_vbsxx_then_la1
|
|
||||||
stx $ff
|
|
||||||
cpy $ff
|
|
||||||
bne {la1}
|
|
||||||
//FRAGMENT vbsyy_le_0_then_la1
|
|
||||||
cpy #1
|
|
||||||
bmi {la1}
|
|
||||||
//FRAGMENT vbsz1_neq_vbsyy_then_la1
|
|
||||||
cpy {z1}
|
|
||||||
bne {la1}
|
|
||||||
//FRAGMENT vbsxx_neq_vbsyy_then_la1
|
|
||||||
stx $ff
|
|
||||||
cpy $ff
|
|
||||||
bne {la1}
|
|
||||||
//FRAGMENT vbuc1_neq_vwuz1_then_la1
|
//FRAGMENT vbuc1_neq_vwuz1_then_la1
|
||||||
NO_SYNTHESIS
|
NO_SYNTHESIS
|
||||||
//FRAGMENT vbsc1_neq_vwuz1_then_la1
|
//FRAGMENT vbsc1_neq_vwuz1_then_la1
|
||||||
@@ -16605,24 +16460,6 @@ sty $ff
|
|||||||
ldy #0
|
ldy #0
|
||||||
lda ($fe),y
|
lda ($fe),y
|
||||||
sta {c1}
|
sta {c1}
|
||||||
//FRAGMENT vbuz1=_hi_pvoz2
|
|
||||||
lda {z2}+1
|
|
||||||
sta {z1}
|
|
||||||
//FRAGMENT vbuz1=_lo_pvoz2
|
|
||||||
lda {z2}
|
|
||||||
sta {z1}
|
|
||||||
//FRAGMENT vbuaa=_hi_pvoz1
|
|
||||||
lda {z1}+1
|
|
||||||
//FRAGMENT vbuxx=_hi_pvoz1
|
|
||||||
ldx {z1}+1
|
|
||||||
//FRAGMENT vbuaa=_lo_pvoz1
|
|
||||||
lda {z1}
|
|
||||||
//FRAGMENT vbuxx=_lo_pvoz1
|
|
||||||
ldx {z1}
|
|
||||||
//FRAGMENT vbuyy=_hi_pvoz1
|
|
||||||
ldy {z1}+1
|
|
||||||
//FRAGMENT vbuyy=_lo_pvoz1
|
|
||||||
ldy {z1}
|
|
||||||
//FRAGMENT _deref_pwsz1=vwsc1
|
//FRAGMENT _deref_pwsz1=vwsc1
|
||||||
ldy #0
|
ldy #0
|
||||||
lda #<{c1}
|
lda #<{c1}
|
||||||
@@ -17098,6 +16935,9 @@ bvc !+
|
|||||||
eor #$80
|
eor #$80
|
||||||
!:
|
!:
|
||||||
bmi {la1}
|
bmi {la1}
|
||||||
|
//FRAGMENT vbsyy_neq_vbsc1_then_la1
|
||||||
|
cpy #{c1}
|
||||||
|
bne {la1}
|
||||||
//FRAGMENT vwsz1=vbsz2_plus_vwsc1
|
//FRAGMENT vwsz1=vbsz2_plus_vwsc1
|
||||||
lda {z2}
|
lda {z2}
|
||||||
tax
|
tax
|
||||||
@@ -17630,32 +17470,6 @@ adc ({z1}),y
|
|||||||
sta {z1}+1
|
sta {z1}+1
|
||||||
pla
|
pla
|
||||||
sta {z1}
|
sta {z1}
|
||||||
//FRAGMENT vwuz1=vwuz2_rol_5
|
|
||||||
lda {z2}
|
|
||||||
asl
|
|
||||||
sta {z1}
|
|
||||||
lda {z2}+1
|
|
||||||
rol
|
|
||||||
sta {z1}+1
|
|
||||||
asl {z1}
|
|
||||||
rol {z1}+1
|
|
||||||
asl {z1}
|
|
||||||
rol {z1}+1
|
|
||||||
asl {z1}
|
|
||||||
rol {z1}+1
|
|
||||||
asl {z1}
|
|
||||||
rol {z1}+1
|
|
||||||
//FRAGMENT vwuz1=vwuz1_rol_5
|
|
||||||
asl {z1}
|
|
||||||
rol {z1}+1
|
|
||||||
asl {z1}
|
|
||||||
rol {z1}+1
|
|
||||||
asl {z1}
|
|
||||||
rol {z1}+1
|
|
||||||
asl {z1}
|
|
||||||
rol {z1}+1
|
|
||||||
asl {z1}
|
|
||||||
rol {z1}+1
|
|
||||||
//FRAGMENT vbuz1=_byte_pwuc1_derefidx_vbuz2
|
//FRAGMENT vbuz1=_byte_pwuc1_derefidx_vbuz2
|
||||||
ldy {z2}
|
ldy {z2}
|
||||||
lda {c1},y
|
lda {c1},y
|
||||||
|
@@ -1,13 +1,11 @@
|
|||||||
sta $fe
|
pha
|
||||||
|
clc
|
||||||
|
adc {m2}
|
||||||
|
sta {m1}
|
||||||
|
pla
|
||||||
ora #$7f
|
ora #$7f
|
||||||
bmi !+
|
bmi !+
|
||||||
lda #0
|
lda #0
|
||||||
!:
|
!:
|
||||||
sta $ff
|
adc {m2}+1
|
||||||
clc
|
|
||||||
lda {m2}
|
|
||||||
adc $fe
|
|
||||||
sta {m1}
|
|
||||||
lda {m2}+1
|
|
||||||
adc $ff
|
|
||||||
sta {m1}+1
|
sta {m1}+1
|
@@ -1,13 +1,11 @@
|
|||||||
sta $fe
|
pha
|
||||||
|
clc
|
||||||
|
adc {m1}
|
||||||
|
sta {m1}
|
||||||
|
pla
|
||||||
ora #$7f
|
ora #$7f
|
||||||
bmi !+
|
bmi !+
|
||||||
lda #0
|
lda #0
|
||||||
!:
|
!:
|
||||||
sta $ff
|
adc {m1}+1
|
||||||
clc
|
|
||||||
lda {m1}
|
|
||||||
adc $fe
|
|
||||||
sta {m1}
|
|
||||||
lda {m1}+1
|
|
||||||
adc $ff
|
|
||||||
sta {m1}+1
|
sta {m1}+1
|
11
src/main/fragment/mos6502-common/vwum1=vwum2_plus_vbsaa.asm
Normal file
11
src/main/fragment/mos6502-common/vwum1=vwum2_plus_vbsaa.asm
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
pha
|
||||||
|
clc
|
||||||
|
adc {m2}
|
||||||
|
sta {m1}
|
||||||
|
pla
|
||||||
|
ora #$7f
|
||||||
|
bmi !+
|
||||||
|
lda #0
|
||||||
|
!:
|
||||||
|
adc {m2}+1
|
||||||
|
sta {m1}+1
|
@@ -409,8 +409,8 @@ readJoy1: {
|
|||||||
jmp __b1
|
jmp __b1
|
||||||
}
|
}
|
||||||
// Transfer a number of bytes from the CPU memory to the PPU memory
|
// Transfer a number of bytes from the CPU memory to the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataTransfer(void* zp($b) ppuData, void* zp($d) cpuData, word zp($1b) size)
|
// ppuDataTransfer(void* zp($b) ppuData, void* zp($d) cpuData, word zp($1b) size)
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
@@ -892,8 +892,8 @@ cscroll: {
|
|||||||
jmp __b1
|
jmp __b1
|
||||||
}
|
}
|
||||||
// Transfer a number of bytes from the PPU memory to the CPU memory
|
// Transfer a number of bytes from the PPU memory to the CPU memory
|
||||||
// - ppuData : Pointer in the PPU memory
|
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
|
// - ppuData : Pointer in the PPU memory
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataFetch(void* zp($1b) ppuData)
|
// ppuDataFetch(void* zp($1b) ppuData)
|
||||||
ppuDataFetch: {
|
ppuDataFetch: {
|
||||||
|
@@ -4779,8 +4779,8 @@ readJoy1: {
|
|||||||
}
|
}
|
||||||
// ppuDataTransfer
|
// ppuDataTransfer
|
||||||
// Transfer a number of bytes from the CPU memory to the PPU memory
|
// Transfer a number of bytes from the CPU memory to the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataTransfer(void* zp(8) ppuData, void* zp($a) cpuData, word zp($c) size)
|
// ppuDataTransfer(void* zp(8) ppuData, void* zp($a) cpuData, word zp($c) size)
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
@@ -5647,8 +5647,8 @@ cscroll: {
|
|||||||
}
|
}
|
||||||
// ppuDataFetch
|
// ppuDataFetch
|
||||||
// Transfer a number of bytes from the PPU memory to the CPU memory
|
// Transfer a number of bytes from the PPU memory to the CPU memory
|
||||||
// - ppuData : Pointer in the PPU memory
|
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
|
// - ppuData : Pointer in the PPU memory
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataFetch(void* zp($5b) ppuData)
|
// ppuDataFetch(void* zp($5b) ppuData)
|
||||||
ppuDataFetch: {
|
ppuDataFetch: {
|
||||||
@@ -6806,8 +6806,8 @@ readJoy1: {
|
|||||||
}
|
}
|
||||||
// ppuDataTransfer
|
// ppuDataTransfer
|
||||||
// Transfer a number of bytes from the CPU memory to the PPU memory
|
// Transfer a number of bytes from the CPU memory to the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataTransfer(void* zp($b) ppuData, void* zp($d) cpuData, word zp($1b) size)
|
// ppuDataTransfer(void* zp($b) ppuData, void* zp($d) cpuData, word zp($1b) size)
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
@@ -7582,8 +7582,8 @@ cscroll: {
|
|||||||
}
|
}
|
||||||
// ppuDataFetch
|
// ppuDataFetch
|
||||||
// Transfer a number of bytes from the PPU memory to the CPU memory
|
// Transfer a number of bytes from the PPU memory to the CPU memory
|
||||||
// - ppuData : Pointer in the PPU memory
|
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
|
// - ppuData : Pointer in the PPU memory
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataFetch(void* zp($1b) ppuData)
|
// ppuDataFetch(void* zp($1b) ppuData)
|
||||||
ppuDataFetch: {
|
ppuDataFetch: {
|
||||||
@@ -9063,8 +9063,8 @@ readJoy1: {
|
|||||||
}
|
}
|
||||||
// ppuDataTransfer
|
// ppuDataTransfer
|
||||||
// Transfer a number of bytes from the CPU memory to the PPU memory
|
// Transfer a number of bytes from the CPU memory to the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataTransfer(void* zp($b) ppuData, void* zp($d) cpuData, word zp($1b) size)
|
// ppuDataTransfer(void* zp($b) ppuData, void* zp($d) cpuData, word zp($1b) size)
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
@@ -9803,8 +9803,8 @@ cscroll: {
|
|||||||
}
|
}
|
||||||
// ppuDataFetch
|
// ppuDataFetch
|
||||||
// Transfer a number of bytes from the PPU memory to the CPU memory
|
// Transfer a number of bytes from the PPU memory to the CPU memory
|
||||||
// - ppuData : Pointer in the PPU memory
|
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
|
// - ppuData : Pointer in the PPU memory
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
// ppuDataFetch(void* zp($1b) ppuData)
|
// ppuDataFetch(void* zp($1b) ppuData)
|
||||||
ppuDataFetch: {
|
ppuDataFetch: {
|
||||||
|
@@ -351,8 +351,8 @@ readJoy1: {
|
|||||||
jmp __b1
|
jmp __b1
|
||||||
}
|
}
|
||||||
// Transfer a number of bytes from the CPU memory to the PPU memory
|
// Transfer a number of bytes from the CPU memory to the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
.const size = $20*SIZEOF_BYTE
|
.const size = $20*SIZEOF_BYTE
|
||||||
|
@@ -2993,8 +2993,8 @@ readJoy1: {
|
|||||||
}
|
}
|
||||||
// ppuDataTransfer
|
// ppuDataTransfer
|
||||||
// Transfer a number of bytes from the CPU memory to the PPU memory
|
// Transfer a number of bytes from the CPU memory to the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
.const size = $20*SIZEOF_BYTE
|
.const size = $20*SIZEOF_BYTE
|
||||||
@@ -4046,8 +4046,8 @@ readJoy1: {
|
|||||||
}
|
}
|
||||||
// ppuDataTransfer
|
// ppuDataTransfer
|
||||||
// Transfer a number of bytes from the CPU memory to the PPU memory
|
// Transfer a number of bytes from the CPU memory to the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
.const size = $20*SIZEOF_BYTE
|
.const size = $20*SIZEOF_BYTE
|
||||||
@@ -5275,8 +5275,8 @@ readJoy1: {
|
|||||||
}
|
}
|
||||||
// ppuDataTransfer
|
// ppuDataTransfer
|
||||||
// Transfer a number of bytes from the CPU memory to the PPU memory
|
// Transfer a number of bytes from the CPU memory to the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
.const size = $20*SIZEOF_BYTE
|
.const size = $20*SIZEOF_BYTE
|
||||||
|
@@ -392,8 +392,8 @@ readJoy1: {
|
|||||||
jmp __b1
|
jmp __b1
|
||||||
}
|
}
|
||||||
// Transfer a number of bytes from the CPU memory to the PPU memory
|
// Transfer a number of bytes from the CPU memory to the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
.const size = $20*SIZEOF_BYTE
|
.const size = $20*SIZEOF_BYTE
|
||||||
|
@@ -2658,8 +2658,8 @@ readJoy1: {
|
|||||||
}
|
}
|
||||||
// ppuDataTransfer
|
// ppuDataTransfer
|
||||||
// Transfer a number of bytes from the CPU memory to the PPU memory
|
// Transfer a number of bytes from the CPU memory to the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
.const size = $20*SIZEOF_BYTE
|
.const size = $20*SIZEOF_BYTE
|
||||||
@@ -3665,8 +3665,8 @@ readJoy1: {
|
|||||||
}
|
}
|
||||||
// ppuDataTransfer
|
// ppuDataTransfer
|
||||||
// Transfer a number of bytes from the CPU memory to the PPU memory
|
// Transfer a number of bytes from the CPU memory to the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
.const size = $20*SIZEOF_BYTE
|
.const size = $20*SIZEOF_BYTE
|
||||||
@@ -4797,8 +4797,8 @@ readJoy1: {
|
|||||||
}
|
}
|
||||||
// ppuDataTransfer
|
// ppuDataTransfer
|
||||||
// Transfer a number of bytes from the CPU memory to the PPU memory
|
// Transfer a number of bytes from the CPU memory to the PPU memory
|
||||||
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
|
||||||
// - ppuData : Pointer in the PPU memory
|
// - ppuData : Pointer in the PPU memory
|
||||||
|
// - cpuData : Pointer to the CPU memory (RAM of ROM)
|
||||||
// - size : The number of bytes to transfer
|
// - size : The number of bytes to transfer
|
||||||
ppuDataTransfer: {
|
ppuDataTransfer: {
|
||||||
.const size = $20*SIZEOF_BYTE
|
.const size = $20*SIZEOF_BYTE
|
||||||
|
@@ -13,18 +13,16 @@ main: {
|
|||||||
__b1:
|
__b1:
|
||||||
// sw += (signed byte)i
|
// sw += (signed byte)i
|
||||||
txa
|
txa
|
||||||
sta.z $fe
|
pha
|
||||||
|
clc
|
||||||
|
adc.z sw
|
||||||
|
sta.z sw
|
||||||
|
pla
|
||||||
ora #$7f
|
ora #$7f
|
||||||
bmi !+
|
bmi !+
|
||||||
lda #0
|
lda #0
|
||||||
!:
|
!:
|
||||||
sta.z $ff
|
adc.z sw+1
|
||||||
clc
|
|
||||||
lda.z sw
|
|
||||||
adc.z $fe
|
|
||||||
sta.z sw
|
|
||||||
lda.z sw+1
|
|
||||||
adc.z $ff
|
|
||||||
sta.z sw+1
|
sta.z sw+1
|
||||||
// screen[i] = sw
|
// screen[i] = sw
|
||||||
txa
|
txa
|
||||||
|
@@ -171,18 +171,16 @@ main: {
|
|||||||
__b1:
|
__b1:
|
||||||
// [2] (signed word) main::sw#1 ← (signed word) main::sw#2 + (signed byte)(byte) main::i#2 -- vwsz1=vwsz1_plus_vbsz2
|
// [2] (signed word) main::sw#1 ← (signed word) main::sw#2 + (signed byte)(byte) main::i#2 -- vwsz1=vwsz1_plus_vbsz2
|
||||||
lda.z i
|
lda.z i
|
||||||
sta.z $fe
|
pha
|
||||||
|
clc
|
||||||
|
adc.z sw
|
||||||
|
sta.z sw
|
||||||
|
pla
|
||||||
ora #$7f
|
ora #$7f
|
||||||
bmi !+
|
bmi !+
|
||||||
lda #0
|
lda #0
|
||||||
!:
|
!:
|
||||||
sta.z $ff
|
adc.z sw+1
|
||||||
clc
|
|
||||||
lda.z sw
|
|
||||||
adc.z $fe
|
|
||||||
sta.z sw
|
|
||||||
lda.z sw+1
|
|
||||||
adc.z $ff
|
|
||||||
sta.z sw+1
|
sta.z sw+1
|
||||||
// [3] (byte~) main::$1 ← (byte) main::i#2 << (byte) 1 -- vbuz1=vbuz2_rol_1
|
// [3] (byte~) main::$1 ← (byte) main::i#2 << (byte) 1 -- vbuz1=vbuz2_rol_1
|
||||||
lda.z i
|
lda.z i
|
||||||
@@ -224,8 +222,8 @@ REGISTER UPLIFT SCOPES
|
|||||||
Uplift Scope [main] 28.6: zp[2]:3 [ main::sw#2 main::sw#1 ] 24.75: zp[1]:2 [ main::i#2 main::i#1 ] 22: zp[1]:5 [ main::$1 ]
|
Uplift Scope [main] 28.6: zp[2]:3 [ main::sw#2 main::sw#1 ] 24.75: zp[1]:2 [ main::i#2 main::i#1 ] 22: zp[1]:5 [ main::$1 ]
|
||||||
Uplift Scope []
|
Uplift Scope []
|
||||||
|
|
||||||
Uplifting [main] best 846 combination zp[2]:3 [ main::sw#2 main::sw#1 ] reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ]
|
Uplifting [main] best 796 combination zp[2]:3 [ main::sw#2 main::sw#1 ] reg byte x [ main::i#2 main::i#1 ] reg byte a [ main::$1 ]
|
||||||
Uplifting [] best 846 combination
|
Uplifting [] best 796 combination
|
||||||
Allocated (was zp[2]:3) zp[2]:2 [ main::sw#2 main::sw#1 ]
|
Allocated (was zp[2]:3) zp[2]:2 [ main::sw#2 main::sw#1 ]
|
||||||
|
|
||||||
ASSEMBLER BEFORE OPTIMIZATION
|
ASSEMBLER BEFORE OPTIMIZATION
|
||||||
@@ -259,18 +257,16 @@ main: {
|
|||||||
__b1:
|
__b1:
|
||||||
// [2] (signed word) main::sw#1 ← (signed word) main::sw#2 + (signed byte)(byte) main::i#2 -- vwsz1=vwsz1_plus_vbsxx
|
// [2] (signed word) main::sw#1 ← (signed word) main::sw#2 + (signed byte)(byte) main::i#2 -- vwsz1=vwsz1_plus_vbsxx
|
||||||
txa
|
txa
|
||||||
sta.z $fe
|
pha
|
||||||
|
clc
|
||||||
|
adc.z sw
|
||||||
|
sta.z sw
|
||||||
|
pla
|
||||||
ora #$7f
|
ora #$7f
|
||||||
bmi !+
|
bmi !+
|
||||||
lda #0
|
lda #0
|
||||||
!:
|
!:
|
||||||
sta.z $ff
|
adc.z sw+1
|
||||||
clc
|
|
||||||
lda.z sw
|
|
||||||
adc.z $fe
|
|
||||||
sta.z sw
|
|
||||||
lda.z sw+1
|
|
||||||
adc.z $ff
|
|
||||||
sta.z sw+1
|
sta.z sw+1
|
||||||
// [3] (byte~) main::$1 ← (byte) main::i#2 << (byte) 1 -- vbuaa=vbuxx_rol_1
|
// [3] (byte~) main::$1 ← (byte) main::i#2 << (byte) 1 -- vbuaa=vbuxx_rol_1
|
||||||
txa
|
txa
|
||||||
@@ -326,7 +322,7 @@ reg byte a [ main::$1 ]
|
|||||||
|
|
||||||
|
|
||||||
FINAL ASSEMBLER
|
FINAL ASSEMBLER
|
||||||
Score: 756
|
Score: 706
|
||||||
|
|
||||||
// File Comments
|
// File Comments
|
||||||
// Test elimination of noop-casts (signed byte to byte)
|
// Test elimination of noop-casts (signed byte to byte)
|
||||||
@@ -355,18 +351,16 @@ main: {
|
|||||||
// sw += (signed byte)i
|
// sw += (signed byte)i
|
||||||
// [2] (signed word) main::sw#1 ← (signed word) main::sw#2 + (signed byte)(byte) main::i#2 -- vwsz1=vwsz1_plus_vbsxx
|
// [2] (signed word) main::sw#1 ← (signed word) main::sw#2 + (signed byte)(byte) main::i#2 -- vwsz1=vwsz1_plus_vbsxx
|
||||||
txa
|
txa
|
||||||
sta.z $fe
|
pha
|
||||||
|
clc
|
||||||
|
adc.z sw
|
||||||
|
sta.z sw
|
||||||
|
pla
|
||||||
ora #$7f
|
ora #$7f
|
||||||
bmi !+
|
bmi !+
|
||||||
lda #0
|
lda #0
|
||||||
!:
|
!:
|
||||||
sta.z $ff
|
adc.z sw+1
|
||||||
clc
|
|
||||||
lda.z sw
|
|
||||||
adc.z $fe
|
|
||||||
sta.z sw
|
|
||||||
lda.z sw+1
|
|
||||||
adc.z $ff
|
|
||||||
sta.z sw+1
|
sta.z sw+1
|
||||||
// screen[i] = sw
|
// screen[i] = sw
|
||||||
// [3] (byte~) main::$1 ← (byte) main::i#2 << (byte) 1 -- vbuaa=vbuxx_rol_1
|
// [3] (byte~) main::$1 ← (byte) main::i#2 << (byte) 1 -- vbuaa=vbuxx_rol_1
|
||||||
|
@@ -792,18 +792,16 @@ muls8s: {
|
|||||||
__b4:
|
__b4:
|
||||||
// m = m + b
|
// m = m + b
|
||||||
txa
|
txa
|
||||||
sta.z $fe
|
pha
|
||||||
|
clc
|
||||||
|
adc.z m
|
||||||
|
sta.z m
|
||||||
|
pla
|
||||||
ora #$7f
|
ora #$7f
|
||||||
bmi !+
|
bmi !+
|
||||||
lda #0
|
lda #0
|
||||||
!:
|
!:
|
||||||
sta.z $ff
|
adc.z m+1
|
||||||
clc
|
|
||||||
lda.z m
|
|
||||||
adc.z $fe
|
|
||||||
sta.z m
|
|
||||||
lda.z m+1
|
|
||||||
adc.z $ff
|
|
||||||
sta.z m+1
|
sta.z m+1
|
||||||
// for(signed byte j = 0; j!=a; j++)
|
// for(signed byte j = 0; j!=a; j++)
|
||||||
iny
|
iny
|
||||||
|
@@ -6827,18 +6827,16 @@ muls8s: {
|
|||||||
__b4:
|
__b4:
|
||||||
// [231] (signed word) muls8s::m#1 ← (signed word) muls8s::m#3 + (signed byte) muls8s::b#0 -- vwsz1=vwsz1_plus_vbsz2
|
// [231] (signed word) muls8s::m#1 ← (signed word) muls8s::m#3 + (signed byte) muls8s::b#0 -- vwsz1=vwsz1_plus_vbsz2
|
||||||
lda.z b
|
lda.z b
|
||||||
sta.z $fe
|
pha
|
||||||
|
clc
|
||||||
|
adc.z m
|
||||||
|
sta.z m
|
||||||
|
pla
|
||||||
ora #$7f
|
ora #$7f
|
||||||
bmi !+
|
bmi !+
|
||||||
lda #0
|
lda #0
|
||||||
!:
|
!:
|
||||||
sta.z $ff
|
adc.z m+1
|
||||||
clc
|
|
||||||
lda.z m
|
|
||||||
adc.z $fe
|
|
||||||
sta.z m
|
|
||||||
lda.z m+1
|
|
||||||
adc.z $ff
|
|
||||||
sta.z m+1
|
sta.z m+1
|
||||||
// [232] (signed byte) muls8s::j#1 ← ++ (signed byte) muls8s::j#2 -- vbsz1=_inc_vbsz1
|
// [232] (signed byte) muls8s::j#1 ← ++ (signed byte) muls8s::j#2 -- vbsz1=_inc_vbsz1
|
||||||
inc.z j
|
inc.z j
|
||||||
@@ -7919,65 +7917,65 @@ Uplift Scope [print_cls]
|
|||||||
Uplift Scope [main]
|
Uplift Scope [main]
|
||||||
Uplift Scope [mulf_init_asm]
|
Uplift Scope [mulf_init_asm]
|
||||||
|
|
||||||
Uplifting [mul8u] best 322945 combination zp[2]:39 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp[2]:41 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#1 mul8u::a#2 mul8u::a#0 ] reg byte a [ mul8u::b#2 mul8u::b#0 mul8u::b#1 ] zp[2]:119 [ mul8u::return#2 ] zp[2]:75 [ mul8u::return#3 ]
|
Uplifting [mul8u] best 317945 combination zp[2]:39 [ mul8u::res#2 mul8u::res#6 mul8u::res#1 ] zp[2]:41 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ] reg byte a [ mul8u::$1 ] reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#1 mul8u::a#2 mul8u::a#0 ] reg byte a [ mul8u::b#2 mul8u::b#0 mul8u::b#1 ] zp[2]:119 [ mul8u::return#2 ] zp[2]:75 [ mul8u::return#3 ]
|
||||||
Uplifting [muls8s] best 302645 combination zp[2]:44 [ muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 ] reg byte y [ muls8s::j#2 muls8s::j#1 ] reg byte y [ muls8s::i#2 muls8s::i#1 ] reg byte x [ muls8s::b#0 ] zp[1]:87 [ muls8s::a#0 ] zp[2]:89 [ muls8s::return#2 ]
|
Uplifting [muls8s] best 297645 combination zp[2]:44 [ muls8s::return#0 muls8s::m#3 muls8s::m#1 muls8s::m#5 muls8s::m#2 ] reg byte y [ muls8s::j#2 muls8s::j#1 ] reg byte y [ muls8s::i#2 muls8s::i#1 ] reg byte x [ muls8s::b#0 ] zp[1]:87 [ muls8s::a#0 ] zp[2]:89 [ muls8s::return#2 ]
|
||||||
Uplifting [muls8u] best 292345 combination reg byte y [ muls8u::i#2 muls8u::i#1 ] zp[2]:35 [ muls8u::return#0 muls8u::m#3 muls8u::m#1 ] reg byte x [ muls8u::b#0 ] zp[1]:63 [ muls8u::a#0 ] zp[2]:65 [ muls8u::return#2 ]
|
Uplifting [muls8u] best 287345 combination reg byte y [ muls8u::i#2 muls8u::i#1 ] zp[2]:35 [ muls8u::return#0 muls8u::m#3 muls8u::m#1 ] reg byte x [ muls8u::b#0 ] zp[1]:63 [ muls8u::a#0 ] zp[2]:65 [ muls8u::return#2 ]
|
||||||
Uplifting [mulf8u_prepared] best 292336 combination reg byte a [ mulf8u_prepared::b#2 mulf8u_prepared::b#1 mulf8u_prepared::b#0 ] zp[2]:127 [ mulf8u_prepared::return#0 ] zp[2]:129 [ mulf8u_prepared::return#3 ] zp[2]:111 [ mulf8u_prepared::return#2 ]
|
Uplifting [mulf8u_prepared] best 287336 combination reg byte a [ mulf8u_prepared::b#2 mulf8u_prepared::b#1 mulf8u_prepared::b#0 ] zp[2]:127 [ mulf8u_prepared::return#0 ] zp[2]:129 [ mulf8u_prepared::return#3 ] zp[2]:111 [ mulf8u_prepared::return#2 ]
|
||||||
Uplifting [print_char] best 292285 combination reg byte a [ print_char::ch#7 print_char::ch#0 print_char::ch#5 print_char::ch#6 ]
|
Uplifting [print_char] best 287285 combination reg byte a [ print_char::ch#7 print_char::ch#0 print_char::ch#5 print_char::ch#6 ]
|
||||||
Uplifting [mulf8s_prepared] best 292261 combination zp[2]:55 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] reg byte a [ mulf8s_prepared::$6 ] reg byte a [ mulf8s_prepared::$11 ] reg byte a [ mulf8s_prepared::$9 ] reg byte a [ mulf8s_prepared::$12 ] zp[1]:116 [ mulf8s_prepared::b#0 ]
|
Uplifting [mulf8s_prepared] best 287261 combination zp[2]:55 [ mulf8s_prepared::m#4 mulf8s_prepared::m#5 mulf8s_prepared::m#1 mulf8s_prepared::m#0 mulf8s_prepared::m#2 ] reg byte a [ mulf8s_prepared::$6 ] reg byte a [ mulf8s_prepared::$11 ] reg byte a [ mulf8s_prepared::$9 ] reg byte a [ mulf8s_prepared::$12 ] zp[1]:116 [ mulf8s_prepared::b#0 ]
|
||||||
Limited combination testing to 100 combinations of 512 possible.
|
Limited combination testing to 100 combinations of 512 possible.
|
||||||
Uplifting [] best 292261 combination zp[2]:50 [ print_char_cursor#87 print_char_cursor#145 print_char_cursor#138 print_char_cursor#1 print_char_cursor#158 print_char_cursor#192 print_char_cursor#193 print_char_cursor#101 print_char_cursor#18 print_char_cursor#231 print_char_cursor#146 ] zp[2]:30 [ print_line_cursor#24 print_line_cursor#47 print_line_cursor#10 print_line_cursor#0 ]
|
Uplifting [] best 287261 combination zp[2]:50 [ print_char_cursor#87 print_char_cursor#145 print_char_cursor#138 print_char_cursor#1 print_char_cursor#158 print_char_cursor#192 print_char_cursor#193 print_char_cursor#101 print_char_cursor#18 print_char_cursor#231 print_char_cursor#146 ] zp[2]:30 [ print_line_cursor#24 print_line_cursor#47 print_line_cursor#10 print_line_cursor#0 ]
|
||||||
Uplifting [print_uchar] best 292234 combination reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] reg byte x [ print_uchar::b#5 print_uchar::b#3 print_uchar::b#4 print_uchar::b#0 print_uchar::b#1 print_uchar::b#2 ]
|
Uplifting [print_uchar] best 287234 combination reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] reg byte x [ print_uchar::b#5 print_uchar::b#3 print_uchar::b#4 print_uchar::b#0 print_uchar::b#1 print_uchar::b#2 ]
|
||||||
Uplifting [mulf8u_prepare] best 292225 combination reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#1 mulf8u_prepare::a#0 ]
|
Uplifting [mulf8u_prepare] best 287225 combination reg byte a [ mulf8u_prepare::a#2 mulf8u_prepare::a#1 mulf8u_prepare::a#0 ]
|
||||||
Uplifting [mul8s] best 292201 combination zp[2]:47 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] reg byte a [ mul8s::$6 ] reg byte a [ mul8s::$11 ] reg byte a [ mul8s::$9 ] reg byte a [ mul8s::$12 ] zp[1]:100 [ mul8s::b#0 ] zp[1]:99 [ mul8s::a#0 ]
|
Uplifting [mul8s] best 287201 combination zp[2]:47 [ mul8s::m#4 mul8s::m#5 mul8s::m#1 mul8s::m#0 mul8s::m#2 ] reg byte a [ mul8s::$6 ] reg byte a [ mul8s::$11 ] reg byte a [ mul8s::$9 ] reg byte a [ mul8s::$12 ] zp[1]:100 [ mul8s::b#0 ] zp[1]:99 [ mul8s::a#0 ]
|
||||||
Limited combination testing to 100 combinations of 2304 possible.
|
Limited combination testing to 100 combinations of 2304 possible.
|
||||||
Uplifting [print_str] best 292201 combination zp[2]:28 [ print_str::str#16 print_str::str#19 print_str::str#0 ]
|
Uplifting [print_str] best 287201 combination zp[2]:28 [ print_str::str#16 print_str::str#19 print_str::str#0 ]
|
||||||
Uplifting [mulf8u] best 291597 combination reg byte a [ mulf8u::a#0 ] reg byte x [ mulf8u::b#0 ] zp[2]:113 [ mulf8u::return#0 ] zp[2]:71 [ mulf8u::return#2 ]
|
Uplifting [mulf8u] best 286597 combination reg byte a [ mulf8u::a#0 ] reg byte x [ mulf8u::b#0 ] zp[2]:113 [ mulf8u::return#0 ] zp[2]:71 [ mulf8u::return#2 ]
|
||||||
Uplifting [print_uint] best 291597 combination zp[2]:32 [ print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 ]
|
Uplifting [print_uint] best 286597 combination zp[2]:32 [ print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 ]
|
||||||
Uplifting [mulf8s] best 290991 combination zp[2]:117 [ mulf8s::return#0 ] reg byte x [ mulf8s::b#0 ] zp[2]:95 [ mulf8s::return#2 ] reg byte a [ mulf8s::a#0 ]
|
Uplifting [mulf8s] best 285991 combination zp[2]:117 [ mulf8s::return#0 ] reg byte x [ mulf8s::b#0 ] zp[2]:95 [ mulf8s::return#2 ] reg byte a [ mulf8s::a#0 ]
|
||||||
Uplifting [mul8s_compare] best 289791 combination reg byte x [ mul8s_compare::ok#3 mul8s_compare::ok#4 ] zp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ] zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ] zp[2]:101 [ mul8s_compare::mn#0 ] zp[2]:91 [ mul8s_compare::ms#0 ] zp[2]:97 [ mul8s_compare::mf#0 ]
|
Uplifting [mul8s_compare] best 284791 combination reg byte x [ mul8s_compare::ok#3 mul8s_compare::ok#4 ] zp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ] zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ] zp[2]:101 [ mul8s_compare::mn#0 ] zp[2]:91 [ mul8s_compare::ms#0 ] zp[2]:97 [ mul8s_compare::mf#0 ]
|
||||||
Uplifting [print_sint] best 289791 combination zp[2]:58 [ print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 ]
|
Uplifting [print_sint] best 284791 combination zp[2]:58 [ print_sint::w#6 print_sint::w#0 print_sint::w#4 print_sint::w#1 print_sint::w#2 print_sint::w#3 ]
|
||||||
Uplifting [print_schar] best 289779 combination reg byte x [ print_schar::b#5 print_schar::b#0 print_schar::b#3 print_schar::b#1 print_schar::b#2 ]
|
Uplifting [print_schar] best 284779 combination reg byte x [ print_schar::b#5 print_schar::b#0 print_schar::b#3 print_schar::b#1 print_schar::b#2 ]
|
||||||
Uplifting [mul8u_compare] best 288579 combination reg byte x [ mul8u_compare::ok#3 mul8u_compare::ok#4 ] zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ] zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ] zp[2]:77 [ mul8u_compare::mn#0 ] zp[2]:67 [ mul8u_compare::ms#0 ] zp[2]:73 [ mul8u_compare::mf#0 ]
|
Uplifting [mul8u_compare] best 283579 combination reg byte x [ mul8u_compare::ok#3 mul8u_compare::ok#4 ] zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ] zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ] zp[2]:77 [ mul8u_compare::mn#0 ] zp[2]:67 [ mul8u_compare::ms#0 ] zp[2]:73 [ mul8u_compare::mf#0 ]
|
||||||
Uplifting [memset] best 288579 combination zp[2]:26 [ memset::dst#2 memset::dst#1 ]
|
Uplifting [memset] best 283579 combination zp[2]:26 [ memset::dst#2 memset::dst#1 ]
|
||||||
Uplifting [mulf_init] best 288329 combination zp[2]:14 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] zp[2]:8 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp[2]:2 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] reg byte x [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$1 ] reg byte a [ mulf_init::$4 ] reg byte a [ mulf_init::$5 ] zp[1]:10 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ] zp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ] zp[2]:11 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp[2]:5 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
|
Uplifting [mulf_init] best 283329 combination zp[2]:14 [ mulf_init::sqr#3 mulf_init::sqr#4 mulf_init::sqr#1 mulf_init::sqr#2 ] zp[2]:8 [ mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 ] zp[2]:2 [ mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 ] reg byte x [ mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 ] reg byte a [ mulf_init::$1 ] reg byte a [ mulf_init::$4 ] reg byte a [ mulf_init::$5 ] zp[1]:10 [ mulf_init::x_255#2 mulf_init::x_255#1 ] zp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ] zp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ] zp[2]:11 [ mulf_init::sqr2_hi#2 mulf_init::sqr2_hi#1 ] zp[2]:5 [ mulf_init::sqr1_hi#2 mulf_init::sqr1_hi#1 ]
|
||||||
Limited combination testing to 100 combinations of 1024 possible.
|
Limited combination testing to 100 combinations of 1024 possible.
|
||||||
Uplifting [mulf_tables_cmp] best 288329 combination zp[2]:16 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ] zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ]
|
Uplifting [mulf_tables_cmp] best 283329 combination zp[2]:16 [ mulf_tables_cmp::kc_sqr#2 mulf_tables_cmp::kc_sqr#1 ] zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ]
|
||||||
Uplifting [mul8u_error] best 288323 combination reg byte x [ mul8u_error::a#0 ] zp[1]:80 [ mul8u_error::b#0 ] zp[2]:81 [ mul8u_error::ms#0 ] zp[2]:83 [ mul8u_error::mn#0 ] zp[2]:85 [ mul8u_error::mf#0 ]
|
Uplifting [mul8u_error] best 283323 combination reg byte x [ mul8u_error::a#0 ] zp[1]:80 [ mul8u_error::b#0 ] zp[2]:81 [ mul8u_error::ms#0 ] zp[2]:83 [ mul8u_error::mn#0 ] zp[2]:85 [ mul8u_error::mf#0 ]
|
||||||
Uplifting [mul8s_error] best 288317 combination reg byte x [ mul8s_error::a#0 ] zp[1]:104 [ mul8s_error::b#0 ] zp[2]:105 [ mul8s_error::ms#0 ] zp[2]:107 [ mul8s_error::mn#0 ] zp[2]:109 [ mul8s_error::mf#0 ]
|
Uplifting [mul8s_error] best 283317 combination reg byte x [ mul8s_error::a#0 ] zp[1]:104 [ mul8s_error::b#0 ] zp[2]:105 [ mul8s_error::ms#0 ] zp[2]:107 [ mul8s_error::mn#0 ] zp[2]:109 [ mul8s_error::mf#0 ]
|
||||||
Uplifting [RADIX] best 288317 combination
|
Uplifting [RADIX] best 283317 combination
|
||||||
Uplifting [print_ln] best 288317 combination
|
Uplifting [print_ln] best 283317 combination
|
||||||
Uplifting [print_cls] best 288317 combination
|
Uplifting [print_cls] best 283317 combination
|
||||||
Uplifting [main] best 288317 combination
|
Uplifting [main] best 283317 combination
|
||||||
Uplifting [mulf_init_asm] best 288317 combination
|
Uplifting [mulf_init_asm] best 283317 combination
|
||||||
Attempting to uplift remaining variables inzp[1]:87 [ muls8s::a#0 ]
|
Attempting to uplift remaining variables inzp[1]:87 [ muls8s::a#0 ]
|
||||||
Uplifting [muls8s] best 288317 combination zp[1]:87 [ muls8s::a#0 ]
|
Uplifting [muls8s] best 283317 combination zp[1]:87 [ muls8s::a#0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:63 [ muls8u::a#0 ]
|
Attempting to uplift remaining variables inzp[1]:63 [ muls8u::a#0 ]
|
||||||
Uplifting [muls8u] best 288317 combination zp[1]:63 [ muls8u::a#0 ]
|
Uplifting [muls8u] best 283317 combination zp[1]:63 [ muls8u::a#0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:116 [ mulf8s_prepared::b#0 ]
|
Attempting to uplift remaining variables inzp[1]:116 [ mulf8s_prepared::b#0 ]
|
||||||
Uplifting [mulf8s_prepared] best 288317 combination zp[1]:116 [ mulf8s_prepared::b#0 ]
|
Uplifting [mulf8s_prepared] best 283317 combination zp[1]:116 [ mulf8s_prepared::b#0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ]
|
Attempting to uplift remaining variables inzp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ]
|
||||||
Uplifting [mul8s_compare] best 288317 combination zp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ]
|
Uplifting [mul8s_compare] best 283317 combination zp[1]:24 [ mul8s_compare::b#10 mul8s_compare::b#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ]
|
Attempting to uplift remaining variables inzp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ]
|
||||||
Uplifting [mul8u_compare] best 288317 combination zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ]
|
Uplifting [mul8u_compare] best 283317 combination zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:100 [ mul8s::b#0 ]
|
Attempting to uplift remaining variables inzp[1]:100 [ mul8s::b#0 ]
|
||||||
Uplifting [mul8s] best 288016 combination reg byte y [ mul8s::b#0 ]
|
Uplifting [mul8s] best 283016 combination reg byte y [ mul8s::b#0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:99 [ mul8s::a#0 ]
|
Attempting to uplift remaining variables inzp[1]:99 [ mul8s::a#0 ]
|
||||||
Uplifting [mul8s] best 288016 combination zp[1]:99 [ mul8s::a#0 ]
|
Uplifting [mul8s] best 283016 combination zp[1]:99 [ mul8s::a#0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ]
|
Attempting to uplift remaining variables inzp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ]
|
||||||
Uplifting [mul8s_compare] best 288016 combination zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ]
|
Uplifting [mul8s_compare] best 283016 combination zp[1]:23 [ mul8s_compare::a#10 mul8s_compare::a#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ]
|
Attempting to uplift remaining variables inzp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ]
|
||||||
Uplifting [mul8u_compare] best 288016 combination zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ]
|
Uplifting [mul8u_compare] best 283016 combination zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:10 [ mulf_init::x_255#2 mulf_init::x_255#1 ]
|
Attempting to uplift remaining variables inzp[1]:10 [ mulf_init::x_255#2 mulf_init::x_255#1 ]
|
||||||
Uplifting [mulf_init] best 287876 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ]
|
Uplifting [mulf_init] best 282876 combination reg byte x [ mulf_init::x_255#2 mulf_init::x_255#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ]
|
Attempting to uplift remaining variables inzp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ]
|
||||||
Uplifting [mulf_init] best 287876 combination zp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ]
|
Uplifting [mulf_init] best 282876 combination zp[1]:13 [ mulf_init::dir#2 mulf_init::dir#4 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ]
|
Attempting to uplift remaining variables inzp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ]
|
||||||
Uplifting [mulf_init] best 287876 combination zp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ]
|
Uplifting [mulf_init] best 282876 combination zp[1]:4 [ mulf_init::c#2 mulf_init::c#1 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:80 [ mul8u_error::b#0 ]
|
Attempting to uplift remaining variables inzp[1]:80 [ mul8u_error::b#0 ]
|
||||||
Uplifting [mul8u_error] best 287876 combination zp[1]:80 [ mul8u_error::b#0 ]
|
Uplifting [mul8u_error] best 282876 combination zp[1]:80 [ mul8u_error::b#0 ]
|
||||||
Attempting to uplift remaining variables inzp[1]:104 [ mul8s_error::b#0 ]
|
Attempting to uplift remaining variables inzp[1]:104 [ mul8s_error::b#0 ]
|
||||||
Uplifting [mul8s_error] best 287876 combination zp[1]:104 [ mul8s_error::b#0 ]
|
Uplifting [mul8s_error] best 282876 combination zp[1]:104 [ mul8s_error::b#0 ]
|
||||||
Coalescing zero page register [ zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ] ] with [ zp[2]:32 [ print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 ] ] - score: 1
|
Coalescing zero page register [ zp[2]:18 [ mulf_tables_cmp::asm_sqr#2 mulf_tables_cmp::asm_sqr#1 ] ] with [ zp[2]:32 [ print_uint::w#6 print_uint::w#3 print_uint::w#4 print_uint::w#5 print_uint::w#2 print_uint::w#1 print_uint::w#0 ] ] - score: 1
|
||||||
Coalescing zero page register [ zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ] ] with [ zp[1]:63 [ muls8u::a#0 ] ] - score: 1
|
Coalescing zero page register [ zp[1]:20 [ mul8u_compare::a#7 mul8u_compare::a#1 ] ] with [ zp[1]:63 [ muls8u::a#0 ] ] - score: 1
|
||||||
Coalescing zero page register [ zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ] ] with [ zp[1]:80 [ mul8u_error::b#0 ] ] - score: 1
|
Coalescing zero page register [ zp[1]:21 [ mul8u_compare::b#10 mul8u_compare::b#1 ] ] with [ zp[1]:80 [ mul8u_error::b#0 ] ] - score: 1
|
||||||
@@ -9473,18 +9471,16 @@ muls8s: {
|
|||||||
__b4:
|
__b4:
|
||||||
// [231] (signed word) muls8s::m#1 ← (signed word) muls8s::m#3 + (signed byte) muls8s::b#0 -- vwsz1=vwsz1_plus_vbsxx
|
// [231] (signed word) muls8s::m#1 ← (signed word) muls8s::m#3 + (signed byte) muls8s::b#0 -- vwsz1=vwsz1_plus_vbsxx
|
||||||
txa
|
txa
|
||||||
sta.z $fe
|
pha
|
||||||
|
clc
|
||||||
|
adc.z m
|
||||||
|
sta.z m
|
||||||
|
pla
|
||||||
ora #$7f
|
ora #$7f
|
||||||
bmi !+
|
bmi !+
|
||||||
lda #0
|
lda #0
|
||||||
!:
|
!:
|
||||||
sta.z $ff
|
adc.z m+1
|
||||||
clc
|
|
||||||
lda.z m
|
|
||||||
adc.z $fe
|
|
||||||
sta.z m
|
|
||||||
lda.z m+1
|
|
||||||
adc.z $ff
|
|
||||||
sta.z m+1
|
sta.z m+1
|
||||||
// [232] (signed byte) muls8s::j#1 ← ++ (signed byte) muls8s::j#2 -- vbsyy=_inc_vbsyy
|
// [232] (signed byte) muls8s::j#1 ← ++ (signed byte) muls8s::j#2 -- vbsyy=_inc_vbsyy
|
||||||
iny
|
iny
|
||||||
@@ -11092,7 +11088,7 @@ reg byte a [ mulf8s_prepared::$12 ]
|
|||||||
|
|
||||||
|
|
||||||
FINAL ASSEMBLER
|
FINAL ASSEMBLER
|
||||||
Score: 236672
|
Score: 231672
|
||||||
|
|
||||||
// File Comments
|
// File Comments
|
||||||
// Test the fast multiplication library
|
// Test the fast multiplication library
|
||||||
@@ -12400,18 +12396,16 @@ muls8s: {
|
|||||||
// m = m + b
|
// m = m + b
|
||||||
// [231] (signed word) muls8s::m#1 ← (signed word) muls8s::m#3 + (signed byte) muls8s::b#0 -- vwsz1=vwsz1_plus_vbsxx
|
// [231] (signed word) muls8s::m#1 ← (signed word) muls8s::m#3 + (signed byte) muls8s::b#0 -- vwsz1=vwsz1_plus_vbsxx
|
||||||
txa
|
txa
|
||||||
sta.z $fe
|
pha
|
||||||
|
clc
|
||||||
|
adc.z m
|
||||||
|
sta.z m
|
||||||
|
pla
|
||||||
ora #$7f
|
ora #$7f
|
||||||
bmi !+
|
bmi !+
|
||||||
lda #0
|
lda #0
|
||||||
!:
|
!:
|
||||||
sta.z $ff
|
adc.z m+1
|
||||||
clc
|
|
||||||
lda.z m
|
|
||||||
adc.z $fe
|
|
||||||
sta.z m
|
|
||||||
lda.z m+1
|
|
||||||
adc.z $ff
|
|
||||||
sta.z m+1
|
sta.z m+1
|
||||||
// for(signed byte j = 0; j!=a; j++)
|
// for(signed byte j = 0; j!=a; j++)
|
||||||
// [232] (signed byte) muls8s::j#1 ← ++ (signed byte) muls8s::j#2 -- vbsyy=_inc_vbsyy
|
// [232] (signed byte) muls8s::j#1 ← ++ (signed byte) muls8s::j#2 -- vbsyy=_inc_vbsyy
|
||||||
|
Reference in New Issue
Block a user