1
0
mirror of https://github.com/cc65/cc65.git synced 2025-02-08 11:31:34 +00:00

Expand tabs to spaces in lz4.s

This commit is contained in:
Lauri Kasanen 2017-06-06 19:31:16 +03:00
parent e75a59d7a8
commit ee49ecdf43

View File

@ -4,11 +4,11 @@
; An optimized LZ4 decompressor ; An optimized LZ4 decompressor
; ;
.importzp sp, sreg, regsave, regbank .importzp sp, sreg, regsave, regbank
.importzp tmp1, tmp2, tmp3, tmp4, ptr1, ptr2, ptr3, ptr4 .importzp tmp1, tmp2, tmp3, tmp4, ptr1, ptr2, ptr3, ptr4
.macpack longbranch .macpack longbranch
.import memcpy_upwards,pushax,popax .import memcpy_upwards,pushax,popax
.export _decompress_lz4 .export _decompress_lz4
_out = regsave _out = regsave
_written = regsave + 2 _written = regsave + 2
@ -22,262 +22,262 @@ _outlen = ptr4
; void decompress_lz4 (const u8 *in, u8 * const out, const u16 outlen) ; void decompress_lz4 (const u8 *in, u8 * const out, const u16 outlen)
; --------------------------------------------------------------- ; ---------------------------------------------------------------
.segment "CODE" .segment "CODE"
.proc _decompress_lz4: near .proc _decompress_lz4: near
sta _outlen sta _outlen
stx _outlen+1 stx _outlen+1
jsr popax jsr popax
sta _out sta _out
stx _out+1 stx _out+1
jsr popax jsr popax
sta _in sta _in
stx _in+1 stx _in+1
; ;
; written = 0; ; written = 0;
; ;
lda #$00 lda #$00
sta _written sta _written
; ;
; while (written < outlen) { ; while (written < outlen) {
; ;
jmp L0046 jmp L0046
; ;
; token = *in++; ; token = *in++;
; ;
L0004: ldy #0 L0004: ldy #0
lda (_in),y lda (_in),y
sta _token sta _token
inc _in inc _in
bne L000A bne L000A
inc _in+1 inc _in+1
L000A: L000A:
; ;
; offset = token >> 4; ; offset = token >> 4;
; ;
ldx #$00 ldx #$00
lsr a lsr a
lsr a lsr a
lsr a lsr a
lsr a lsr a
sta _offset sta _offset
stx _offset+1 stx _offset+1
; ;
; token &= 0xf; ; token &= 0xf;
; token += 4; // Minmatch ; token += 4; // Minmatch
; ;
lda _token lda _token
and #$0F and #$0F
clc clc
adc #4 adc #4
sta _token sta _token
; ;
; if (offset == 15) { ; if (offset == 15) {
; ;
lda _offset lda _offset
cmp #$0F cmp #$0F
L0013: bne L001A L0013: bne L001A
; ;
; tmp = *in++; ; tmp = *in++;
; ;
ldy #0 ldy #0
lda (_in),y lda (_in),y
sta _tmp sta _tmp
inc _in inc _in
bne L0017 bne L0017
inc _in+1 inc _in+1
L0017: L0017:
; ;
; offset += tmp; ; offset += tmp;
; ;
clc clc
adc _offset adc _offset
sta _offset sta _offset
lda #$00 lda #$00
adc _offset+1 adc _offset+1
sta _offset+1 sta _offset+1
; ;
; if (tmp == 255) ; if (tmp == 255)
; ;
lda _tmp lda _tmp
cmp #$FF cmp #$FF
; ;
; goto moreliterals; ; goto moreliterals;
; ;
jmp L0013 jmp L0013
; ;
; if (offset) { ; if (offset) {
; ;
L001A: lda _offset L001A: lda _offset
ora _offset+1 ora _offset+1
beq L001C beq L001C
; ;
; memcpy(&out[written], in, offset); ; memcpy(&out[written], in, offset);
; ;
lda _out lda _out
clc clc
adc _written adc _written
sta ptr2 sta ptr2
lda _out+1 lda _out+1
adc _written+1 adc _written+1
tax tax
lda ptr2 lda ptr2
stx ptr2+1 stx ptr2+1
jsr pushax jsr pushax
lda _in lda _in
ldx _in+1 ldx _in+1
sta ptr1 sta ptr1
stx ptr1+1 stx ptr1+1
ldy #0 ldy #0
jsr memcpy_upwards jsr memcpy_upwards
; ;
; written += offset; ; written += offset;
; ;
lda _offset lda _offset
clc clc
adc _written adc _written
sta _written sta _written
lda _offset+1 lda _offset+1
adc _written+1 adc _written+1
sta _written+1 sta _written+1
; ;
; in += offset; ; in += offset;
; ;
lda _offset lda _offset
clc clc
adc _in adc _in
sta _in sta _in
lda _offset+1 lda _offset+1
adc _in+1 adc _in+1
sta _in+1 sta _in+1
; ;
; if (written >= outlen) ; if (written >= outlen)
; ;
L001C: lda _written L001C: lda _written
cmp _outlen cmp _outlen
lda _written+1 lda _written+1
sbc _outlen+1 sbc _outlen+1
; ;
; return; ; return;
; ;
bcc L0047 bcc L0047
rts rts
; ;
; memcpy(&offset, in, 2); ; memcpy(&offset, in, 2);
; ;
L0047: ldy #0 L0047: ldy #0
lda (_in),y lda (_in),y
sta _offset sta _offset
iny iny
lda (_in),y lda (_in),y
sta _offset+1 sta _offset+1
; ;
; in += 2; ; in += 2;
; ;
lda #$02 lda #$02
clc clc
adc _in adc _in
sta _in sta _in
bcc L002F bcc L002F
inc _in+1 inc _in+1
; ;
; copysrc = out + written - offset; ; copysrc = out + written - offset;
; ;
L002F: lda _out L002F: lda _out
clc clc
adc _written adc _written
pha pha
lda _out+1 lda _out+1
adc _written+1 adc _written+1
tax tax
pla pla
sec sec
sbc _offset sbc _offset
sta ptr1 sta ptr1
txa txa
sbc _offset+1 sbc _offset+1
sta ptr1+1 sta ptr1+1
; ;
; offset = token; ; offset = token;
; ;
lda #$00 lda #$00
sta _offset+1 sta _offset+1
lda _token lda _token
sta _offset sta _offset
; ;
; if (token == 19) { ; if (token == 19) {
; ;
cmp #$13 cmp #$13
L0045: bne L003C L0045: bne L003C
; ;
; tmp = *in++; ; tmp = *in++;
; ;
ldy #0 ldy #0
lda (_in),y lda (_in),y
sta _tmp sta _tmp
inc _in inc _in
bne L0039 bne L0039
inc _in+1 inc _in+1
L0039: L0039:
; ;
; offset += tmp; ; offset += tmp;
; ;
clc clc
adc _offset adc _offset
sta _offset sta _offset
tya tya
adc _offset+1 adc _offset+1
sta _offset+1 sta _offset+1
; ;
; if (tmp == 255) ; if (tmp == 255)
; ;
lda _tmp lda _tmp
cmp #$FF cmp #$FF
; ;
; goto morematches; ; goto morematches;
; ;
jmp L0045 jmp L0045
; ;
; memcpy(&out[written], copysrc, offset); ; memcpy(&out[written], copysrc, offset);
; ;
L003C: lda _out L003C: lda _out
clc clc
adc _written adc _written
sta ptr2 sta ptr2
lda _out+1 lda _out+1
adc _written+1 adc _written+1
tax tax
lda ptr2 lda ptr2
stx ptr2+1 stx ptr2+1
jsr pushax jsr pushax
jsr memcpy_upwards jsr memcpy_upwards
; ;
; written += offset; ; written += offset;
; ;
lda _offset lda _offset
clc clc
adc _written adc _written
sta _written sta _written
lda _offset+1 lda _offset+1
adc _written+1 adc _written+1
L0046: sta _written+1 L0046: sta _written+1
; ;
; while (written < outlen) { ; while (written < outlen) {
; ;
lda _written lda _written
cmp _outlen cmp _outlen
lda _written+1 lda _written+1
sbc _outlen+1 sbc _outlen+1
jcc L0004 jcc L0004
rts rts
.endproc .endproc