arm/pe: support for nrv2b, support for cpu = 0x1c2, certificate info now removed

committer: ml1050 <ml1050> 1143614738 +0000
This commit is contained in:
László Molnár
2006-03-29 06:45:38 +00:00
parent 16a2744782
commit 813349fd23
7 changed files with 96 additions and 44 deletions
+7 -12
View File
@@ -40,7 +40,7 @@
/* r12 ("ip") is assumed to be a scratch register. */
#define GETBIT blx g1b
#define GETBIT add bits,bits; mov lr,pc; beq get1_n2b
#define getnextb(reg) GETBIT; adc reg,reg
#define jnextb0 GETBIT; bcc
@@ -53,15 +53,14 @@ ucl_nrv2b_decompress_8: .globl ucl_nrv2b_decompress_8 @ ARM mode
bx r12 @ enter THUMB mode
.code 16 @ THUMB mode
go_thumb_n2b:
.thumb_func
go_thumb_n2b: .globl go_thumb_n2b
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
lsl bits,#31 @ 1<<31: refill next time
mov wrnk,#0xd
lsl wrnk,#8 @ 0xd00
adr g1b,get1_n2b @ load pc-relative address
add g1b,#1 @ force THUMB mode
b top_n2b
eof_n2b:
@@ -71,23 +70,19 @@ eof_n2b:
str dst,[r4]
pop {r4,r5,r6,r7, pc} @ return
.align 2 @ 1<<2 for benefit of loading address with 'adr' above
get1_n2b:
add bits,bits; bne get1r_n2b @ CarryOut has data bit
ldrb bits,[src] @ zero-extend next byte
ldrb bits,[src] @ zero-extend next byte
adc bits,bits @ double and insert CarryIn as low bit
add src,#1
add src,#1
lsl bits,#24 @ move to top byte, and set CarryOut from old bit 8
get1r_n2b:
bx lr
mov pc,lr
lit_n2b:
ldrb tmp,[src]; add src,#1
strb tmp,[dst]; add dst,#1
top_n2b:
jnextb1 lit_n2b
jnextb1 lit_n2b
mov len,#1 @ the msb
getoff_n2b: @ ss11 len= [2..)
getnextb(len)