z80_unpacker: optimisation: -2B in backward unpack (fwd 172B / rev 169B)

backward was already -1B, so now the total difference is -3B.
This commit is contained in:
Peter Helcmanovsky (Ped)
2022-09-19 01:31:22 +02:00
parent 8e5298caee
commit 00d084105a
2 changed files with 10 additions and 7 deletions

Binary file not shown.

View File

@@ -139,16 +139,19 @@ unpack:
call decode_number ; length = upkr_decode_length(257 + 64); call decode_number ; length = upkr_decode_length(257 + 64);
push de push de
exx exx
IFNDEF BACKWARDS_UNPACK
ld h,d ; DE = write_ptr ld h,d ; DE = write_ptr
ld l,e ld l,e
.offset+*: ld bc,0 .offset+*: ld bc,0
IFNDEF BACKWARDS_UNPACK
sbc hl,bc ; CF=0 from decode_number ; HL = write_ptr - offset sbc hl,bc ; CF=0 from decode_number ; HL = write_ptr - offset
ELSE
add hl,bc ; HL = write_ptr + offset
ENDIF
pop bc ; BC = length pop bc ; BC = length
IFNDEF BACKWARDS_UNPACK : ldir : ELSE : lddr : ENDIF ldir
ELSE
.offset+*: ld hl,0
add hl,de ; HL = write_ptr + offset
pop bc ; BC = length
lddr
ENDIF
exx exx
ld d,b ; prev_was_match = true ld d,b ; prev_was_match = true
djnz .decompress_data ; adjust context_index back to 0..255 range, go to main loop djnz .decompress_data ; adjust context_index back to 0..255 range, go to main loop