Small cleanup of arm sources.

This commit is contained in:
Markus F.X.J. Oberhumer 2006-10-30 14:10:51 +01:00
parent 0d4254f319
commit 011cd37cfb
5 changed files with 51 additions and 11 deletions

View File

@ -46,14 +46,17 @@
#define jnextb0 GETBIT; bcc
#define jnextb1 GETBIT; bcs
#ifndef PURE_THUMB
ucl_nrv2b_decompress_32: .globl ucl_nrv2b_decompress_32 @ ARM mode
.type ucl_nrv2b_decompress_32, %function
/* error = (*)(char const *src, int len_src, char *dst, int *plen_dst) */
adr r12,1+go_thumb_n2b @ load pc-relative address
adr r12,1+.thumb_nrv2b_d32 @ load pc-relative address
bx r12 @ enter THUMB mode
.code 16 @ THUMB mode
go_thumb_n2b:
.thumb_func
#endif
.thumb_nrv2b_d32:
add r1,len,src @ r1= eof_src;
push {r1,r2,r3, r4,r5,r6,r7, lr}
mov bits,#1; neg off,bits @ off= -1 initial condition
@ -121,8 +124,12 @@ get1b: @ Out: Carry= next_bit
ldrb tmp, [src],#1; orr bits,bits,tmp,lsl #3*8
adcs bits,bits,bits @ Carry= next_bit; set bit0 flag from CarryIn
bx lr
.code 16 @ THUMB mode
#ifndef PURE_THUMB
.size ucl_nrv2b_decompress_32, .-ucl_nrv2b_decompress_32
#endif
/*
vi:ts=8:et:nowrap
*/

View File

@ -50,12 +50,13 @@
ucl_nrv2b_decompress_8: .globl ucl_nrv2b_decompress_8 @ ARM mode
.type ucl_nrv2b_decompress_8, %function
/* error = (*)(char const *src, int len_src, char *dst, int *plen_dst) */
adr r12,1+.go_thumb_n2b @ load pc-relative address
adr r12,1+.thumb_nrv2b_d8 @ load pc-relative address
bx r12 @ enter THUMB mode
.code 16 @ THUMB mode
.thumb_func
#endif
.go_thumb_n2b:
.thumb_nrv2b_d8:
add r1,len,src @ r1= eof_src;
push {r1,r2,r3, r4,r5,r6,r7, lr}
mov bits,#1; neg off,bits @ off= -1 initial condition
@ -118,7 +119,10 @@ copy_n2b:
sub len,#1; bne copy_n2b
b top_n2b
#ifndef PURE_THUMB
.size ucl_nrv2b_decompress_8, .-ucl_nrv2b_decompress_8
#endif
/*
vi:ts=8:et:nowrap
*/

View File

@ -50,12 +50,16 @@
#define jnextb0 GETBIT; bcc
#define jnextb1 GETBIT; bcs
#ifndef PURE_THUMB
ucl_nrv2e_decompress_32: .globl ucl_nrv2e_decompress_32 @ ARM mode
.type ucl_nrv2e_decompress_32, %function
/* error = (*)(char const *src, int len_src, char *dst, int *plen_dst) */
adr r12,1+thumb_nrv2e_d32; bx r12 @ enter THUMB mode
adr r12,1+.thumb_nrv2e_d32; bx r12 @ enter THUMB mode
.code 16 @ THUMB mode
thumb_nrv2e_d32:
.thumb_func
#endif
.thumb_nrv2e_d32:
add r1,len,src @ r1= eof_src;
push {r1,r2,r3, r4,r5,r6,r7, lr}
mov bits,#1; neg off,bits @ off= -1 initial condition
@ -129,8 +133,11 @@ get32: @ In: Carry set (unchanged until final adcs)
ldrb tmp, [src],#1; orr bits,bits,tmp,lsl #3*8
adcs bits,bits,bits @ Set Carry out
bx lr
.code 16 @ THUMB mode
#ifndef PURE_THUMB
.size ucl_nrv2e_decompress_32, .-ucl_nrv2e_decompress_32
#endif
/*
vi:ts=8:et:nowrap

View File

@ -80,6 +80,7 @@ ucl_nrv2e_decompress_8: .globl ucl_nrv2e_decompress_8 @ ARM mode
.code 16 @ THUMB mode
.thumb_func
#endif
.thumb_nrv2e_d8:
push {r2,r3, r4,r5,r6,r7, lr}
#define sp_DST0 0 /* stack offset of original dst */
@ -90,7 +91,7 @@ ucl_nrv2e_decompress_8: .globl ucl_nrv2e_decompress_8 @ ARM mode
mov dstlim,tmp
#endif /*}*/
mov bits,#1; neg off,bits @ off= -1 initial condition
lsl bits,#31 @ 1<<31; refill next time
lsl bits,#31 @ 1<<31: refill next time
mov wrnk,#5
lsl wrnk,#8 @ 0x500 @ nrv2e M2_MAX_OFFSET
b top_n2e
@ -175,7 +176,10 @@ copy_n2e:
strb tmp,[dst]; add dst,#1
sub len,#1; bne copy_n2e
b top_n2e
#ifndef PURE_THUMB
.size ucl_nrv2e_decompress_8, .-ucl_nrv2e_decompress_8
#endif
/*
vi:ts=8:et:nowrap

View File

@ -296,19 +296,37 @@ section ProcessEnd
section .ucl_nrv2b_decompress_8
#include "arch/arm/v4t/nrv2b_d8.S"
#undef GETBIT
#undef wrnk
section Call2B
bl .go_thumb_n2b
bl .thumb_nrv2b_d8
#undef wrnk
#undef GETBIT
section .ucl_nrv2e_decompress_8
#include "arch/arm/v4t/nrv2e_d8.S"
#undef GETBIT
#undef wrnk
section Call2E
bl .thumb_nrv2e_d8
#if 0
section .ucl_nrv2b_decompress_32
#include "arch/arm/v4t/nrv2b_d32.S"
#undef GETBIT
#undef wrnk
#endif
#if 0
section .ucl_nrv2e_decompress_32
#include "arch/arm/v4t/nrv2e_d32.S"
#undef GETBIT
#undef wrnk
#endif
////////////////////////////////////////
section CallLZMA