diff options
Diffstat (limited to 'utils/AMS/hacking/nrv2e_d8.S')
-rw-r--r-- | utils/AMS/hacking/nrv2e_d8.S | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/utils/AMS/hacking/nrv2e_d8.S b/utils/AMS/hacking/nrv2e_d8.S index 88df64a58f..89cb76dead 100644 --- a/utils/AMS/hacking/nrv2e_d8.S +++ b/utils/AMS/hacking/nrv2e_d8.S | |||
@@ -77,13 +77,15 @@ ucl_nrv2e_decompress_8: .globl ucl_nrv2e_decompress_8 @ ARM mode | |||
77 | For SAFE mode: at call, *plen_dst must be allowed length of output buffer. | 77 | For SAFE mode: at call, *plen_dst must be allowed length of output buffer. |
78 | */ | 78 | */ |
79 | adr r12,1+.thumb_nrv2e_d8; bx r12 @ enter THUMB mode | 79 | adr r12,1+.thumb_nrv2e_d8; bx r12 @ enter THUMB mode |
80 | #endif | ||
80 | .code 16 @ THUMB mode | 81 | .code 16 @ THUMB mode |
81 | .thumb_func | 82 | .thumb_func |
82 | #endif | ||
83 | 83 | ||
84 | .thumb_nrv2e_d8: | 84 | .thumb_nrv2e_d8: |
85 | #if 0 | ||
85 | push {r2,r3, r4,r5,r6,r7, lr} | 86 | push {r2,r3, r4,r5,r6,r7, lr} |
86 | #define sp_DST0 0 /* stack offset of original dst */ | 87 | #define sp_DST0 0 /* stack offset of original dst */ |
88 | #endif | ||
87 | add srclim,len,src @ srclim= eof_src; | 89 | add srclim,len,src @ srclim= eof_src; |
88 | #if 1==SAFE /*{*/ | 90 | #if 1==SAFE /*{*/ |
89 | ldr tmp,[r3] @ len_dst | 91 | ldr tmp,[r3] @ len_dst |
@@ -103,12 +105,17 @@ bad_src_n2e: # return value will be 1 | |||
103 | add src,#1 | 105 | add src,#1 |
104 | #endif /*}*/ | 106 | #endif /*}*/ |
105 | eof_n2e: | 107 | eof_n2e: |
108 | #if 0 | ||
106 | pop {r3,r4} @ r3= orig_dst; r4= plen_dst | 109 | pop {r3,r4} @ r3= orig_dst; r4= plen_dst |
107 | sub src,srclim @ 0 if actual src length equals expected length | 110 | sub src,srclim @ 0 if actual src length equals expected length |
108 | sub dst,r3 @ actual dst length | 111 | sub dst,r3 @ actual dst length |
109 | str dst,[r4] | 112 | str dst,[r4] |
110 | pop {r4,r5,r6,r7 /*,pc*/} | 113 | pop {r4,r5,r6,r7 /*,pc*/} |
111 | pop {r1}; bx r1 @ "pop {,pc}" fails return to ARM mode on ARMv4T | 114 | pop {r1}; bx r1 @ "pop {,pc}" fails return to ARM mode on ARMv4T |
115 | #else | ||
116 | mov r0, #0 | ||
117 | bx r0 /* Branch to 0x0, switch to ARM mode */ | ||
118 | #endif | ||
112 | 119 | ||
113 | get1_n2e: @ In: Carry set [from adding 0x80000000 (1<<31) to itself] | 120 | get1_n2e: @ In: Carry set [from adding 0x80000000 (1<<31) to itself] |
114 | ldrb bits,[src] @ zero-extend next byte | 121 | ldrb bits,[src] @ zero-extend next byte |