hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/rkflash/rk_sftl_arm_v7.S
....@@ -1,7 +1,7 @@
11 /* SPDX-License-Identifier: GPL-2.0 */
22
3
-/* Copyright (c) 2018 Rockchip Electronics Co. Ltd.
4
- * date: 2022-08-15
3
+/* Copyright (c) 2018-2023 Rockchip Electronics Co. Ltd.
4
+ * date: 2023-04-11
55 */
66 .arch armv7-a
77 .eabi_attribute 20, 1
....@@ -14,53 +14,139 @@
1414 .eabi_attribute 34, 1
1515 .eabi_attribute 18, 2
1616 .file "rk_sftl.c"
17
+ .text
1718 .syntax divided
1819 .syntax unified
1920 .global __aeabi_uidiv
2021 .arm
2122 .syntax unified
22
- .text
2323 .align 2
2424 .syntax unified
2525 .arm
2626 .fpu softvfp
2727 .type l2p_addr_tran, %function
2828 l2p_addr_tran:
29
- .fnstart
3029 @ args = 0, pretend = 0, frame = 0
31
- @ frame_needed = 0, uses_anonymous_args = 0
32
- ldr r3, .L4
33
- push {r4, r5, r6, r7, r8, r9, r10, lr}
34
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
35
- mov r8, r1
36
- ldr r6, [r0, #4]
37
- mov r9, r2
38
- ldrh r4, [r3, #8]
39
- ldrh r5, [r3, #10]
30
+ @ frame_needed = 1, uses_anonymous_args = 0
31
+ mov ip, sp
32
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
33
+ sub fp, ip, #4
34
+ push {lr}
35
+ bl __gnu_mcount_nc
36
+ ldr r3, .L3
37
+ mov r7, r1
38
+ mov r8, r2
39
+ ldrh r9, [r3, #8]
40
+ ldrh r6, [r3, #10]
4041 ldrh r3, [r3, #14]
41
- lsr r7, r6, #10
42
- ubfx r6, r6, #0, #10
43
- uxth r0, r7
44
- uxth r7, r7
4542 cmp r3, #4
46
- lsreq r4, r4, #1
47
- lsleq r5, r5, #1
48
- mov r1, r4
49
- uxtheq r5, r5
43
+ lsleq r4, r6, #1
44
+ lsreq r9, r9, #1
45
+ mov r1, r9
46
+ uxtheq r6, r4
47
+ ldr r4, [r0, #4]
48
+ lsr r5, r4, #10
49
+ ubfx r0, r4, #10, #16
5050 bl __aeabi_uidiv
5151 uxth r0, r0
52
- mls r4, r0, r4, r7
53
- mla r4, r5, r4, r6
54
- str r4, [r8]
55
- str r0, [r9]
52
+ uxth r5, r5
53
+ ubfx r4, r4, #0, #10
54
+ mls r5, r0, r9, r5
55
+ mla r4, r6, r5, r4
56
+ str r4, [r7]
57
+ str r0, [r8]
5658 mov r0, #0
57
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
58
-.L5:
59
- .align 2
59
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
6060 .L4:
61
+ .align 2
62
+.L3:
6163 .word .LANCHOR0
62
- .fnend
6364 .size l2p_addr_tran, .-l2p_addr_tran
65
+ .align 2
66
+ .syntax unified
67
+ .arm
68
+ .fpu softvfp
69
+ .type _copy_from_user, %function
70
+_copy_from_user:
71
+ @ args = 0, pretend = 0, frame = 0
72
+ @ frame_needed = 1, uses_anonymous_args = 0
73
+ mov ip, sp
74
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
75
+ sub fp, ip, #4
76
+ mov r3, sp
77
+ bic ip, r3, #8128
78
+ mov r6, r0
79
+ bic ip, ip, #63
80
+ mov r4, r2
81
+ ldr r3, [ip, #8]
82
+ .syntax divided
83
+@ 157 "./include/linux/uaccess.h" 1
84
+ .syntax unified
85
+adds r5, r1, r2; sbcscc r5, r5, r3; movcc r3, #0
86
+@ 0 "" 2
87
+ .arm
88
+ .syntax unified
89
+ cmp r3, #0
90
+ bne .L8
91
+ .syntax divided
92
+@ 89 "./arch/arm/include/asm/domain.h" 1
93
+ mrc p15, 0, r7, c3, c0 @ get domain
94
+@ 0 "" 2
95
+ .arm
96
+ .syntax unified
97
+ bic r3, r7, #12
98
+ orr r3, r3, #4
99
+ .syntax divided
100
+@ 99 "./arch/arm/include/asm/domain.h" 1
101
+ mcr p15, 0, r3, c3, c0 @ set domain
102
+@ 0 "" 2
103
+@ 102 "./arch/arm/include/asm/domain.h" 1
104
+ isb
105
+@ 0 "" 2
106
+ .arm
107
+ .syntax unified
108
+ bl arm_copy_from_user
109
+ mov r5, r0
110
+ .syntax divided
111
+@ 99 "./arch/arm/include/asm/domain.h" 1
112
+ mcr p15, 0, r7, c3, c0 @ set domain
113
+@ 0 "" 2
114
+@ 102 "./arch/arm/include/asm/domain.h" 1
115
+ isb
116
+@ 0 "" 2
117
+ .arm
118
+ .syntax unified
119
+ cmp r0, #0
120
+ beq .L5
121
+.L6:
122
+ sub r4, r4, r5
123
+ mov r2, r5
124
+ add r0, r6, r4
125
+ mov r1, #0
126
+ bl memset
127
+.L5:
128
+ mov r0, r5
129
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
130
+.L8:
131
+ mov r5, r2
132
+ b .L6
133
+ .size _copy_from_user, .-_copy_from_user
134
+ .section .rodata.str1.1,"aMS",%progbits,1
135
+.LC0:
136
+ .ascii "SFTL version: 5.0.59 20221121\000"
137
+.LC1:
138
+ .ascii "\012%s\012\000"
139
+.LC2:
140
+ .ascii "act blk: %x %x %x %x %x %x\012\000"
141
+.LC3:
142
+ .ascii "buf blk: %x %x %x %x %x %x\012\000"
143
+.LC4:
144
+ .ascii "tmp blk: %x %x %x %x %x %x\012\000"
145
+.LC5:
146
+ .ascii "gc blk: %x %x %x %x %x %x\012\000"
147
+.LC6:
148
+ .ascii "free blk: %x %x %x\012\000"
149
+ .text
64150 .align 2
65151 .global ftl_print_sblk_info
66152 .syntax unified
....@@ -68,79 +154,80 @@
68154 .fpu softvfp
69155 .type ftl_print_sblk_info, %function
70156 ftl_print_sblk_info:
71
- .fnstart
72157 @ args = 0, pretend = 0, frame = 0
73
- @ frame_needed = 0, uses_anonymous_args = 0
74
- push {r0, r1, r2, r3, r4, lr}
75
- .save {r4, lr}
76
- .pad #16
77
- ldr r4, .L8
78
- ldr r1, .L8+4
79
- ldr r0, .L8+8
158
+ @ frame_needed = 1, uses_anonymous_args = 0
159
+ mov ip, sp
160
+ push {r4, fp, ip, lr, pc}
161
+ sub fp, ip, #4
162
+ sub sp, sp, #20
163
+ push {lr}
164
+ bl __gnu_mcount_nc
165
+ ldr r4, .L13
166
+ ldr r1, .L13+4
167
+ ldr r0, .L13+8
80168 bl sftl_printk
169
+ ldr r0, .L13+12
81170 ldrh r1, [r4, #24]
82
- ldr ip, [r4, #72]
83
- ldrb r3, [r4, #30] @ zero_extendqisi2
171
+ ldr r2, [r4, #72]
172
+ lsl r3, r1, #1
173
+ ldrh r3, [r2, r3]
174
+ str r3, [sp, #8]
175
+ ldrh r3, [r4, #28]
176
+ str r3, [sp, #4]
177
+ ldrb r3, [r4, #32] @ zero_extendqisi2
84178 ldrh r2, [r4, #26]
85
- lsl r0, r1, #1
86
- ldrh r0, [ip, r0]
87
- str r0, [sp, #8]
88
- ldrh r0, [r4, #28]
89
- str r0, [sp, #4]
90
- ldrb r0, [r4, #32] @ zero_extendqisi2
91
- str r0, [sp]
92
- ldr r0, .L8+12
179
+ str r3, [sp]
180
+ ldrb r3, [r4, #30] @ zero_extendqisi2
93181 bl sftl_printk
94182 ldrh r1, [r4, #76]
95
- ldr ip, [r4, #72]
96
- ldrb r3, [r4, #82] @ zero_extendqisi2
183
+ ldr r2, [r4, #72]
184
+ ldr r0, .L13+16
185
+ lsl r3, r1, #1
186
+ ldrh r3, [r2, r3]
187
+ str r3, [sp, #8]
188
+ ldrh r3, [r4, #80]
189
+ str r3, [sp, #4]
190
+ ldrb r3, [r4, #84] @ zero_extendqisi2
97191 ldrh r2, [r4, #78]
98
- lsl r0, r1, #1
99
- ldrh r0, [ip, r0]
100
- str r0, [sp, #8]
101
- ldrh r0, [r4, #80]
102
- str r0, [sp, #4]
103
- ldrb r0, [r4, #84] @ zero_extendqisi2
104
- str r0, [sp]
105
- ldr r0, .L8+16
192
+ str r3, [sp]
193
+ ldrb r3, [r4, #82] @ zero_extendqisi2
106194 bl sftl_printk
107195 ldrh r1, [r4, #124]
108
- ldr ip, [r4, #72]
109
- ldrb r3, [r4, #130] @ zero_extendqisi2
196
+ ldr r2, [r4, #72]
197
+ ldr r0, .L13+20
198
+ lsl r3, r1, #1
199
+ ldrh r3, [r2, r3]
200
+ str r3, [sp, #8]
201
+ ldrh r3, [r4, #128]
202
+ str r3, [sp, #4]
203
+ ldrb r3, [r4, #132] @ zero_extendqisi2
110204 ldrh r2, [r4, #126]
111
- lsl r0, r1, #1
112
- ldrh r0, [ip, r0]
113
- str r0, [sp, #8]
114
- ldrh r0, [r4, #128]
115
- str r0, [sp, #4]
116
- ldrb r0, [r4, #132] @ zero_extendqisi2
117
- str r0, [sp]
118
- ldr r0, .L8+20
205
+ str r3, [sp]
206
+ ldrb r3, [r4, #130] @ zero_extendqisi2
119207 bl sftl_printk
120208 ldrh r1, [r4, #172]
121
- ldr ip, [r4, #72]
122
- ldrb r3, [r4, #178] @ zero_extendqisi2
209
+ ldr r2, [r4, #72]
210
+ ldr r0, .L13+24
211
+ lsl r3, r1, #1
212
+ ldrh r3, [r2, r3]
213
+ str r3, [sp, #8]
214
+ ldrh r3, [r4, #176]
215
+ str r3, [sp, #4]
216
+ ldrb r3, [r4, #180] @ zero_extendqisi2
123217 ldrh r2, [r4, #174]
124
- lsl r0, r1, #1
125
- ldrh r0, [ip, r0]
126
- str r0, [sp, #8]
127
- ldrh r0, [r4, #176]
128
- str r0, [sp, #4]
129
- ldrb r0, [r4, #180] @ zero_extendqisi2
130
- str r0, [sp]
131
- ldr r0, .L8+24
218
+ str r3, [sp]
219
+ ldrb r3, [r4, #178] @ zero_extendqisi2
132220 bl sftl_printk
133221 ldrh r3, [r4, #220]
134222 ldrh r2, [r4, #222]
135223 ldrh r1, [r4, #224]
136
- ldr r0, .L8+28
137
- add sp, sp, #16
138
- @ sp needed
139
- pop {r4, lr}
140
- b sftl_printk
141
-.L9:
224
+ ldr r0, .L13+28
225
+ bl sftl_printk
226
+ sub sp, fp, #16
227
+ ldmfd sp, {r4, fp, sp, pc}
228
+.L14:
142229 .align 2
143
-.L8:
230
+.L13:
144231 .word .LANCHOR0
145232 .word .LC0
146233 .word .LC1
....@@ -149,7 +236,6 @@
149236 .word .LC4
150237 .word .LC5
151238 .word .LC6
152
- .fnend
153239 .size ftl_print_sblk_info, .-ftl_print_sblk_info
154240 .align 2
155241 .global Ftl_log2
....@@ -158,24 +244,26 @@
158244 .fpu softvfp
159245 .type Ftl_log2, %function
160246 Ftl_log2:
161
- .fnstart
162247 @ args = 0, pretend = 0, frame = 0
163
- @ frame_needed = 0, uses_anonymous_args = 0
164
- @ link register save eliminated.
248
+ @ frame_needed = 1, uses_anonymous_args = 0
249
+ mov ip, sp
250
+ push {fp, ip, lr, pc}
251
+ sub fp, ip, #4
252
+ push {lr}
253
+ bl __gnu_mcount_nc
165254 mov r1, #0
166255 mov r2, #1
167
-.L11:
168
- cmp r2, r0
256
+.L16:
169257 uxth r3, r1
258
+ cmp r2, r0
170259 add r1, r1, #1
171
- bls .L12
260
+ bls .L17
172261 sub r0, r3, #1
173262 uxth r0, r0
174
- bx lr
175
-.L12:
263
+ ldmfd sp, {fp, sp, pc}
264
+.L17:
176265 lsl r2, r2, #1
177
- b .L11
178
- .fnend
266
+ b .L16
179267 .size Ftl_log2, .-Ftl_log2
180268 .align 2
181269 .global FtlPrintInfo
....@@ -184,12 +272,14 @@
184272 .fpu softvfp
185273 .type FtlPrintInfo, %function
186274 FtlPrintInfo:
187
- .fnstart
188275 @ args = 0, pretend = 0, frame = 0
189
- @ frame_needed = 0, uses_anonymous_args = 0
190
- @ link register save eliminated.
191
- bx lr
192
- .fnend
276
+ @ frame_needed = 1, uses_anonymous_args = 0
277
+ mov ip, sp
278
+ push {fp, ip, lr, pc}
279
+ sub fp, ip, #4
280
+ push {lr}
281
+ bl __gnu_mcount_nc
282
+ ldmfd sp, {fp, sp, pc}
193283 .size FtlPrintInfo, .-FtlPrintInfo
194284 .align 2
195285 .global FtlSysBlkNumInit
....@@ -198,11 +288,14 @@
198288 .fpu softvfp
199289 .type FtlSysBlkNumInit, %function
200290 FtlSysBlkNumInit:
201
- .fnstart
202291 @ args = 0, pretend = 0, frame = 0
203
- @ frame_needed = 0, uses_anonymous_args = 0
204
- @ link register save eliminated.
205
- ldr r3, .L15
292
+ @ frame_needed = 1, uses_anonymous_args = 0
293
+ mov ip, sp
294
+ push {fp, ip, lr, pc}
295
+ sub fp, ip, #4
296
+ push {lr}
297
+ bl __gnu_mcount_nc
298
+ ldr r3, .L20
206299 cmp r0, #24
207300 movcc r0, #24
208301 ldrh r2, [r3, #232]
....@@ -211,17 +304,16 @@
211304 mul r2, r0, r2
212305 sub r0, r1, r0
213306 ldr r1, [r3, #248]
214
- strh r0, [r3, #240] @ movhi
215
- mov r0, #0
216307 str r2, [r3, #236]
308
+ strh r0, [r3, #240] @ movhi
217309 sub r2, r1, r2
310
+ mov r0, #0
218311 str r2, [r3, #244]
219
- bx lr
220
-.L16:
312
+ ldmfd sp, {fp, sp, pc}
313
+.L21:
221314 .align 2
222
-.L15:
315
+.L20:
223316 .word .LANCHOR0
224
- .fnend
225317 .size FtlSysBlkNumInit, .-FtlSysBlkNumInit
226318 .global __aeabi_idiv
227319 .align 2
....@@ -231,172 +323,168 @@
231323 .fpu softvfp
232324 .type FtlConstantsInit, %function
233325 FtlConstantsInit:
234
- .fnstart
235326 @ args = 0, pretend = 0, frame = 8
236
- @ frame_needed = 0, uses_anonymous_args = 0
237
- mov r3, r0
238
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
239
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
240
- .pad #12
241
- ldrh ip, [r3, #14]
242
- movw r5, #258
243
- ldr r4, .L32
244
- ldrh r0, [r0]
245
- cmp ip, #4
246
- ldrh r7, [r3, #2]
247
- ldrh lr, [r3, #4]
248
- add r1, r4, #256
249
- ldrh r2, [r3, #6]
250
- strh r0, [r4, #252] @ movhi
251
- strh r7, [r4, #254] @ movhi
252
- strh lr, [r1] @ movhi
253
- strh r2, [r4, #242] @ movhi
254
- strh ip, [r4, r5] @ movhi
255
- bne .L18
256
- lsr r2, r2, #1
257
- strh r2, [r4, #242] @ movhi
258
- mov r2, #8
259
- strh r2, [r4, r5] @ movhi
260
-.L19:
261
- ldr ip, .L32+4
262
- mov r2, #0
263
-.L20:
264
- strb r2, [r2, ip]
265
- add r2, r2, #1
266
- cmp r2, #32
267
- bne .L20
268
- ldr r2, .L32+8
269
- cmp r0, #1
270
- mov ip, #5
271
- ldrh r5, [r4, #242]
272
- ldr r8, .L32+12
273
- mov lr, #0
274
- strh ip, [r2] @ movhi
275
- movw ip, #294
276
- strheq r0, [r2] @ movhi
277
- mov r2, #640
278
- ldrh r0, [r1]
279
- mov r6, r8
280
- strh r2, [r6], #4 @ movhi
281
- movw r2, #298
282
- strh lr, [r4, ip] @ movhi
283
- str r3, [sp, #4]
284
- smulbb r7, r7, r0
285
- smulbb r0, r0, r5
286
- uxth r7, r7
287
- uxth r0, r0
288
- strh r7, [r4, #232] @ movhi
289
- strh r0, [r4, r2] @ movhi
290
- bl Ftl_log2
291
- ldr r3, [sp, #4]
292
- movw r2, #302
293
- strh r0, [r6] @ movhi
294
- mov r6, r8
295
- add r8, r8, #24
296
- ldrh r10, [r3, #12]
297
- strh r10, [r4, r2] @ movhi
298
- movw r2, #306
299
- smulbb r1, r7, r10
300
- strh r10, [r8, #-16] @ movhi
301
- strh r1, [r4, r2] @ movhi
302
- movw r2, #258
303
- ldrh fp, [r4, r2]
304
- mov r0, fp
305
- bl Ftl_log2
306
- lsl r2, fp, #9
307
- ldr r3, [sp, #4]
308
- movw r1, #310
309
- strh r0, [r6, #12]! @ movhi
310
- uxth r2, r2
327
+ @ frame_needed = 1, uses_anonymous_args = 0
328
+ mov ip, sp
329
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
330
+ sub fp, ip, #4
331
+ sub sp, sp, #12
332
+ push {lr}
333
+ bl __gnu_mcount_nc
334
+ ldr r4, .L36
311335 mov r9, r0
312
- mov r0, #5120
313
- strh r2, [r4, r1] @ movhi
314
- lsr r2, r2, #8
315
- mul r1, r10, fp
316
- strh r2, [r8, #-8] @ movhi
317
- ldrh r2, [r3, #20]
318
- movw r3, #314
336
+ ldrh r2, [r0]
337
+ movw lr, #258
338
+ add r1, r4, #256
339
+ ldrh r6, [r0, #2]
340
+ ldrh ip, [r0, #4]
341
+ ldrh r3, [r0, #6]
342
+ ldrh r0, [r0, #14]
343
+ strh r2, [r4, #252] @ movhi
344
+ cmp r0, #4
345
+ strh r6, [r4, #254] @ movhi
346
+ strh ip, [r1] @ movhi
347
+ strh r3, [r4, #242] @ movhi
348
+ strh r0, [r4, lr] @ movhi
349
+ bne .L23
350
+ lsr r3, r3, #1
351
+ strh r3, [r4, #242] @ movhi
352
+ mov r3, #8
353
+ strh r3, [r4, lr] @ movhi
354
+.L24:
355
+ ldr r0, .L36+4
356
+ mov r3, #0
357
+.L25:
358
+ strb r3, [r0], #1
359
+ add r3, r3, #1
360
+ cmp r3, #32
361
+ bne .L25
362
+ movw r3, #294
363
+ ldr r5, .L36+8
364
+ ldrh r7, [r4, #242]
365
+ mov r0, #0
366
+ strh r0, [r4, r3] @ movhi
367
+ mov r3, r5
368
+ ldrh r0, [r1]
369
+ cmp r2, #1
370
+ mov r8, r5
371
+ add r5, r5, #28
372
+ movne r2, #5
373
+ strh r2, [r3], #4 @ movhi
374
+ mov r2, #640
375
+ smulbb r6, r6, r0
376
+ strh r2, [r3] @ movhi
377
+ smulbb r0, r0, r7
378
+ movw r3, #298
379
+ uxth r6, r6
380
+ strh r6, [r4, #232] @ movhi
381
+ uxth r0, r0
382
+ strh r0, [r4, r3] @ movhi
383
+ bl Ftl_log2
384
+ ldrh r2, [r9, #12]
385
+ movw r3, #302
386
+ strh r0, [r5, #-20] @ movhi
387
+ strh r2, [r5, #-16] @ movhi
319388 strh r2, [r4, r3] @ movhi
320
- mul r3, r5, r7
321
- lsl r5, r5, #6
389
+ movw r3, #306
390
+ smulbb r1, r6, r2
391
+ str r2, [fp, #-52]
392
+ strh r1, [r4, r3] @ movhi
393
+ movw r3, #258
394
+ ldrh r1, [r4, r3]
395
+ str r1, [fp, #-48]
396
+ mov r0, r1
397
+ bl Ftl_log2
398
+ ldr r1, [fp, #-48]
399
+ ldr r2, [fp, #-52]
400
+ mov r10, r0
401
+ strh r0, [r8, #16]! @ movhi
402
+ movw r0, #310
403
+ lsl r3, r1, #9
404
+ uxth r3, r3
405
+ strh r3, [r4, r0] @ movhi
406
+ ldrh r0, [r9, #20]
407
+ mul r1, r2, r1
408
+ lsr r3, r3, #8
409
+ strh r3, [r5, #-8] @ movhi
410
+ movw r3, #314
411
+ strh r0, [r4, r3] @ movhi
412
+ mul r3, r7, r6
322413 str r3, [r4, #248]
323
- mul r3, fp, r3
324
- mul r3, r10, r3
414
+ mov r0, #5120
415
+ lsl r7, r7, #6
416
+ mul r3, r1, r3
325417 asr r3, r3, #11
326418 str r3, [r4, #316]
327419 bl __aeabi_idiv
328
- uxth r0, r0
329
- movw r2, #322
330
- mov r1, r7
331420 cmp r0, #4
332
- movls r3, #4
333
- strhhi r0, [r8] @ movhi
334
- strhls r3, [r8] @ movhi
421
+ movw r2, #322
422
+ strhgt r0, [r5] @ movhi
423
+ movle r3, #4
424
+ strhle r3, [r5] @ movhi
335425 mov r3, #640
336
- asr r3, r3, r9
337
- add r9, r9, #9
338
- asr r5, r5, r9
339
- ldrh r0, [r8]
426
+ mov r1, r6
427
+ asr r3, r3, r10
428
+ add r10, r10, #9
340429 add r3, r3, #2
341430 strh r3, [r4, r2] @ movhi
342
- ldr r3, .L32+16
343
- strh r5, [r3] @ movhi
344
- uxth r5, r5
345
- mul r3, r7, r5
346
- add r5, r5, #8
431
+ ldr r3, .L36+12
432
+ asr r7, r7, r10
433
+ ldrh r0, [r5]
434
+ strh r7, [r3] @ movhi
435
+ uxth r7, r7
436
+ mul r3, r7, r6
347437 str r3, [r4, #328]
348438 bl __aeabi_uidiv
349
- uxtah r0, r5, r0
350
- cmp r7, #1
351
- addeq r0, r0, #4
352
- str r0, [r4, #228]
439
+ cmp r6, #1
440
+ uxtah r7, r7, r0
441
+ addne r7, r7, #8
442
+ addeq r7, r7, #12
443
+ str r7, [r4, #228]
353444 ldrh r0, [r4, #228]
354445 bl FtlSysBlkNumInit
355446 ldr r3, [r4, #228]
356
- mov r0, #0
357
- str r0, [r4, #340]
358447 str r3, [r4, #332]
359
- ldr r3, [r4, #244]
360
- lsl r2, r3, #2
361448 movw r3, #302
449
+ ldr r2, [r4, #244]
450
+ mov r0, #0
362451 ldrh r3, [r4, r3]
363
- mul r3, r3, r2
364
- ldrh r2, [r6]
452
+ str r0, [r4, #340]
453
+ mul r3, r2, r3
454
+ ldrh r2, [r8]
365455 add r2, r2, #9
456
+ lsl r3, r3, #2
366457 lsr r3, r3, r2
367
- ldr r2, .L32+20
458
+ ldr r2, .L36+16
368459 add r3, r3, #2
369460 strh r3, [r2] @ movhi
370
- mov r2, #32
371461 movw r3, #338
462
+ mov r2, #32
372463 strh r2, [r4, r3] @ movhi
373
- ldrh r3, [r8]
464
+ ldrh r3, [r5]
374465 add r3, r3, #3
375
- strh r3, [r8] @ movhi
466
+ strh r3, [r5] @ movhi
376467 ldr r3, [r4, #328]
377468 add r3, r3, #3
378469 str r3, [r4, #328]
379
- add sp, sp, #12
380
- @ sp needed
381
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
382
-.L18:
383
- cmp lr, #1
384
- cmpeq ip, #8
385
- lsreq r2, r2, #1
386
- strheq r2, [r4, #242] @ movhi
387
- moveq r2, #2
388
- strheq r2, [r1] @ movhi
389
- b .L19
390
-.L33:
470
+ sub sp, fp, #40
471
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
472
+.L23:
473
+ cmp r0, #8
474
+ cmpeq ip, #1
475
+ lsreq r3, r3, #1
476
+ strheq r3, [r4, #242] @ movhi
477
+ moveq r3, #2
478
+ strheq r3, [r1] @ movhi
479
+ b .L24
480
+.L37:
391481 .align 2
392
-.L32:
482
+.L36:
393483 .word .LANCHOR0
394484 .word .LANCHOR0+260
395485 .word .LANCHOR0+292
396
- .word .LANCHOR0+296
397486 .word .LANCHOR0+324
398487 .word .LANCHOR0+336
399
- .fnend
400488 .size FtlConstantsInit, .-FtlConstantsInit
401489 .align 2
402490 .global IsBlkInVendorPart
....@@ -405,36 +493,38 @@
405493 .fpu softvfp
406494 .type IsBlkInVendorPart, %function
407495 IsBlkInVendorPart:
408
- .fnstart
409496 @ args = 0, pretend = 0, frame = 0
410
- @ frame_needed = 0, uses_anonymous_args = 0
411
- @ link register save eliminated.
412
- ldr r2, .L41
413
- add r3, r2, #344
497
+ @ frame_needed = 1, uses_anonymous_args = 0
498
+ mov ip, sp
499
+ push {fp, ip, lr, pc}
500
+ sub fp, ip, #4
501
+ push {lr}
502
+ bl __gnu_mcount_nc
503
+ ldr r3, .L44
504
+ mov r1, r0
505
+ add r2, r3, #344
506
+ ldrh r0, [r2]
507
+ cmp r0, #0
508
+ ldmfdeq sp, {fp, sp, pc}
509
+ ldr r2, [r3, #348]
510
+ add r3, r3, #320
414511 ldrh r3, [r3]
415
- cmp r3, #0
416
- beq .L40
417
- ldr r3, [r2, #348]
418
- add r2, r2, #320
419
- ldrh r2, [r2]
420
- add r2, r3, r2, lsl #1
421
-.L36:
422
- cmp r3, r2
423
- bne .L37
512
+ add r3, r2, r3, lsl #1
424513 .L40:
514
+ cmp r2, r3
515
+ bne .L41
425516 mov r0, #0
426
- bx lr
427
-.L37:
428
- ldrh r1, [r3], #2
429
- cmp r0, r1
430
- bne .L36
431
- mov r0, #1
432
- bx lr
433
-.L42:
434
- .align 2
517
+ ldmfd sp, {fp, sp, pc}
435518 .L41:
519
+ ldrh r0, [r2], #2
520
+ cmp r1, r0
521
+ bne .L40
522
+ mov r0, #1
523
+ ldmfd sp, {fp, sp, pc}
524
+.L45:
525
+ .align 2
526
+.L44:
436527 .word .LANCHOR0
437
- .fnend
438528 .size IsBlkInVendorPart, .-IsBlkInVendorPart
439529 .align 2
440530 .global FtlCacheWriteBack
....@@ -443,13 +533,15 @@
443533 .fpu softvfp
444534 .type FtlCacheWriteBack, %function
445535 FtlCacheWriteBack:
446
- .fnstart
447536 @ args = 0, pretend = 0, frame = 0
448
- @ frame_needed = 0, uses_anonymous_args = 0
449
- @ link register save eliminated.
537
+ @ frame_needed = 1, uses_anonymous_args = 0
538
+ mov ip, sp
539
+ push {fp, ip, lr, pc}
540
+ sub fp, ip, #4
541
+ push {lr}
542
+ bl __gnu_mcount_nc
450543 mov r0, #0
451
- bx lr
452
- .fnend
544
+ ldmfd sp, {fp, sp, pc}
453545 .size FtlCacheWriteBack, .-FtlCacheWriteBack
454546 .align 2
455547 .global sftl_get_density
....@@ -458,20 +550,27 @@
458550 .fpu softvfp
459551 .type sftl_get_density, %function
460552 sftl_get_density:
461
- .fnstart
462553 @ args = 0, pretend = 0, frame = 0
463
- @ frame_needed = 0, uses_anonymous_args = 0
464
- @ link register save eliminated.
465
- ldr r3, .L45
554
+ @ frame_needed = 1, uses_anonymous_args = 0
555
+ mov ip, sp
556
+ push {fp, ip, lr, pc}
557
+ sub fp, ip, #4
558
+ push {lr}
559
+ bl __gnu_mcount_nc
560
+ ldr r3, .L48
466561 ldr r0, [r3, #340]
467
- bx lr
468
-.L46:
562
+ ldmfd sp, {fp, sp, pc}
563
+.L49:
469564 .align 2
470
-.L45:
565
+.L48:
471566 .word .LANCHOR0
472
- .fnend
473567 .size sftl_get_density, .-sftl_get_density
474568 .global __aeabi_uidivmod
569
+ .section .rodata.str1.1
570
+.LC7:
571
+ .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
572
+ .ascii "\000"
573
+ .text
475574 .align 2
476575 .global FtlBbmMapBadBlock
477576 .syntax unified
....@@ -479,14 +578,16 @@
479578 .fpu softvfp
480579 .type FtlBbmMapBadBlock, %function
481580 FtlBbmMapBadBlock:
482
- .fnstart
483581 @ args = 0, pretend = 0, frame = 0
484
- @ frame_needed = 0, uses_anonymous_args = 0
485
- push {r0, r1, r2, r4, r5, r6, r7, lr}
486
- .save {r4, r5, r6, r7, lr}
487
- .pad #12
582
+ @ frame_needed = 1, uses_anonymous_args = 0
583
+ mov ip, sp
584
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
585
+ sub fp, ip, #4
586
+ sub sp, sp, #8
587
+ push {lr}
588
+ bl __gnu_mcount_nc
589
+ ldr r4, .L51
488590 movw r3, #298
489
- ldr r4, .L49
490591 mov r5, r0
491592 ldrh r7, [r4, r3]
492593 mov r1, r7
....@@ -495,34 +596,32 @@
495596 mov r1, r7
496597 mov r0, r5
497598 bl __aeabi_uidivmod
498
- add r2, r4, r6, lsl #2
499
- uxth r3, r1
500
- ldr r2, [r2, #380]
501
- lsr r1, r3, #5
502
- and ip, r3, #31
503
- mov lr, #1
599
+ add r3, r4, r6, lsl #2
600
+ ubfx r0, r1, #5, #11
601
+ and ip, r1, #31
504602 add r4, r4, #352
505
- ldr r0, [r2, r1, lsl #2]
506
- orr r0, r0, lr, lsl ip
507
- str r0, [r2, r1, lsl #2]
508
- mov r2, r6
509
- str r0, [sp]
603
+ mov lr, #1
604
+ ldr r3, [r3, #380]
605
+ ldr r2, [r3, r0, lsl #2]
606
+ orr r2, r2, lr, lsl ip
607
+ str r2, [r3, r0, lsl #2]
608
+ uxth r3, r1
609
+ ldr r0, .L51+4
510610 mov r1, r5
511
- ldr r0, .L49+4
611
+ str r2, [sp]
612
+ mov r2, r6
512613 bl sftl_printk
513614 ldrh r3, [r4, #6]
514615 mov r0, #0
515616 add r3, r3, #1
516617 strh r3, [r4, #6] @ movhi
517
- add sp, sp, #12
518
- @ sp needed
519
- pop {r4, r5, r6, r7, pc}
520
-.L50:
618
+ sub sp, fp, #28
619
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
620
+.L52:
521621 .align 2
522
-.L49:
622
+.L51:
523623 .word .LANCHOR0
524624 .word .LC7
525
- .fnend
526625 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
527626 .align 2
528627 .global FtlBbmIsBadBlock
....@@ -531,35 +630,36 @@
531630 .fpu softvfp
532631 .type FtlBbmIsBadBlock, %function
533632 FtlBbmIsBadBlock:
534
- .fnstart
535633 @ args = 0, pretend = 0, frame = 0
536
- @ frame_needed = 0, uses_anonymous_args = 0
537
- push {r4, r5, r6, r7, r8, lr}
538
- .save {r4, r5, r6, r7, r8, lr}
634
+ @ frame_needed = 1, uses_anonymous_args = 0
635
+ mov ip, sp
636
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
637
+ sub fp, ip, #4
638
+ push {lr}
639
+ bl __gnu_mcount_nc
640
+ ldr r5, .L54
539641 movw r3, #298
540
- ldr r5, .L53
541
- mov r7, r0
542
- ldrh r6, [r5, r3]
543
- mov r1, r6
642
+ mov r6, r0
643
+ ldrh r7, [r5, r3]
644
+ mov r1, r7
544645 bl __aeabi_uidivmod
545
- mov r0, r7
646
+ mov r0, r6
546647 uxth r4, r1
547
- mov r1, r6
648
+ mov r1, r7
548649 bl __aeabi_uidiv
549650 uxth r0, r0
550651 lsr r2, r4, #5
551
- add r5, r5, r0, lsl #2
552652 and r4, r4, #31
653
+ add r5, r5, r0, lsl #2
553654 ldr r3, [r5, #380]
554655 ldr r0, [r3, r2, lsl #2]
555656 lsr r0, r0, r4
556657 and r0, r0, #1
557
- pop {r4, r5, r6, r7, r8, pc}
558
-.L54:
658
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
659
+.L55:
559660 .align 2
560
-.L53:
661
+.L54:
561662 .word .LANCHOR0
562
- .fnend
563663 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
564664 .align 2
565665 .global FtlBbtInfoPrint
....@@ -568,12 +668,14 @@
568668 .fpu softvfp
569669 .type FtlBbtInfoPrint, %function
570670 FtlBbtInfoPrint:
571
- .fnstart
572671 @ args = 0, pretend = 0, frame = 0
573
- @ frame_needed = 0, uses_anonymous_args = 0
574
- @ link register save eliminated.
575
- bx lr
576
- .fnend
672
+ @ frame_needed = 1, uses_anonymous_args = 0
673
+ mov ip, sp
674
+ push {fp, ip, lr, pc}
675
+ sub fp, ip, #4
676
+ push {lr}
677
+ bl __gnu_mcount_nc
678
+ ldmfd sp, {fp, sp, pc}
577679 .size FtlBbtInfoPrint, .-FtlBbtInfoPrint
578680 .align 2
579681 .global FtlBbtCalcTotleCnt
....@@ -582,36 +684,37 @@
582684 .fpu softvfp
583685 .type FtlBbtCalcTotleCnt, %function
584686 FtlBbtCalcTotleCnt:
585
- .fnstart
586687 @ args = 0, pretend = 0, frame = 0
587
- @ frame_needed = 0, uses_anonymous_args = 0
688
+ @ frame_needed = 1, uses_anonymous_args = 0
689
+ mov ip, sp
690
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
691
+ sub fp, ip, #4
692
+ push {lr}
693
+ bl __gnu_mcount_nc
588694 ldr r3, .L64
589695 movw r2, #298
590
- push {r4, r5, r6, lr}
591
- .save {r4, r5, r6, lr}
592696 mov r5, #0
593697 mov r4, r5
594
- ldrh r2, [r3, r2]
595
- ldrh r6, [r3, #254]
596
- mul r6, r6, r2
597
-.L57:
698
+ ldrh r6, [r3, r2]
699
+ ldrh r3, [r3, #254]
700
+ mul r6, r3, r6
701
+.L58:
598702 uxth r0, r5
599703 cmp r0, r6
600
- blt .L59
704
+ blt .L60
601705 mov r0, r4
602
- pop {r4, r5, r6, pc}
603
-.L59:
706
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
707
+.L60:
604708 bl FtlBbmIsBadBlock
605709 cmp r0, #0
606
- add r5, r5, #1
607710 addne r4, r4, #1
711
+ add r5, r5, #1
608712 uxthne r4, r4
609
- b .L57
713
+ b .L58
610714 .L65:
611715 .align 2
612716 .L64:
613717 .word .LANCHOR0
614
- .fnend
615718 .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
616719 .align 2
617720 .global V2P_block
....@@ -620,34 +723,35 @@
620723 .fpu softvfp
621724 .type V2P_block, %function
622725 V2P_block:
623
- .fnstart
624726 @ args = 0, pretend = 0, frame = 0
625
- @ frame_needed = 0, uses_anonymous_args = 0
626
- push {r4, r5, r6, r7, r8, lr}
627
- .save {r4, r5, r6, r7, r8, lr}
628
- mov r5, r1
629
- ldr r4, .L68
630
- mov r7, r0
631
- add r3, r4, #256
632
- ldrh r6, [r3]
633
- mov r1, r6
727
+ @ frame_needed = 1, uses_anonymous_args = 0
728
+ mov ip, sp
729
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
730
+ sub fp, ip, #4
731
+ push {lr}
732
+ bl __gnu_mcount_nc
733
+ ldr r8, .L67
734
+ mov r4, r1
735
+ mov r6, r0
736
+ add r3, r8, #256
737
+ ldrh r7, [r3]
738
+ mov r1, r7
634739 bl __aeabi_uidiv
635740 movw r3, #298
636
- smulbb r5, r6, r5
637
- ldrh r4, [r4, r3]
638
- mov r1, r6
639
- smulbb r4, r4, r0
640
- mov r0, r7
741
+ smulbb r4, r7, r4
742
+ mov r1, r7
743
+ ldrh r5, [r8, r3]
744
+ smulbb r5, r5, r0
745
+ mov r0, r6
641746 bl __aeabi_uidivmod
642
- add r0, r5, r1
643
- add r0, r4, r0
644
- uxth r0, r0
645
- pop {r4, r5, r6, r7, r8, pc}
646
-.L69:
647
- .align 2
747
+ add r4, r4, r1
748
+ add r4, r5, r4
749
+ uxth r0, r4
750
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
648751 .L68:
752
+ .align 2
753
+.L67:
649754 .word .LANCHOR0
650
- .fnend
651755 .size V2P_block, .-V2P_block
652756 .align 2
653757 .global P2V_plane
....@@ -656,30 +760,31 @@
656760 .fpu softvfp
657761 .type P2V_plane, %function
658762 P2V_plane:
659
- .fnstart
660763 @ args = 0, pretend = 0, frame = 0
661
- @ frame_needed = 0, uses_anonymous_args = 0
662
- ldr r3, .L72
663
- push {r4, r5, r6, lr}
664
- .save {r4, r5, r6, lr}
665
- mov r6, r0
764
+ @ frame_needed = 1, uses_anonymous_args = 0
765
+ mov ip, sp
766
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
767
+ sub fp, ip, #4
768
+ push {lr}
769
+ bl __gnu_mcount_nc
770
+ ldr r3, .L70
771
+ mov r5, r0
666772 add r2, r3, #256
667
- ldrh r5, [r2]
773
+ ldrh r6, [r2]
668774 movw r2, #298
669775 ldrh r1, [r3, r2]
670776 bl __aeabi_uidiv
671
- mov r1, r5
672
- smulbb r4, r0, r5
673
- mov r0, r6
777
+ mov r1, r6
778
+ smulbb r4, r0, r6
779
+ mov r0, r5
674780 bl __aeabi_uidivmod
675
- add r1, r4, r1
676
- uxth r0, r1
677
- pop {r4, r5, r6, pc}
678
-.L73:
781
+ add r0, r4, r1
782
+ uxth r0, r0
783
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
784
+.L71:
679785 .align 2
680
-.L72:
786
+.L70:
681787 .word .LANCHOR0
682
- .fnend
683788 .size P2V_plane, .-P2V_plane
684789 .align 2
685790 .global P2V_block_in_plane
....@@ -688,26 +793,28 @@
688793 .fpu softvfp
689794 .type P2V_block_in_plane, %function
690795 P2V_block_in_plane:
691
- .fnstart
692796 @ args = 0, pretend = 0, frame = 0
693
- @ frame_needed = 0, uses_anonymous_args = 0
694
- push {r4, lr}
695
- .save {r4, lr}
797
+ @ frame_needed = 1, uses_anonymous_args = 0
798
+ mov ip, sp
799
+ push {r4, r5, fp, ip, lr, pc}
800
+ sub fp, ip, #4
801
+ push {lr}
802
+ bl __gnu_mcount_nc
803
+ ldr r4, .L73
696804 movw r3, #298
697
- ldr r4, .L76
698805 ldrh r1, [r4, r3]
699806 add r4, r4, #256
700807 bl __aeabi_uidivmod
701
- uxth r0, r1
808
+ mov r0, r1
702809 ldrh r1, [r4]
810
+ uxth r0, r0
703811 bl __aeabi_uidiv
704812 uxth r0, r0
705
- pop {r4, pc}
706
-.L77:
813
+ ldmfd sp, {r4, r5, fp, sp, pc}
814
+.L74:
707815 .align 2
708
-.L76:
816
+.L73:
709817 .word .LANCHOR0
710
- .fnend
711818 .size P2V_block_in_plane, .-P2V_block_in_plane
712819 .align 2
713820 .global ftl_cmp_data_ver
....@@ -716,24 +823,26 @@
716823 .fpu softvfp
717824 .type ftl_cmp_data_ver, %function
718825 ftl_cmp_data_ver:
719
- .fnstart
720826 @ args = 0, pretend = 0, frame = 0
721
- @ frame_needed = 0, uses_anonymous_args = 0
722
- @ link register save eliminated.
827
+ @ frame_needed = 1, uses_anonymous_args = 0
828
+ mov ip, sp
829
+ push {fp, ip, lr, pc}
830
+ sub fp, ip, #4
831
+ push {lr}
832
+ bl __gnu_mcount_nc
723833 cmp r0, r1
724
- bls .L79
834
+ bls .L76
725835 sub r0, r0, r1
726836 cmp r0, #-2147483648
727837 movhi r0, #0
728838 movls r0, #1
729
- bx lr
730
-.L79:
731
- sub r0, r1, r0
732
- cmp r0, #-2147483648
839
+ ldmfd sp, {fp, sp, pc}
840
+.L76:
841
+ sub r1, r1, r0
842
+ cmp r1, #-2147483648
733843 movls r0, #0
734844 movhi r0, #1
735
- bx lr
736
- .fnend
845
+ ldmfd sp, {fp, sp, pc}
737846 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver
738847 .align 2
739848 .global FtlFreeSysBlkQueueEmpty
....@@ -742,20 +851,22 @@
742851 .fpu softvfp
743852 .type FtlFreeSysBlkQueueEmpty, %function
744853 FtlFreeSysBlkQueueEmpty:
745
- .fnstart
746854 @ args = 0, pretend = 0, frame = 0
747
- @ frame_needed = 0, uses_anonymous_args = 0
748
- @ link register save eliminated.
749
- ldr r3, .L82
855
+ @ frame_needed = 1, uses_anonymous_args = 0
856
+ mov ip, sp
857
+ push {fp, ip, lr, pc}
858
+ sub fp, ip, #4
859
+ push {lr}
860
+ bl __gnu_mcount_nc
861
+ ldr r3, .L79
750862 ldrh r0, [r3, #6]
751863 clz r0, r0
752864 lsr r0, r0, #5
753
- bx lr
754
-.L83:
865
+ ldmfd sp, {fp, sp, pc}
866
+.L80:
755867 .align 2
756
-.L82:
868
+.L79:
757869 .word .LANCHOR0+412
758
- .fnend
759870 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
760871 .align 2
761872 .global FtlFreeSysBlkQueueFull
....@@ -764,21 +875,23 @@
764875 .fpu softvfp
765876 .type FtlFreeSysBlkQueueFull, %function
766877 FtlFreeSysBlkQueueFull:
767
- .fnstart
768878 @ args = 0, pretend = 0, frame = 0
769
- @ frame_needed = 0, uses_anonymous_args = 0
770
- @ link register save eliminated.
771
- ldr r3, .L85
879
+ @ frame_needed = 1, uses_anonymous_args = 0
880
+ mov ip, sp
881
+ push {fp, ip, lr, pc}
882
+ sub fp, ip, #4
883
+ push {lr}
884
+ bl __gnu_mcount_nc
885
+ ldr r3, .L82
772886 ldrh r0, [r3, #6]
773887 sub r0, r0, #1024
774888 clz r0, r0
775889 lsr r0, r0, #5
776
- bx lr
777
-.L86:
890
+ ldmfd sp, {fp, sp, pc}
891
+.L83:
778892 .align 2
779
-.L85:
893
+.L82:
780894 .word .LANCHOR0+412
781
- .fnend
782895 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
783896 .align 2
784897 .global FtlFreeSysBLkSort
....@@ -787,48 +900,49 @@
787900 .fpu softvfp
788901 .type FtlFreeSysBLkSort, %function
789902 FtlFreeSysBLkSort:
790
- .fnstart
791903 @ args = 0, pretend = 0, frame = 0
792
- @ frame_needed = 0, uses_anonymous_args = 0
793
- ldr r3, .L100
904
+ @ frame_needed = 1, uses_anonymous_args = 0
905
+ mov ip, sp
906
+ push {r4, r5, fp, ip, lr, pc}
907
+ sub fp, ip, #4
908
+ push {lr}
909
+ bl __gnu_mcount_nc
910
+ ldr r3, .L93
794911 ldrh r2, [r3, #6]
795912 cmp r2, #0
796
- bxeq lr
797
- ldr r2, .L100+4
913
+ ldmfdeq sp, {r4, r5, fp, sp, pc}
914
+ ldr r2, .L93+4
798915 mov r0, #0
799
- push {r4, lr}
800
- .save {r4, lr}
801
- mov r4, r0
802916 ldrh r1, [r3, #2]
803
- ldrh lr, [r2, #28]
917
+ mov lr, r0
918
+ ldrh ip, [r2, #28]
804919 ldrh r2, [r3, #4]
805
- and lr, lr, #31
806
-.L89:
807
- uxth ip, r0
808
- add r0, r0, #1
809
- cmp lr, ip
810
- bgt .L90
811
- cmp r4, #0
920
+ and ip, ip, #31
921
+.L87:
922
+ uxth r4, r0
923
+ cmp ip, r4
924
+ bhi .L88
925
+ cmp lr, #0
812926 strhne r1, [r3, #2] @ movhi
813927 strhne r2, [r3, #4] @ movhi
814
- pop {r4, pc}
815
-.L90:
816
- add ip, r3, r1, lsl #1
928
+ ldmfd sp, {r4, r5, fp, sp, pc}
929
+.L88:
930
+ add lr, r3, r1, lsl #1
817931 add r1, r1, #1
932
+ add r0, r0, #1
818933 ubfx r1, r1, #0, #10
819
- ldrh r4, [ip, #8]
820
- add ip, r3, r2, lsl #1
821
- strh r4, [ip, #8] @ movhi
822
- mov r4, #1
823
- add r2, r2, r4
934
+ ldrh r4, [lr, #8]
935
+ add lr, r3, r2, lsl #1
936
+ add r2, r2, #1
937
+ strh r4, [lr, #8] @ movhi
824938 ubfx r2, r2, #0, #10
825
- b .L89
826
-.L101:
939
+ mov lr, #1
940
+ b .L87
941
+.L94:
827942 .align 2
828
-.L100:
943
+.L93:
829944 .word .LANCHOR0+412
830945 .word .LANCHOR0+2468
831
- .fnend
832946 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
833947 .align 2
834948 .global IsInFreeQueue
....@@ -837,42 +951,41 @@
837951 .fpu softvfp
838952 .type IsInFreeQueue, %function
839953 IsInFreeQueue:
840
- .fnstart
841954 @ args = 0, pretend = 0, frame = 0
842
- @ frame_needed = 0, uses_anonymous_args = 0
843
- ldr r3, .L112
844
- ldrh ip, [r3, #6]
955
+ @ frame_needed = 1, uses_anonymous_args = 0
956
+ mov ip, sp
957
+ push {fp, ip, lr, pc}
958
+ sub fp, ip, #4
959
+ push {lr}
960
+ bl __gnu_mcount_nc
961
+ ldr r1, .L101
962
+ ldrh ip, [r1, #6]
845963 cmp ip, #1024
846
- beq .L106
847
- str lr, [sp, #-4]!
848
- .save {lr}
849
- mov r1, #0
850
- ldrh lr, [r3, #2]
851
-.L104:
852
- cmp r1, ip
853
- bcc .L105
964
+ movne r2, #0
965
+ ldrhne lr, [r1, #2]
966
+ bne .L97
967
+.L99:
854968 mov r0, #0
855
- ldr pc, [sp], #4
856
-.L105:
857
- add r2, r1, lr
858
- ubfx r2, r2, #0, #10
859
- add r2, r3, r2, lsl #1
860
- ldrh r2, [r2, #8]
861
- cmp r2, r0
862
- beq .L107
863
- add r1, r1, #1
864
- b .L104
865
-.L106:
866
- mov r0, #0
867
- bx lr
868
-.L107:
969
+ ldmfd sp, {fp, sp, pc}
970
+.L98:
971
+ add r3, lr, r2
972
+ ubfx r3, r3, #0, #10
973
+ add r3, r1, r3, lsl #1
974
+ ldrh r3, [r3, #8]
975
+ cmp r3, r0
976
+ beq .L100
977
+ add r2, r2, #1
978
+.L97:
979
+ cmp ip, r2
980
+ bhi .L98
981
+ b .L99
982
+.L100:
869983 mov r0, #1
870
- ldr pc, [sp], #4
871
-.L113:
984
+ ldmfd sp, {fp, sp, pc}
985
+.L102:
872986 .align 2
873
-.L112:
987
+.L101:
874988 .word .LANCHOR0+412
875
- .fnend
876989 .size IsInFreeQueue, .-IsInFreeQueue
877990 .align 2
878991 .global insert_data_list
....@@ -881,101 +994,105 @@
881994 .fpu softvfp
882995 .type insert_data_list, %function
883996 insert_data_list:
884
- .fnstart
885997 @ args = 0, pretend = 0, frame = 8
886
- @ frame_needed = 0, uses_anonymous_args = 0
887
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
888
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
889
- .pad #12
890
- ldr r2, .L129
891
- ldrh r3, [r2, #240]
998
+ @ frame_needed = 1, uses_anonymous_args = 0
999
+ mov ip, sp
1000
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
1001
+ sub fp, ip, #4
1002
+ sub sp, sp, #12
1003
+ push {lr}
1004
+ bl __gnu_mcount_nc
1005
+ ldr r4, .L117
1006
+ ldrh r3, [r4, #240]
8921007 cmp r3, r0
893
- bls .L116
894
- mov r4, #6
895
- ldr r7, [r2, #2516]
896
- mul r4, r4, r0
897
- mvn lr, #0
898
- add ip, r7, r4
899
- strh lr, [ip, #2] @ movhi
900
- strh lr, [r7, r4] @ movhi
901
- ldr r3, [r2, #2520]
902
- cmp r3, #0
903
- streq ip, [r2, #2520]
904
- beq .L116
905
- ldr r9, [r2, #72]
906
- mov r1, r2
907
- lsl r2, r0, #1
908
- ldr r8, [r1, #2516]
909
- movw r10, #65535
910
- ldrh r5, [r9, r2]
911
- ldrh r2, [ip, #4]
1008
+ bls .L105
1009
+ mov lr, #6
1010
+ ldr r5, [r4, #2516]
1011
+ mvn ip, #0
1012
+ mul lr, lr, r0
1013
+ add r1, r5, lr
1014
+ strh ip, [r1, #2] @ movhi
1015
+ strh ip, [r5, lr] @ movhi
1016
+ ldr r2, [r4, #2520]
9121017 cmp r2, #0
913
- mulne lr, r2, r5
914
- sub r2, r3, r8
915
- asr r5, r2, #1
916
- ldr r2, .L129+4
917
- mul r2, r2, r5
918
- ldrh r5, [r1, #240]
919
- str r5, [sp, #4]
920
- mov r5, #0
921
- uxth r2, r2
922
-.L122:
923
- ldr r6, [sp, #4]
924
- add r5, r5, #1
925
- uxth r5, r5
926
- cmp r5, r6
927
- movls r6, #0
928
- movhi r6, #1
929
- cmp r0, r2
930
- orreq r6, r6, #1
1018
+ streq r1, [r4, #2520]
1019
+ beq .L105
1020
+ ldr r8, [r4, #72]
1021
+ lsl r3, r0, #1
1022
+ ldr r7, [r4, #2516]
1023
+ movw r10, #65535
1024
+ ldrh r4, [r4, #240]
1025
+ ldrh r6, [r8, r3]
1026
+ ldrh r3, [r1, #4]
1027
+ str r4, [fp, #-48]
1028
+ mov r4, #0
1029
+ cmp r3, #0
1030
+ mulne ip, r3, r6
1031
+ sub r3, r2, r7
1032
+ ldr r6, .L117+4
1033
+ asr r3, r3, #1
1034
+ mul r3, r6, r3
1035
+ uxth r3, r3
1036
+.L111:
1037
+ sub r6, r0, r3
1038
+ add r4, r4, #1
1039
+ clz r6, r6
1040
+ ldr r9, [fp, #-48]
1041
+ uxth r4, r4
1042
+ lsr r6, r6, #5
1043
+ cmp r4, r9
1044
+ orrhi r6, r6, #1
9311045 cmp r6, #0
932
- bne .L116
933
- ldrh r6, [r3, #4]
934
- cmp r6, #0
935
- beq .L120
936
- lsl fp, r2, #1
937
- ldrh fp, [r9, fp]
938
- mul r6, r6, fp
939
- cmp r6, lr
940
- bcs .L120
941
- ldrh r6, [r3]
1046
+ bne .L105
1047
+ ldrh r9, [r2, #4]
1048
+ cmp r9, #0
1049
+ beq .L109
1050
+ lsl r6, r3, #1
1051
+ ldrh r6, [r8, r6]
1052
+ mul r6, r9, r6
1053
+ cmp r6, ip
1054
+ bcs .L109
1055
+ ldrh r6, [r2]
9421056 cmp r6, r10
943
- bne .L121
944
- strh r2, [ip, #2] @ movhi
945
- strh r0, [r3] @ movhi
946
- str ip, [r1, #2524]
947
-.L116:
1057
+ bne .L110
1058
+ strh r3, [r1, #2] @ movhi
1059
+ ldr r3, .L117
1060
+ strh r0, [r2] @ movhi
1061
+ str r1, [r3, #2524]
1062
+.L105:
9481063 mov r0, #0
949
- add sp, sp, #12
950
- @ sp needed
951
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
952
-.L121:
1064
+ sub sp, fp, #40
1065
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
1066
+.L110:
9531067 mov r3, #6
954
- mov r2, r6
955
- mla r3, r3, r6, r8
956
- b .L122
957
-.L120:
958
- strh r2, [r7, r4] @ movhi
959
- ldrh r2, [r3, #2]
960
- strh r2, [ip, #2] @ movhi
961
- ldr r2, [r1, #2520]
962
- cmp r3, r2
963
- ldrhne ip, [r3, #2]
964
- movne r2, #6
965
- ldrne r1, [r1, #2516]
966
- strheq r0, [r3, #2] @ movhi
967
- streq ip, [r1, #2520]
968
- mulne r2, r2, ip
969
- strhne r0, [r1, r2] @ movhi
970
- strhne r0, [r3, #2] @ movhi
971
- b .L116
972
-.L130:
1068
+ mla r2, r3, r6, r7
1069
+ mov r3, r6
1070
+ b .L111
1071
+.L109:
1072
+ strh r3, [r5, lr] @ movhi
1073
+ ldr ip, .L117
1074
+ ldrh r3, [r2, #2]
1075
+ strh r3, [r1, #2] @ movhi
1076
+ ldr lr, [ip, #2520]
1077
+ cmp r2, lr
1078
+ strheq r0, [r2, #2] @ movhi
1079
+ streq r1, [ip, #2520]
1080
+ ldrne r1, [ip, #2516]
1081
+ movne ip, #6
1082
+ mulne r3, ip, r3
1083
+ strhne r0, [r1, r3] @ movhi
1084
+ strhne r0, [r2, #2] @ movhi
1085
+ b .L105
1086
+.L118:
9731087 .align 2
974
-.L129:
1088
+.L117:
9751089 .word .LANCHOR0
9761090 .word -1431655765
977
- .fnend
9781091 .size insert_data_list, .-insert_data_list
1092
+ .section .rodata.str1.1
1093
+.LC8:
1094
+ .ascii "\012!!!!! error @ func:%s - line:%d\012\000"
1095
+ .text
9791096 .align 2
9801097 .global INSERT_DATA_LIST
9811098 .syntax unified
....@@ -983,33 +1100,34 @@
9831100 .fpu softvfp
9841101 .type INSERT_DATA_LIST, %function
9851102 INSERT_DATA_LIST:
986
- .fnstart
9871103 @ args = 0, pretend = 0, frame = 0
988
- @ frame_needed = 0, uses_anonymous_args = 0
989
- push {r4, lr}
990
- .save {r4, lr}
1104
+ @ frame_needed = 1, uses_anonymous_args = 0
1105
+ mov ip, sp
1106
+ push {fp, ip, lr, pc}
1107
+ sub fp, ip, #4
1108
+ push {lr}
1109
+ bl __gnu_mcount_nc
9911110 bl insert_data_list
992
- ldr r2, .L134
1111
+ ldr r2, .L121
9931112 add r1, r2, #2528
9941113 ldrh r2, [r2, #240]
9951114 ldrh r3, [r1]
9961115 add r3, r3, #1
9971116 uxth r3, r3
998
- cmp r2, r3
9991117 strh r3, [r1] @ movhi
1000
- popcs {r4, pc}
1118
+ cmp r2, r3
1119
+ ldmfdcs sp, {fp, sp, pc}
1120
+ ldr r1, .L121+4
10011121 mov r2, #214
1002
- ldr r1, .L134+4
1003
- ldr r0, .L134+8
1004
- pop {r4, lr}
1005
- b sftl_printk
1006
-.L135:
1122
+ ldr r0, .L121+8
1123
+ bl sftl_printk
1124
+ ldmfd sp, {fp, sp, pc}
1125
+.L122:
10071126 .align 2
1008
-.L134:
1127
+.L121:
10091128 .word .LANCHOR0
10101129 .word .LANCHOR1
10111130 .word .LC8
1012
- .fnend
10131131 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST
10141132 .align 2
10151133 .global insert_free_list
....@@ -1018,75 +1136,78 @@
10181136 .fpu softvfp
10191137 .type insert_free_list, %function
10201138 insert_free_list:
1021
- .fnstart
10221139 @ args = 0, pretend = 0, frame = 0
1023
- @ frame_needed = 0, uses_anonymous_args = 0
1024
- push {r4, r5, r6, r7, r8, r9, r10, lr}
1025
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
1026
- movw r4, #65535
1027
- cmp r0, r4
1028
- beq .L137
1029
- ldr r2, .L144
1030
- mov r1, #6
1031
- mul r5, r1, r0
1140
+ @ frame_needed = 1, uses_anonymous_args = 0
1141
+ mov ip, sp
1142
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
1143
+ sub fp, ip, #4
1144
+ push {lr}
1145
+ bl __gnu_mcount_nc
1146
+ movw r8, #65535
1147
+ cmp r0, r8
1148
+ beq .L124
1149
+ ldr r1, .L131
1150
+ mov r6, #6
10321151 mvn r3, #0
1033
- ldr r6, [r2, #2516]
1034
- mov ip, r2
1035
- add lr, r6, r5
1036
- strh r3, [lr, #2] @ movhi
1037
- strh r3, [r6, r5] @ movhi
1038
- ldr r3, [r2, #2532]
1152
+ mul lr, r6, r0
1153
+ ldr r4, [r1, #2516]
1154
+ add ip, r4, lr
1155
+ strh r3, [ip, #2] @ movhi
1156
+ strh r3, [r4, lr] @ movhi
1157
+ ldr r3, [r1, #2532]
10391158 cmp r3, #0
1040
- streq lr, [r2, #2532]
1041
- beq .L137
1042
- ldr r8, [r2, #2536]
1159
+ bne .L125
1160
+.L130:
1161
+ str ip, [r1, #2532]
1162
+ b .L124
1163
+.L125:
10431164 lsl r2, r0, #1
1044
- ldr r7, [ip, #2516]
1045
- ldrh r9, [r8, r2]
1046
- sub r2, r3, r7
1047
- asr r10, r2, #1
1048
- ldr r2, .L144+4
1049
- mul r2, r2, r10
1050
- mov r10, r1
1165
+ ldr r7, [r1, #2536]
1166
+ ldr r5, [r1, #2516]
1167
+ ldr r10, .L131+4
1168
+ ldrh r9, [r7, r2]
1169
+ sub r2, r3, r5
1170
+ asr r2, r2, #1
1171
+ mul r2, r10, r2
10511172 uxth r2, r2
1052
-.L141:
1053
- lsl r1, r2, #1
1054
- ldrh r1, [r8, r1]
1055
- cmp r1, r9
1056
- bcs .L139
1057
- ldrh r1, [r3]
1058
- cmp r1, r4
1059
- bne .L140
1060
- strh r2, [lr, #2] @ movhi
1173
+.L128:
1174
+ lsl r10, r2, #1
1175
+ ldrh r10, [r7, r10]
1176
+ cmp r10, r9
1177
+ bcs .L126
1178
+ ldrh r10, [r3]
1179
+ cmp r10, r8
1180
+ bne .L127
1181
+ strh r2, [ip, #2] @ movhi
10611182 strh r0, [r3] @ movhi
1062
-.L137:
1183
+.L124:
10631184 mov r0, #0
1064
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
1065
-.L140:
1066
- mla r3, r10, r1, r7
1067
- mov r2, r1
1068
- b .L141
1069
-.L139:
1070
- ldrh r1, [r3, #2]
1071
- strh r1, [lr, #2] @ movhi
1072
- strh r2, [r6, r5] @ movhi
1073
- ldr r2, [ip, #2532]
1074
- cmp r3, r2
1075
- ldrhne lr, [r3, #2]
1076
- movne r2, #6
1077
- ldrne r1, [ip, #2516]
1185
+ ldmfd sp, {r3, r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
1186
+.L127:
1187
+ mla r3, r6, r10, r5
1188
+ mov r2, r10
1189
+ b .L128
1190
+.L126:
1191
+ ldrh r5, [r3, #2]
1192
+ strh r5, [ip, #2] @ movhi
1193
+ strh r2, [r4, lr] @ movhi
1194
+ ldr r2, [r1, #2532]
1195
+ cmp r2, r3
10781196 strheq r0, [r3, #2] @ movhi
1079
- streq lr, [ip, #2532]
1080
- mulne r2, r2, lr
1081
- strhne r0, [r1, r2] @ movhi
1082
- strhne r0, [r3, #2] @ movhi
1083
- b .L137
1084
-.L145:
1197
+ beq .L130
1198
+.L129:
1199
+ ldrh r2, [r3, #2]
1200
+ mov ip, #6
1201
+ ldr r1, [r1, #2516]
1202
+ mul r2, ip, r2
1203
+ strh r0, [r1, r2] @ movhi
1204
+ strh r0, [r3, #2] @ movhi
1205
+ b .L124
1206
+.L132:
10851207 .align 2
1086
-.L144:
1208
+.L131:
10871209 .word .LANCHOR0
10881210 .word -1431655765
1089
- .fnend
10901211 .size insert_free_list, .-insert_free_list
10911212 .align 2
10921213 .global INSERT_FREE_LIST
....@@ -1095,32 +1216,33 @@
10951216 .fpu softvfp
10961217 .type INSERT_FREE_LIST, %function
10971218 INSERT_FREE_LIST:
1098
- .fnstart
10991219 @ args = 0, pretend = 0, frame = 0
1100
- @ frame_needed = 0, uses_anonymous_args = 0
1101
- push {r4, lr}
1102
- .save {r4, lr}
1220
+ @ frame_needed = 1, uses_anonymous_args = 0
1221
+ mov ip, sp
1222
+ push {fp, ip, lr, pc}
1223
+ sub fp, ip, #4
1224
+ push {lr}
1225
+ bl __gnu_mcount_nc
11031226 bl insert_free_list
1104
- ldr r2, .L149
1227
+ ldr r2, .L135
11051228 ldrh r3, [r2, #224]
11061229 add r3, r3, #1
11071230 uxth r3, r3
11081231 strh r3, [r2, #224] @ movhi
11091232 ldrh r2, [r2, #240]
11101233 cmp r2, r3
1111
- popcs {r4, pc}
1234
+ ldmfdcs sp, {fp, sp, pc}
1235
+ ldr r1, .L135+4
11121236 mov r2, #207
1113
- ldr r1, .L149+4
1114
- ldr r0, .L149+8
1115
- pop {r4, lr}
1116
- b sftl_printk
1117
-.L150:
1237
+ ldr r0, .L135+8
1238
+ bl sftl_printk
1239
+ ldmfd sp, {fp, sp, pc}
1240
+.L136:
11181241 .align 2
1119
-.L149:
1242
+.L135:
11201243 .word .LANCHOR0
11211244 .word .LANCHOR1+17
11221245 .word .LC8
1123
- .fnend
11241246 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST
11251247 .align 2
11261248 .global List_remove_node
....@@ -1129,78 +1251,85 @@
11291251 .fpu softvfp
11301252 .type List_remove_node, %function
11311253 List_remove_node:
1132
- .fnstart
11331254 @ args = 0, pretend = 0, frame = 0
1134
- @ frame_needed = 0, uses_anonymous_args = 0
1135
- push {r4, r5, r6, r7, r8, lr}
1136
- .save {r4, r5, r6, r7, r8, lr}
1137
- mov r6, #6
1138
- ldr r4, .L158
1139
- mul r6, r6, r1
1255
+ @ frame_needed = 1, uses_anonymous_args = 0
1256
+ mov ip, sp
1257
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
1258
+ sub fp, ip, #4
1259
+ push {lr}
1260
+ bl __gnu_mcount_nc
1261
+ ldr r8, .L148
1262
+ mov r4, #6
11401263 movw r3, #65535
1141
- mov r8, r0
1142
- ldr r7, [r4, #2516]
1143
- add r5, r7, r6
1144
- ldrh r2, [r5, #2]
1264
+ mov r5, r0
1265
+ mul r4, r4, r1
1266
+ ldr r7, [r8, #2516]
1267
+ add r6, r7, r4
1268
+ ldrh r2, [r6, #2]
11451269 cmp r2, r3
1146
- bne .L152
1270
+ bne .L138
11471271 ldr r3, [r0]
1148
- cmp r5, r3
1149
- beq .L152
1150
- mov r2, #372
1151
- ldr r1, .L158+4
1152
- ldr r0, .L158+8
1153
- bl sftl_printk
1154
-.L152:
1155
- ldr r3, [r8]
1156
- movw r2, #65535
1157
- cmp r5, r3
1158
- ldrh r3, [r7, r6]
1159
- bne .L153
1160
- cmp r3, r2
1161
- ldrne r2, [r4, #2516]
1162
- movne r1, #6
1163
- moveq r3, #0
1164
- streq r3, [r8]
1165
- mlane r3, r1, r3, r2
1166
- mvnne r2, #0
1167
- strne r3, [r8]
1168
- strhne r2, [r3, #2] @ movhi
1169
-.L155:
1272
+ cmp r6, r3
1273
+ bne .L139
1274
+.L142:
1275
+ ldrh r2, [r7, r4]
1276
+ movw r3, #65535
1277
+ cmp r2, r3
1278
+ bne .L146
1279
+ mov r3, #0
1280
+ str r3, [r5]
1281
+.L144:
11701282 mvn r3, #0
11711283 mov r0, #0
1172
- strh r3, [r7, r6] @ movhi
1173
- strh r3, [r5, #2] @ movhi
1174
- pop {r4, r5, r6, r7, r8, pc}
1175
-.L153:
1176
- cmp r3, r2
1177
- ldrh r1, [r5, #2]
1178
- bne .L156
1179
- cmp r1, r3
1180
- movne r3, #6
1181
- ldrne r2, [r4, #2516]
1182
- mulne r1, r3, r1
1183
- mvnne r3, #0
1184
- strhne r3, [r2, r1] @ movhi
1185
- b .L155
1186
-.L156:
1187
- ldr r0, [r4, #2516]
1284
+ strh r3, [r7, r4] @ movhi
1285
+ strh r3, [r6, #2] @ movhi
1286
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
1287
+.L139:
1288
+ ldr r1, .L148+4
1289
+ mov r2, #372
1290
+ ldr r0, .L148+8
1291
+ bl sftl_printk
1292
+.L138:
1293
+ ldr r3, [r5]
1294
+ ldrh r1, [r7, r4]
1295
+ cmp r3, r6
1296
+ beq .L142
1297
+ movw r2, #65535
1298
+ ldrh r3, [r6, #2]
1299
+ cmp r1, r2
1300
+ bne .L145
1301
+ cmp r3, r1
1302
+ beq .L144
11881303 mov r2, #6
1189
- mla r3, r2, r3, r0
1190
- strh r1, [r3, #2] @ movhi
1191
- ldrh r0, [r5, #2]
1192
- ldrh r1, [r7, r6]
1193
- ldr r3, [r4, #2516]
1194
- mul r2, r2, r0
1195
- strh r1, [r3, r2] @ movhi
1196
- b .L155
1197
-.L159:
1304
+ ldr r1, [r8, #2516]
1305
+ mul r3, r2, r3
1306
+ mvn r2, #0
1307
+ strh r2, [r1, r3] @ movhi
1308
+ b .L144
1309
+.L146:
1310
+ ldr r3, [r8, #2516]
1311
+ mov r1, #6
1312
+ mla r3, r1, r2, r3
1313
+ mvn r2, #0
1314
+ str r3, [r5]
1315
+ strh r2, [r3, #2] @ movhi
1316
+ b .L144
1317
+.L145:
1318
+ ldr r2, [r8, #2516]
1319
+ mov r0, #6
1320
+ mla r2, r0, r1, r2
1321
+ strh r3, [r2, #2] @ movhi
1322
+ mul r3, r0, r3
1323
+ ldr r2, [r8, #2516]
1324
+ ldrh r1, [r7, r4]
1325
+ strh r1, [r2, r3] @ movhi
1326
+ b .L144
1327
+.L149:
11981328 .align 2
1199
-.L158:
1329
+.L148:
12001330 .word .LANCHOR0
12011331 .word .LANCHOR1+34
12021332 .word .LC8
1203
- .fnend
12041333 .size List_remove_node, .-List_remove_node
12051334 .align 2
12061335 .global List_pop_index_node
....@@ -1209,47 +1338,48 @@
12091338 .fpu softvfp
12101339 .type List_pop_index_node, %function
12111340 List_pop_index_node:
1212
- .fnstart
12131341 @ args = 0, pretend = 0, frame = 0
1214
- @ frame_needed = 0, uses_anonymous_args = 0
1342
+ @ frame_needed = 1, uses_anonymous_args = 0
1343
+ mov ip, sp
1344
+ push {r4, r5, fp, ip, lr, pc}
1345
+ sub fp, ip, #4
1346
+ push {lr}
1347
+ bl __gnu_mcount_nc
12151348 ldr r3, [r0]
12161349 cmp r3, #0
1217
- beq .L166
1218
- ldr r2, .L171
1219
- push {r4, lr}
1220
- .save {r4, lr}
1221
- movw lr, #65535
1222
- mov r4, #6
1223
- ldr r2, [r2, #2516]
1224
-.L162:
1350
+ beq .L155
1351
+ ldr r2, .L159
1352
+ movw ip, #65535
1353
+ mov lr, #6
1354
+ ldr r4, [r2, #2516]
1355
+.L152:
12251356 cmp r1, #0
1226
- bne .L163
1227
-.L165:
1228
- ldr r4, .L171+4
1229
- sub r3, r3, r2
1230
- asr r3, r3, #1
1231
- mul r4, r4, r3
1357
+ beq .L153
1358
+ ldrh r2, [r3]
1359
+ cmp r2, ip
1360
+ bne .L154
1361
+.L153:
1362
+ sub r4, r3, r4
1363
+ ldr r3, .L159+4
1364
+ asr r4, r4, #1
1365
+ mul r4, r3, r4
12321366 uxth r1, r4
12331367 bl List_remove_node
12341368 uxth r0, r4
1235
- pop {r4, pc}
1236
-.L163:
1237
- ldrh ip, [r3]
1238
- cmp ip, lr
1239
- beq .L165
1369
+ ldmfd sp, {r4, r5, fp, sp, pc}
1370
+.L154:
12401371 sub r1, r1, #1
1241
- mla r3, r4, ip, r2
1372
+ mla r3, lr, r2, r4
12421373 uxth r1, r1
1243
- b .L162
1244
-.L166:
1374
+ b .L152
1375
+.L155:
12451376 movw r0, #65535
1246
- bx lr
1247
-.L172:
1377
+ ldmfd sp, {r4, r5, fp, sp, pc}
1378
+.L160:
12481379 .align 2
1249
-.L171:
1380
+.L159:
12501381 .word .LANCHOR0
12511382 .word -1431655765
1252
- .fnend
12531383 .size List_pop_index_node, .-List_pop_index_node
12541384 .align 2
12551385 .global List_pop_head_node
....@@ -1258,13 +1388,16 @@
12581388 .fpu softvfp
12591389 .type List_pop_head_node, %function
12601390 List_pop_head_node:
1261
- .fnstart
12621391 @ args = 0, pretend = 0, frame = 0
1263
- @ frame_needed = 0, uses_anonymous_args = 0
1264
- @ link register save eliminated.
1392
+ @ frame_needed = 1, uses_anonymous_args = 0
1393
+ mov ip, sp
1394
+ push {fp, ip, lr, pc}
1395
+ sub fp, ip, #4
1396
+ push {lr}
1397
+ bl __gnu_mcount_nc
12651398 mov r1, #0
1266
- b List_pop_index_node
1267
- .fnend
1399
+ bl List_pop_index_node
1400
+ ldmfd sp, {fp, sp, pc}
12681401 .size List_pop_head_node, .-List_pop_head_node
12691402 .align 2
12701403 .global List_get_gc_head_node
....@@ -1273,44 +1406,46 @@
12731406 .fpu softvfp
12741407 .type List_get_gc_head_node, %function
12751408 List_get_gc_head_node:
1276
- .fnstart
12771409 @ args = 0, pretend = 0, frame = 0
1278
- @ frame_needed = 0, uses_anonymous_args = 0
1279
- @ link register save eliminated.
1280
- ldr r2, .L180
1410
+ @ frame_needed = 1, uses_anonymous_args = 0
1411
+ mov ip, sp
1412
+ push {fp, ip, lr, pc}
1413
+ sub fp, ip, #4
1414
+ push {lr}
1415
+ bl __gnu_mcount_nc
1416
+ ldr r2, .L168
12811417 ldr r3, [r2, #2520]
12821418 cmp r3, #0
1283
- ldrne r1, [r2, #2516]
1284
- movne ip, #6
1285
- movwne r2, #65535
1286
- bne .L176
1287
-.L179:
1419
+ movwne r1, #65535
1420
+ movne lr, #6
1421
+ ldrne ip, [r2, #2516]
1422
+ bne .L164
1423
+.L167:
12881424 movw r0, #65535
1289
- bx lr
1290
-.L178:
1291
- sub r0, r0, #1
1292
- mla r3, ip, r3, r1
1293
- uxth r0, r0
1294
-.L176:
1425
+ ldmfd sp, {fp, sp, pc}
1426
+.L166:
1427
+ sub r2, r0, #1
1428
+ mla r3, lr, r3, ip
1429
+ uxth r0, r2
1430
+.L164:
12951431 cmp r0, #0
1296
- beq .L177
1432
+ beq .L165
12971433 ldrh r3, [r3]
1298
- cmp r3, r2
1299
- bne .L178
1300
- b .L179
1301
-.L177:
1302
- ldr r0, .L180+4
1303
- sub r3, r3, r1
1304
- asr r3, r3, #1
1305
- mul r3, r0, r3
1306
- uxth r0, r3
1307
- bx lr
1308
-.L181:
1434
+ cmp r3, r1
1435
+ bne .L166
1436
+ b .L167
1437
+.L165:
1438
+ sub r0, r3, ip
1439
+ ldr r3, .L168+4
1440
+ asr r0, r0, #1
1441
+ mul r0, r3, r0
1442
+ uxth r0, r0
1443
+ ldmfd sp, {fp, sp, pc}
1444
+.L169:
13091445 .align 2
1310
-.L180:
1446
+.L168:
13111447 .word .LANCHOR0
13121448 .word -1431655765
1313
- .fnend
13141449 .size List_get_gc_head_node, .-List_get_gc_head_node
13151450 .align 2
13161451 .global List_update_data_list
....@@ -1319,102 +1454,103 @@
13191454 .fpu softvfp
13201455 .type List_update_data_list, %function
13211456 List_update_data_list:
1322
- .fnstart
13231457 @ args = 0, pretend = 0, frame = 0
1324
- @ frame_needed = 0, uses_anonymous_args = 0
1325
- push {r4, r5, r6, r7, r8, r9, r10, lr}
1326
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
1327
- ldr r4, .L194
1328
- ldrh r3, [r4, #24]
1458
+ @ frame_needed = 1, uses_anonymous_args = 0
1459
+ mov ip, sp
1460
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
1461
+ sub fp, ip, #4
1462
+ push {lr}
1463
+ bl __gnu_mcount_nc
1464
+ ldr r5, .L181
1465
+ mov r4, r0
1466
+ ldrh r3, [r5, #24]
13291467 cmp r3, r0
1330
- beq .L184
1331
- ldrh r3, [r4, #76]
1468
+ beq .L172
1469
+ ldrh r3, [r5, #76]
13321470 cmp r3, r0
1333
- beq .L184
1334
- ldrh r3, [r4, #124]
1471
+ beq .L172
1472
+ ldrh r3, [r5, #124]
13351473 cmp r3, r0
1336
- beq .L184
1474
+ beq .L172
13371475 mov r7, #6
1338
- ldr r9, [r4, #2516]
1476
+ ldr r9, [r5, #2516]
1477
+ ldr r3, [r5, #2520]
13391478 mul r7, r7, r0
1340
- ldr r3, [r4, #2520]
13411479 add r8, r9, r7
13421480 cmp r8, r3
1343
- beq .L184
1344
- ldr r2, [r4, #72]
1481
+ beq .L172
1482
+ ldr r2, [r5, #72]
13451483 lsl r3, r0, #1
1346
- ldrh r6, [r8, #4]
1347
- mov r5, r0
1348
- ldrh r3, [r2, r3]
1484
+ ldrh r6, [r2, r3]
13491485 movw r2, #65535
1350
- cmp r6, #0
1486
+ ldrh r3, [r8, #4]
1487
+ cmp r3, #0
13511488 mvneq r6, #0
1352
- mulne r6, r6, r3
1489
+ mulne r6, r3, r6
13531490 ldrh r3, [r8, #2]
13541491 cmp r3, r2
1355
- bne .L187
1492
+ bne .L175
13561493 ldrh r2, [r9, r7]
13571494 cmp r2, r3
1358
- bne .L187
1495
+ bne .L175
1496
+ ldr r1, .L181+4
13591497 movw r2, #463
1360
- ldr r1, .L194+4
1361
- ldr r0, .L194+8
1498
+ ldr r0, .L181+8
13621499 bl sftl_printk
1363
-.L187:
1500
+.L175:
13641501 ldrh r3, [r8, #2]
13651502 movw r2, #65535
13661503 cmp r3, r2
1367
- bne .L188
1504
+ bne .L176
13681505 ldrh r2, [r9, r7]
13691506 cmp r2, r3
1370
- beq .L184
1371
-.L188:
1507
+ beq .L172
1508
+.L176:
13721509 mov r2, #6
1373
- mul r2, r2, r3
1374
- ldr r3, .L194+12
1375
- asr r1, r2, #1
1376
- mul r3, r3, r1
1377
- ldr r1, [r4, #72]
1378
- lsl r3, r3, #1
1379
- ldrh r0, [r1, r3]
1380
- ldr r1, [r4, #2516]
1381
- add r2, r1, r2
1382
- ldrh r3, [r2, #4]
1510
+ ldr r1, .L181+12
1511
+ mul r3, r2, r3
1512
+ asr r2, r3, #1
1513
+ mul r2, r1, r2
1514
+ ldr r1, [r5, #72]
1515
+ lsl r2, r2, #1
1516
+ ldrh r2, [r1, r2]
1517
+ ldr r1, [r5, #2516]
1518
+ add r3, r1, r3
1519
+ ldrh r3, [r3, #4]
13831520 cmp r3, #0
1384
- mulne r3, r3, r0
13851521 mvneq r3, #0
1522
+ mulne r3, r3, r2
13861523 cmp r6, r3
1387
- bcs .L184
1388
- ldr r4, .L194+16
1389
- mov r1, r5
1390
- ldr r0, .L194+20
1524
+ bcs .L172
1525
+ ldr r5, .L181+16
1526
+ mov r1, r4
1527
+ ldr r0, .L181+20
13911528 bl List_remove_node
1392
- ldrh r3, [r4]
1529
+ ldrh r3, [r5]
13931530 cmp r3, #0
1394
- bne .L190
1531
+ bne .L178
1532
+ ldr r1, .L181+4
13951533 movw r2, #474
1396
- ldr r1, .L194+4
1397
- ldr r0, .L194+8
1534
+ ldr r0, .L181+8
13981535 bl sftl_printk
1399
-.L190:
1400
- ldrh r3, [r4]
1401
- mov r0, r5
1536
+.L178:
1537
+ ldrh r3, [r5]
1538
+ mov r0, r4
14021539 sub r3, r3, #1
1403
- strh r3, [r4] @ movhi
1540
+ strh r3, [r5] @ movhi
14041541 bl INSERT_DATA_LIST
1405
-.L184:
1542
+.L172:
14061543 mov r0, #0
1407
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
1408
-.L195:
1544
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
1545
+.L182:
14091546 .align 2
1410
-.L194:
1547
+.L181:
14111548 .word .LANCHOR0
14121549 .word .LANCHOR1+51
14131550 .word .LC8
14141551 .word -1431655765
14151552 .word .LANCHOR0+2528
14161553 .word .LANCHOR0+2520
1417
- .fnend
14181554 .size List_update_data_list, .-List_update_data_list
14191555 .align 2
14201556 .global select_l2p_ram_region
....@@ -1423,90 +1559,92 @@
14231559 .fpu softvfp
14241560 .type select_l2p_ram_region, %function
14251561 select_l2p_ram_region:
1426
- .fnstart
14271562 @ args = 0, pretend = 0, frame = 0
1428
- @ frame_needed = 0, uses_anonymous_args = 0
1429
- ldr r3, .L207
1563
+ @ frame_needed = 1, uses_anonymous_args = 0
1564
+ mov ip, sp
1565
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
1566
+ sub fp, ip, #4
1567
+ push {lr}
1568
+ bl __gnu_mcount_nc
1569
+ ldr r3, .L193
14301570 movw r2, #338
1431
- push {r4, r5, r6, lr}
1432
- .save {r4, r5, r6, lr}
14331571 mov r1, #0
1434
- mov r0, #12
1435
- movw ip, #65535
1572
+ mov ip, #12
1573
+ movw lr, #65535
14361574 ldrh r2, [r3, r2]
14371575 ldr r3, [r3, #2540]
1438
-.L197:
1576
+ sub r0, r3, #12
1577
+.L184:
14391578 uxth r4, r1
1440
- cmp r4, r2
1441
- bcc .L199
1579
+ cmp r2, r4
1580
+ bhi .L186
14421581 mov r4, r2
1582
+ add r5, r3, #4
14431583 mov r1, #0
14441584 mov r0, #-2147483648
1445
- mov r5, #12
1446
-.L200:
1585
+ mov r6, #12
1586
+.L187:
14471587 uxth lr, r1
1448
- cmp lr, r2
1449
- bcc .L202
1450
- cmp r4, r2
1451
- bcc .L198
1452
- ldr r1, .L207+4
1588
+ cmp r2, lr
1589
+ bhi .L189
1590
+ cmp r2, r4
1591
+ bhi .L185
1592
+ ldr r1, .L193+4
14531593 mov r4, r2
14541594 mvn r0, #0
14551595 ldrh r5, [r1]
14561596 mov r1, #0
1457
-.L203:
1597
+.L190:
14581598 uxth ip, r1
1459
- cmp ip, r2
1460
- bcc .L205
1461
- cmp r4, r2
1462
- bcc .L198
1599
+ cmp r2, ip
1600
+ bhi .L192
1601
+ cmp r2, r4
1602
+ bhi .L185
1603
+ ldr r1, .L193+8
14631604 mov r2, #796
1464
- ldr r1, .L207+8
1465
- ldr r0, .L207+12
1605
+ ldr r0, .L193+12
14661606 bl sftl_printk
1467
- b .L198
1468
-.L199:
1607
+ b .L185
1608
+.L186:
14691609 add r1, r1, #1
1470
- mla lr, r0, r1, r3
1471
- ldrh lr, [lr, #-12]
1472
- cmp lr, ip
1473
- bne .L197
1474
-.L198:
1610
+ mul r5, ip, r1
1611
+ ldrh r5, [r0, r5]
1612
+ cmp r5, lr
1613
+ bne .L184
1614
+.L185:
14751615 mov r0, r4
1476
- pop {r4, r5, r6, pc}
1477
-.L202:
1478
- mla ip, r5, r1, r3
1616
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
1617
+.L189:
1618
+ mul ip, r6, r1
14791619 add r1, r1, #1
1480
- ldr ip, [ip, #4]
1481
- cmp r0, ip
1482
- movls r6, #0
1483
- movhi r6, #1
1484
- cmp ip, #0
1485
- movlt r6, #0
1486
- cmp r6, #0
1620
+ ldr ip, [r5, ip]
1621
+ mvn r7, ip
1622
+ cmp ip, r0
1623
+ lsr r7, r7, #31
1624
+ movcs r7, #0
1625
+ cmp r7, #0
14871626 movne r0, ip
14881627 movne r4, lr
1489
- b .L200
1490
-.L205:
1628
+ b .L187
1629
+.L192:
14911630 ldr lr, [r3, #4]
1492
- cmp r0, lr
1493
- bls .L204
1631
+ cmp lr, r0
1632
+ bcs .L191
14941633 ldrh r6, [r3]
14951634 cmp r6, r5
14961635 movne r0, lr
14971636 movne r4, ip
1498
-.L204:
1637
+.L191:
14991638 add r1, r1, #1
15001639 add r3, r3, #12
1501
- b .L203
1502
-.L208:
1640
+ b .L190
1641
+.L194:
15031642 .align 2
1504
-.L207:
1643
+.L193:
15051644 .word .LANCHOR0
15061645 .word .LANCHOR0+2544
15071646 .word .LANCHOR1+73
15081647 .word .LC8
1509
- .fnend
15101648 .size select_l2p_ram_region, .-select_l2p_ram_region
15111649 .align 2
15121650 .global FtlUpdateVaildLpn
....@@ -1515,45 +1653,43 @@
15151653 .fpu softvfp
15161654 .type FtlUpdateVaildLpn, %function
15171655 FtlUpdateVaildLpn:
1518
- .fnstart
15191656 @ args = 0, pretend = 0, frame = 0
1520
- @ frame_needed = 0, uses_anonymous_args = 0
1521
- ldr ip, .L218
1657
+ @ frame_needed = 1, uses_anonymous_args = 0
1658
+ mov ip, sp
1659
+ push {fp, ip, lr, pc}
1660
+ sub fp, ip, #4
1661
+ push {lr}
1662
+ bl __gnu_mcount_nc
1663
+ ldr r3, .L201
15221664 movw r1, #2546
1523
- ldrh r2, [ip, r1]
1665
+ ldrh r2, [r3, r1]
15241666 cmp r2, #4
15251667 cmpls r0, #0
1526
- bne .L210
1668
+ bne .L196
15271669 add r2, r2, #1
1528
- strh r2, [ip, r1] @ movhi
1529
- bx lr
1530
-.L210:
1670
+ strh r2, [r3, r1] @ movhi
1671
+ ldmfd sp, {fp, sp, pc}
1672
+.L196:
15311673 mov r2, #0
1532
- str lr, [sp, #-4]!
1533
- .save {lr}
1534
- strh r2, [ip, r1] @ movhi
1535
- mov r3, ip
1674
+ strh r2, [r3, r1] @ movhi
1675
+ str r2, [r3, #2548]
15361676 movw lr, #65535
1537
- str r2, [ip, #2548]
1538
- ldrh r1, [ip, #240]
1539
- ldr r2, [ip, #72]
1677
+ ldr r2, [r3, #72]
1678
+ ldrh r1, [r3, #240]
15401679 add r1, r2, r1, lsl #1
1541
-.L211:
1680
+.L197:
15421681 cmp r2, r1
1543
- bne .L213
1544
- ldr pc, [sp], #4
1545
-.L213:
1682
+ ldmfdeq sp, {fp, sp, pc}
15461683 ldrh ip, [r2], #2
15471684 cmp ip, lr
15481685 ldrne r0, [r3, #2548]
15491686 addne r0, r0, ip
15501687 strne r0, [r3, #2548]
1551
- b .L211
1552
-.L219:
1688
+ b .L197
1689
+.L202:
15531690 .align 2
1554
-.L218:
1691
+.L201:
15551692 .word .LANCHOR0
1556
- .fnend
15571693 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
15581694 .align 2
15591695 .global ftl_sb_update_avl_pages
....@@ -1562,56 +1698,55 @@
15621698 .fpu softvfp
15631699 .type ftl_sb_update_avl_pages, %function
15641700 ftl_sb_update_avl_pages:
1565
- .fnstart
15661701 @ args = 0, pretend = 0, frame = 0
1567
- @ frame_needed = 0, uses_anonymous_args = 0
1702
+ @ frame_needed = 1, uses_anonymous_args = 0
1703
+ mov ip, sp
1704
+ push {r4, r5, fp, ip, lr, pc}
1705
+ sub fp, ip, #4
1706
+ push {lr}
1707
+ bl __gnu_mcount_nc
1708
+ ldr r4, .L211
1709
+ add ip, r2, #8
15681710 mov r3, #0
1569
- push {r4, r5, lr}
1570
- .save {r4, r5, lr}
1571
- strh r3, [r0, #4] @ movhi
1572
- add ip, r0, r2, lsl #1
15731711 movw r5, #65535
1574
- ldr r3, .L228
1575
- add ip, ip, #14
1576
- ldrh lr, [r3, #232]
1577
-.L221:
1578
- cmp r2, lr
1579
- bcc .L223
1580
- movw r2, #302
1581
- add ip, r0, #16
1582
- ldrh r3, [r3, r2]
1583
- movw r4, #65535
1584
- sub r3, r3, #1
1585
- sub r1, r3, r1
1586
- mov r3, #0
1587
- uxth r1, r1
1588
-.L224:
1589
- uxth r2, r3
1712
+ add ip, r0, ip, lsl #1
1713
+ strh r3, [r0, #4] @ movhi
1714
+ ldrh lr, [r4, #232]
1715
+.L204:
15901716 cmp lr, r2
1591
- bhi .L226
1592
- pop {r4, r5, pc}
1593
-.L223:
1594
- ldrh r4, [ip, #2]!
1717
+ bhi .L206
1718
+ movw r3, #302
1719
+ add ip, r0, #16
1720
+ mov r2, #0
1721
+ ldrh r3, [r4, r3]
1722
+ movw r4, #65535
1723
+ sub r3, r3, r1
1724
+ sub r3, r3, #1
1725
+ sxth r3, r3
1726
+.L207:
1727
+ uxth r1, r2
1728
+ cmp lr, r1
1729
+ ldmfdls sp, {r4, r5, fp, sp, pc}
1730
+ ldrh r1, [ip], #2
15951731 add r2, r2, #1
1732
+ cmp r1, r4
1733
+ ldrhne r1, [r0, #4]
1734
+ addne r1, r3, r1
1735
+ strhne r1, [r0, #4] @ movhi
1736
+ b .L207
1737
+.L206:
1738
+ ldrh r3, [ip], #2
1739
+ add r2, r2, #1
1740
+ cmp r3, r5
15961741 uxth r2, r2
1597
- cmp r4, r5
1598
- ldrhne r4, [r0, #4]
1599
- addne r4, r4, #1
1600
- strhne r4, [r0, #4] @ movhi
1601
- b .L221
1602
-.L226:
1603
- ldrh r2, [ip], #2
1604
- add r3, r3, #1
1605
- cmp r2, r4
1606
- ldrhne r2, [r0, #4]
1607
- addne r2, r1, r2
1608
- strhne r2, [r0, #4] @ movhi
1609
- b .L224
1610
-.L229:
1742
+ ldrhne r3, [r0, #4]
1743
+ addne r3, r3, #1
1744
+ strhne r3, [r0, #4] @ movhi
1745
+ b .L204
1746
+.L212:
16111747 .align 2
1612
-.L228:
1748
+.L211:
16131749 .word .LANCHOR0
1614
- .fnend
16151750 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
16161751 .align 2
16171752 .global FtlSlcSuperblockCheck
....@@ -1620,48 +1755,46 @@
16201755 .fpu softvfp
16211756 .type FtlSlcSuperblockCheck, %function
16221757 FtlSlcSuperblockCheck:
1623
- .fnstart
16241758 @ args = 0, pretend = 0, frame = 0
1625
- @ frame_needed = 0, uses_anonymous_args = 0
1759
+ @ frame_needed = 1, uses_anonymous_args = 0
1760
+ mov ip, sp
1761
+ push {fp, ip, lr, pc}
1762
+ sub fp, ip, #4
1763
+ push {lr}
1764
+ bl __gnu_mcount_nc
16261765 ldrh r3, [r0, #4]
16271766 cmp r3, #0
1628
- bxeq lr
1629
- ldrh r2, [r0]
1630
- movw r3, #65535
1631
- cmp r2, r3
1632
- bxeq lr
1633
- ldrb r2, [r0, #6] @ zero_extendqisi2
1634
- str lr, [sp, #-4]!
1635
- .save {lr}
1636
- mov lr, #0
1637
- add r2, r0, r2, lsl #1
1638
- ldrh r1, [r2, #16]
1639
- ldr r2, .L240
1640
- ldrh ip, [r2, #232]
1641
- mov r2, r3
1642
-.L233:
1643
- cmp r1, r2
1644
- beq .L235
1645
- ldr pc, [sp], #4
1646
-.L235:
1767
+ ldmfdeq sp, {fp, sp, pc}
1768
+ ldrh r3, [r0]
1769
+ movw r2, #65535
1770
+ cmp r3, r2
1771
+ ldmfdeq sp, {fp, sp, pc}
1772
+ ldrb r3, [r0, #6] @ zero_extendqisi2
1773
+ mov ip, #0
1774
+ ldr r1, .L219
1775
+ add r3, r0, r3, lsl #1
1776
+ ldrh r1, [r1, #232]
1777
+ ldrh r3, [r3, #16]
1778
+.L216:
1779
+ cmp r3, r2
1780
+ ldmfdne sp, {fp, sp, pc}
16471781 ldrb r3, [r0, #6] @ zero_extendqisi2
16481782 add r3, r3, #1
16491783 uxtb r3, r3
1650
- cmp r3, ip
16511784 strb r3, [r0, #6]
1785
+ cmp r3, r1
1786
+ strbeq ip, [r0, #6]
16521787 ldrheq r3, [r0, #2]
1653
- strbeq lr, [r0, #6]
16541788 addeq r3, r3, #1
16551789 strheq r3, [r0, #2] @ movhi
16561790 ldrb r3, [r0, #6] @ zero_extendqisi2
16571791 add r3, r0, r3, lsl #1
1658
- ldrh r1, [r3, #16]
1659
- b .L233
1660
-.L241:
1792
+ ldrh r3, [r3, #16]
1793
+ b .L216
1794
+.L220:
16611795 .align 2
1662
-.L240:
1796
+.L219:
16631797 .word .LANCHOR0
1664
- .fnend
16651798 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
16661799 .align 2
16671800 .global make_superblock
....@@ -1670,72 +1803,76 @@
16701803 .fpu softvfp
16711804 .type make_superblock, %function
16721805 make_superblock:
1673
- .fnstart
1674
- @ args = 0, pretend = 0, frame = 0
1675
- @ frame_needed = 0, uses_anonymous_args = 0
1676
- push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1677
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
1806
+ @ args = 0, pretend = 0, frame = 8
1807
+ @ frame_needed = 1, uses_anonymous_args = 0
1808
+ mov ip, sp
1809
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
1810
+ sub fp, ip, #4
1811
+ sub sp, sp, #12
1812
+ push {lr}
1813
+ bl __gnu_mcount_nc
1814
+ ldr r7, .L227
16781815 mov r4, r0
1679
- ldr r6, .L249
16801816 ldrh r2, [r0]
1681
- ldrh r3, [r6, #240]
1817
+ ldrh r3, [r7, #240]
16821818 cmp r2, r3
1683
- bcc .L243
1819
+ bcc .L222
1820
+ ldr r1, .L227+4
16841821 movw r2, #2157
1685
- ldr r1, .L249+4
1686
- ldr r0, .L249+8
1822
+ ldr r0, .L227+8
16871823 bl sftl_printk
1688
-.L243:
1689
- ldrh r9, [r6, #232]
1690
- add r7, r4, #16
1691
- ldr r10, .L249+12
1692
- mvn r8, #0
1693
- mov r5, #0
1694
- strh r5, [r4, #4] @ movhi
1695
- strb r5, [r4, #7]
1696
-.L244:
1697
- uxth r3, r5
1824
+.L222:
1825
+ ldrh r6, [r7, #232]
1826
+ mov r3, #0
1827
+ strh r3, [r4, #4] @ movhi
1828
+ add r5, r4, #16
1829
+ strb r3, [r4, #7]
1830
+ mvn r9, #0
1831
+ add r6, r4, r6, lsl #1
1832
+ ldr r3, .L227+12
1833
+ add r6, r6, #16
1834
+.L223:
16981835 ldrh r1, [r4]
1699
- cmp r9, r3
1700
- bhi .L246
1701
- movw r2, #302
1702
- ldrb r3, [r4, #7] @ zero_extendqisi2
1703
- ldrh r2, [r6, r2]
1836
+ cmp r6, r5
1837
+ ldrb r8, [r4, #7] @ zero_extendqisi2
1838
+ bne .L225
1839
+ movw r3, #302
17041840 lsl r1, r1, #1
17051841 mov r0, #0
1706
- smulbb r3, r3, r2
1707
- strh r3, [r4, #4] @ movhi
1842
+ ldrh r3, [r7, r3]
1843
+ smulbb r8, r3, r8
17081844 mov r3, #0
17091845 strb r3, [r4, #9]
1710
- ldr r3, [r6, #2536]
1846
+ ldr r3, [r7, #2536]
1847
+ strh r8, [r4, #4] @ movhi
17111848 ldrh r2, [r3, r1]
17121849 movw r3, #10000
17131850 cmp r2, r3
17141851 movhi r3, #1
17151852 strbhi r3, [r4, #9]
1716
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
1717
-.L246:
1718
- ldrb r0, [r10, r5] @ zero_extendqisi2
1719
- add r7, r7, #2
1853
+ sub sp, fp, #40
1854
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
1855
+.L225:
1856
+ ldrb r0, [r3], #1 @ zero_extendqisi2
1857
+ add r5, r5, #2
1858
+ str r3, [fp, #-48]
17201859 bl V2P_block
1721
- strh r8, [r7, #-2] @ movhi
1722
- mov fp, r0
1860
+ strh r9, [r5, #-2] @ movhi
1861
+ mov r10, r0
17231862 bl FtlBbmIsBadBlock
17241863 cmp r0, #0
1725
- add r5, r5, #1
1726
- strheq fp, [r7, #-2] @ movhi
1727
- ldrbeq r3, [r4, #7] @ zero_extendqisi2
1728
- addeq r3, r3, #1
1729
- strbeq r3, [r4, #7]
1730
- b .L244
1731
-.L250:
1864
+ addeq r8, r8, #1
1865
+ strheq r10, [r5, #-2] @ movhi
1866
+ ldr r3, [fp, #-48]
1867
+ strbeq r8, [r4, #7]
1868
+ b .L223
1869
+.L228:
17321870 .align 2
1733
-.L249:
1871
+.L227:
17341872 .word .LANCHOR0
17351873 .word .LANCHOR1+95
17361874 .word .LC8
17371875 .word .LANCHOR0+260
1738
- .fnend
17391876 .size make_superblock, .-make_superblock
17401877 .align 2
17411878 .global update_multiplier_value
....@@ -1744,52 +1881,52 @@
17441881 .fpu softvfp
17451882 .type update_multiplier_value, %function
17461883 update_multiplier_value:
1747
- .fnstart
17481884 @ args = 0, pretend = 0, frame = 0
1749
- @ frame_needed = 0, uses_anonymous_args = 0
1750
- ldr r3, .L258
1751
- movw r2, #302
1752
- push {r4, r5, r6, r7, r8, r9, r10, lr}
1753
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
1754
- mov r5, #0
1755
- mov r7, r0
1756
- mov r4, r5
1757
- mov r6, r3
1758
- add r10, r3, #260
1759
- ldrh r8, [r3, #232]
1760
- ldrh r9, [r3, r2]
1761
-.L252:
1762
- uxth r3, r5
1763
- cmp r8, r3
1764
- bhi .L254
1885
+ @ frame_needed = 1, uses_anonymous_args = 0
1886
+ mov ip, sp
1887
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
1888
+ sub fp, ip, #4
1889
+ push {lr}
1890
+ bl __gnu_mcount_nc
1891
+ ldr r6, .L237
1892
+ movw r3, #302
1893
+ mov r7, #0
1894
+ mov r5, r0
1895
+ add r8, r6, #260
1896
+ mov r4, r7
1897
+ ldrh r9, [r6, #232]
1898
+ ldrh r10, [r6, r3]
1899
+.L230:
1900
+ uxth r3, r7
1901
+ cmp r9, r3
1902
+ bhi .L232
17651903 cmp r4, #0
1766
- moveq r0, r4
1767
- beq .L255
1904
+ beq .L233
17681905 mov r1, r4
17691906 mov r0, #32768
17701907 bl __aeabi_idiv
1771
-.L255:
1772
- ldr r1, [r6, #2516]
1908
+ uxth r4, r0
1909
+.L233:
1910
+ ldr r0, [r6, #2516]
17731911 mov r3, #6
1774
- mla r1, r3, r7, r1
1775
- strh r0, [r1, #4] @ movhi
1912
+ mla r5, r3, r5, r0
17761913 mov r0, #0
1777
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
1778
-.L254:
1779
- mov r1, r7
1780
- ldrb r0, [r10, r5] @ zero_extendqisi2
1914
+ strh r4, [r5, #4] @ movhi
1915
+ ldmfd sp, {r3, r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
1916
+.L232:
1917
+ mov r1, r5
1918
+ ldrb r0, [r8], #1 @ zero_extendqisi2
17811919 bl V2P_block
1920
+ add r7, r7, #1
17821921 bl FtlBbmIsBadBlock
17831922 cmp r0, #0
1784
- add r5, r5, #1
1785
- addeq r4, r4, r9
1923
+ addeq r4, r10, r4
17861924 uxtheq r4, r4
1787
- b .L252
1788
-.L259:
1925
+ b .L230
1926
+.L238:
17891927 .align 2
1790
-.L258:
1928
+.L237:
17911929 .word .LANCHOR0
1792
- .fnend
17931930 .size update_multiplier_value, .-update_multiplier_value
17941931 .align 2
17951932 .global GetFreeBlockMinEraseCount
....@@ -1798,30 +1935,32 @@
17981935 .fpu softvfp
17991936 .type GetFreeBlockMinEraseCount, %function
18001937 GetFreeBlockMinEraseCount:
1801
- .fnstart
18021938 @ args = 0, pretend = 0, frame = 0
1803
- @ frame_needed = 0, uses_anonymous_args = 0
1804
- @ link register save eliminated.
1805
- ldr r2, .L263
1939
+ @ frame_needed = 1, uses_anonymous_args = 0
1940
+ mov ip, sp
1941
+ push {fp, ip, lr, pc}
1942
+ sub fp, ip, #4
1943
+ push {lr}
1944
+ bl __gnu_mcount_nc
1945
+ ldr r2, .L242
18061946 ldr r0, [r2, #2532]
18071947 cmp r0, #0
1808
- bxeq lr
1948
+ ldmfdeq sp, {fp, sp, pc}
18091949 ldr r3, [r2, #2516]
1810
- sub r0, r0, r3
1811
- ldr r3, .L263+4
1812
- asr r0, r0, #1
1813
- mul r0, r3, r0
1814
- ldr r3, [r2, #2536]
1815
- uxth r0, r0
1816
- lsl r0, r0, #1
1817
- ldrh r0, [r3, r0]
1818
- bx lr
1819
-.L264:
1950
+ ldr r2, [r2, #2536]
1951
+ sub r3, r0, r3
1952
+ ldr r0, .L242+4
1953
+ asr r3, r3, #1
1954
+ mul r3, r0, r3
1955
+ uxth r3, r3
1956
+ lsl r3, r3, #1
1957
+ ldrh r0, [r2, r3]
1958
+ ldmfd sp, {fp, sp, pc}
1959
+.L243:
18201960 .align 2
1821
-.L263:
1961
+.L242:
18221962 .word .LANCHOR0
18231963 .word -1431655765
1824
- .fnend
18251964 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
18261965 .align 2
18271966 .global GetFreeBlockMaxEraseCount
....@@ -1830,56 +1969,191 @@
18301969 .fpu softvfp
18311970 .type GetFreeBlockMaxEraseCount, %function
18321971 GetFreeBlockMaxEraseCount:
1833
- .fnstart
18341972 @ args = 0, pretend = 0, frame = 0
1835
- @ frame_needed = 0, uses_anonymous_args = 0
1836
- ldr r1, .L277
1837
- ldr r3, [r1, #2532]
1838
- cmp r3, #0
1839
- beq .L271
1840
- push {r4, r5, lr}
1841
- .save {r4, r5, lr}
1842
- mov r4, #6
1843
- ldrh r2, [r1, #224]
1844
- movw r5, #65535
1845
- ldr ip, [r1, #2516]
1846
- rsb r2, r2, r2, lsl #3
1847
- sub r3, r3, ip
1848
- asr r2, r2, #3
1973
+ @ frame_needed = 1, uses_anonymous_args = 0
1974
+ mov ip, sp
1975
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
1976
+ sub fp, ip, #4
1977
+ push {lr}
1978
+ bl __gnu_mcount_nc
1979
+ ldr r1, .L251
1980
+ mov r2, r0
1981
+ ldr r0, [r1, #2532]
1982
+ cmp r0, #0
1983
+ ldmfdeq sp, {r4, r5, r6, r7, fp, sp, pc}
1984
+ ldrh r3, [r1, #224]
1985
+ mov r5, #6
1986
+ ldr lr, [r1, #2516]
1987
+ movw r6, #65535
1988
+ rsb r3, r3, r3, lsl #3
1989
+ asr ip, r3, #3
1990
+ cmp r2, r3, asr #3
1991
+ sub r3, r0, lr
1992
+ ldr r0, .L251+4
1993
+ uxthgt r2, ip
1994
+ mov ip, #0
18491995 asr r3, r3, #1
1850
- cmp r0, r2
1851
- uxthgt r0, r2
1852
- ldr r2, .L277+4
1853
- mul r3, r2, r3
1854
- mov r2, #0
1996
+ mul r3, r0, r3
18551997 uxth r3, r3
1856
-.L268:
1857
- uxth lr, r2
1858
- cmp r0, lr
1859
- bls .L270
1860
- mul lr, r4, r3
1861
- add r2, r2, #1
1862
- ldrh lr, [ip, lr]
1863
- cmp lr, r5
1864
- bne .L272
1865
-.L270:
1866
- ldr r2, [r1, #2536]
1867
- lsl r3, r3, #1
1868
- ldrh r0, [r2, r3]
1869
- pop {r4, r5, pc}
1870
-.L272:
1871
- mov r3, lr
1872
- b .L268
1873
-.L271:
1998
+.L247:
1999
+ uxth r4, ip
18742000 mov r0, r3
1875
- bx lr
1876
-.L278:
2001
+ cmp r4, r2
2002
+ bcs .L248
2003
+ mul r3, r5, r3
2004
+ add ip, ip, #1
2005
+ ldrh r3, [lr, r3]
2006
+ cmp r3, r6
2007
+ bne .L247
2008
+.L248:
2009
+ ldr r2, [r1, #2536]
2010
+ lsl r3, r0, #1
2011
+ ldrh r0, [r2, r3]
2012
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
2013
+.L252:
18772014 .align 2
1878
-.L277:
2015
+.L251:
18792016 .word .LANCHOR0
18802017 .word -1431655765
1881
- .fnend
18822018 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
2019
+ .section .rodata.str1.1
2020
+.LC9:
2021
+ .ascii "FLASH INFO:\012\000"
2022
+.LC10:
2023
+ .ascii "Device Capacity: %d MB\012\000"
2024
+.LC11:
2025
+ .ascii "FTL INFO:\012\000"
2026
+.LC12:
2027
+ .ascii "g_MaxLpn = 0x%x\012\000"
2028
+.LC13:
2029
+ .ascii "g_VaildLpn = 0x%x\012\000"
2030
+.LC14:
2031
+ .ascii "read_page_count = 0x%x\012\000"
2032
+.LC15:
2033
+ .ascii "discard_page_count = 0x%x\012\000"
2034
+.LC16:
2035
+ .ascii "write_page_count = 0x%x\012\000"
2036
+.LC17:
2037
+ .ascii "cache_write_count = 0x%x\012\000"
2038
+.LC18:
2039
+ .ascii "l2p_write_count = 0x%x\012\000"
2040
+.LC19:
2041
+ .ascii "gc_page_count = 0x%x\012\000"
2042
+.LC20:
2043
+ .ascii "totle_write = %d MB\012\000"
2044
+.LC21:
2045
+ .ascii "totle_read = %d MB\012\000"
2046
+.LC22:
2047
+ .ascii "GSV = 0x%x\012\000"
2048
+.LC23:
2049
+ .ascii "GDV = 0x%x\012\000"
2050
+.LC24:
2051
+ .ascii "bad blk num = %d\012\000"
2052
+.LC25:
2053
+ .ascii "free_superblocks = 0x%x\012\000"
2054
+.LC26:
2055
+ .ascii "mlc_EC = 0x%x\012\000"
2056
+.LC27:
2057
+ .ascii "slc_EC = 0x%x\012\000"
2058
+.LC28:
2059
+ .ascii "avg_EC = 0x%x\012\000"
2060
+.LC29:
2061
+ .ascii "sys_EC = 0x%x\012\000"
2062
+.LC30:
2063
+ .ascii "max_EC = 0x%x\012\000"
2064
+.LC31:
2065
+ .ascii "min_EC = 0x%x\012\000"
2066
+.LC32:
2067
+ .ascii "PLT = 0x%x\012\000"
2068
+.LC33:
2069
+ .ascii "POT = 0x%x\012\000"
2070
+.LC34:
2071
+ .ascii "MaxSector = 0x%x\012\000"
2072
+.LC35:
2073
+ .ascii "init_sys_blks_pp = 0x%x\012\000"
2074
+.LC36:
2075
+ .ascii "sys_blks_pp = 0x%x\012\000"
2076
+.LC37:
2077
+ .ascii "free sysblock = 0x%x\012\000"
2078
+.LC38:
2079
+ .ascii "data_blks_pp = 0x%x\012\000"
2080
+.LC39:
2081
+ .ascii "data_op_blks_pp = 0x%x\012\000"
2082
+.LC40:
2083
+ .ascii "max_data_blks = 0x%x\012\000"
2084
+.LC41:
2085
+ .ascii "Sys.id = 0x%x\012\000"
2086
+.LC42:
2087
+ .ascii "Bbt.id = 0x%x\012\000"
2088
+.LC43:
2089
+ .ascii "ACT.page = 0x%x\012\000"
2090
+.LC44:
2091
+ .ascii "ACT.plane = 0x%x\012\000"
2092
+.LC45:
2093
+ .ascii "ACT.id = 0x%x\012\000"
2094
+.LC46:
2095
+ .ascii "ACT.mode = 0x%x\012\000"
2096
+.LC47:
2097
+ .ascii "ACT.a_pages = 0x%x\012\000"
2098
+.LC48:
2099
+ .ascii "ACT VPC = 0x%x\012\000"
2100
+.LC49:
2101
+ .ascii "BUF.page = 0x%x\012\000"
2102
+.LC50:
2103
+ .ascii "BUF.plane = 0x%x\012\000"
2104
+.LC51:
2105
+ .ascii "BUF.id = 0x%x\012\000"
2106
+.LC52:
2107
+ .ascii "BUF.mode = 0x%x\012\000"
2108
+.LC53:
2109
+ .ascii "BUF.a_pages = 0x%x\012\000"
2110
+.LC54:
2111
+ .ascii "BUF VPC = 0x%x\012\000"
2112
+.LC55:
2113
+ .ascii "TMP.page = 0x%x\012\000"
2114
+.LC56:
2115
+ .ascii "TMP.plane = 0x%x\012\000"
2116
+.LC57:
2117
+ .ascii "TMP.id = 0x%x\012\000"
2118
+.LC58:
2119
+ .ascii "TMP.mode = 0x%x\012\000"
2120
+.LC59:
2121
+ .ascii "TMP.a_pages = 0x%x\012\000"
2122
+.LC60:
2123
+ .ascii "GC.page = 0x%x\012\000"
2124
+.LC61:
2125
+ .ascii "GC.plane = 0x%x\012\000"
2126
+.LC62:
2127
+ .ascii "GC.id = 0x%x\012\000"
2128
+.LC63:
2129
+ .ascii "GC.mode = 0x%x\012\000"
2130
+.LC64:
2131
+ .ascii "GC.a_pages = 0x%x\012\000"
2132
+.LC65:
2133
+ .ascii "WR_CHK = %x %x %x\012\000"
2134
+.LC66:
2135
+ .ascii "Read Err Cnt = 0x%x\012\000"
2136
+.LC67:
2137
+ .ascii "Prog Err Cnt = 0x%x\012\000"
2138
+.LC68:
2139
+ .ascii "gc_free_blk_th= 0x%x\012\000"
2140
+.LC69:
2141
+ .ascii "gc_merge_free_blk_th= 0x%x\012\000"
2142
+.LC70:
2143
+ .ascii "gc_skip_write_count= 0x%x\012\000"
2144
+.LC71:
2145
+ .ascii "gc_blk_index= 0x%x\012\000"
2146
+.LC72:
2147
+ .ascii "free min EC= 0x%x\012\000"
2148
+.LC73:
2149
+ .ascii "free max EC= 0x%x\012\000"
2150
+.LC74:
2151
+ .ascii "GC__SB VPC = 0x%x\012\000"
2152
+.LC75:
2153
+ .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
2154
+.LC76:
2155
+ .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
2156
+ .text
18832157 .align 2
18842158 .global FtlPrintInfo2buf
18852159 .syntax unified
....@@ -1887,519 +2161,518 @@
18872161 .fpu softvfp
18882162 .type FtlPrintInfo2buf, %function
18892163 FtlPrintInfo2buf:
1890
- .fnstart
18912164 @ args = 0, pretend = 0, frame = 0
1892
- @ frame_needed = 0, uses_anonymous_args = 0
1893
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1894
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
1895
- mov r6, r0
1896
- ldr r5, .L292
1897
- add r4, r6, #12
1898
- .pad #20
2165
+ @ frame_needed = 1, uses_anonymous_args = 0
2166
+ mov ip, sp
2167
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
2168
+ sub fp, ip, #4
18992169 sub sp, sp, #20
1900
- ldr r1, .L292+4
2170
+ push {lr}
2171
+ bl __gnu_mcount_nc
2172
+ ldr r6, .L265
2173
+ mov r7, r0
2174
+ ldr r1, .L265+4
2175
+ add r5, r7, #12
19012176 bl strcpy
1902
- ldr r3, [r5, #316]
2177
+ ldr r2, .L265+8
2178
+ mov r0, r5
19032179 mov r1, #64
1904
- ldr r2, .L292+8
1905
- mov r0, r4
2180
+ ldr r3, [r6, #316]
2181
+ add r8, r6, #352
19062182 bl snprintf
1907
- add r4, r4, r0
1908
- ldr r1, .L292+12
1909
- mov r0, r4
1910
- add r4, r4, #10
2183
+ add r5, r5, r0
2184
+ ldr r1, .L265+12
2185
+ mov r0, r5
2186
+ add r5, r5, #10
19112187 bl strcpy
1912
- ldr r3, [r5, #2552]
2188
+ ldr r3, [r6, #2552]
2189
+ mov r0, r5
2190
+ ldr r2, .L265+16
19132191 mov r1, #64
1914
- ldr r2, .L292+16
1915
- mov r0, r4
19162192 bl snprintf
1917
- add r4, r4, r0
1918
- ldr r3, [r5, #2548]
1919
- ldr r2, .L292+20
2193
+ add r5, r5, r0
2194
+ ldr r3, [r6, #2548]
2195
+ mov r0, r5
2196
+ ldr r2, .L265+20
19202197 mov r1, #64
1921
- mov r0, r4
1922
- add r7, r5, #352
19232198 bl snprintf
1924
- add r4, r4, r0
1925
- ldr r3, [r5, #2556]
1926
- ldr r2, .L292+24
2199
+ add r5, r5, r0
2200
+ ldr r3, [r6, #2556]
2201
+ mov r0, r5
2202
+ ldr r2, .L265+24
19272203 mov r1, #64
1928
- mov r0, r4
1929
- ldr r8, .L292+28
19302204 bl snprintf
1931
- add r4, r4, r0
1932
- ldr r3, [r5, #2560]
1933
- ldr r2, .L292+32
2205
+ add r5, r5, r0
2206
+ ldr r3, [r6, #2560]
2207
+ mov r0, r5
2208
+ ldr r2, .L265+28
19342209 mov r1, #64
1935
- mov r0, r4
19362210 bl snprintf
1937
- add r4, r4, r0
1938
- ldr r3, [r5, #2564]
1939
- ldr r2, .L292+36
2211
+ add r5, r5, r0
2212
+ ldr r3, [r6, #2564]
2213
+ mov r0, r5
2214
+ ldr r2, .L265+32
19402215 mov r1, #64
1941
- mov r0, r4
19422216 bl snprintf
1943
- add r4, r4, r0
1944
- ldr r3, [r5, #2568]
1945
- ldr r2, .L292+40
2217
+ add r5, r5, r0
2218
+ ldr r3, [r6, #2568]
2219
+ mov r0, r5
2220
+ ldr r2, .L265+36
19462221 mov r1, #64
1947
- mov r0, r4
19482222 bl snprintf
1949
- add r4, r4, r0
1950
- ldr r3, [r5, #2572]
1951
- ldr r2, .L292+44
2223
+ add r5, r5, r0
2224
+ ldr r3, [r6, #2572]
2225
+ mov r0, r5
2226
+ ldr r2, .L265+40
19522227 mov r1, #64
1953
- mov r0, r4
19542228 bl snprintf
1955
- add r4, r4, r0
1956
- ldr r3, [r5, #2576]
1957
- ldr r2, .L292+48
2229
+ add r5, r5, r0
2230
+ ldr r3, [r6, #2576]
2231
+ mov r0, r5
2232
+ ldr r2, .L265+44
19582233 mov r1, #64
1959
- mov r0, r4
19602234 bl snprintf
1961
- ldr r3, [r5, #2580]
1962
- add r4, r4, r0
1963
- ldr r2, .L292+52
2235
+ ldr r3, [r6, #2580]
2236
+ add r5, r5, r0
2237
+ ldr r2, .L265+48
2238
+ mov r0, r5
19642239 mov r1, #64
1965
- mov r0, r4
19662240 lsr r3, r3, #11
19672241 bl snprintf
1968
- ldr r3, [r5, #2584]
1969
- add r4, r4, r0
1970
- ldr r2, .L292+56
2242
+ ldr r3, [r6, #2584]
2243
+ add r5, r5, r0
2244
+ ldr r2, .L265+52
2245
+ mov r0, r5
19712246 mov r1, #64
1972
- mov r0, r4
19732247 lsr r3, r3, #11
19742248 bl snprintf
1975
- add r4, r4, r0
1976
- ldr r3, [r5, #2588]
1977
- ldr r2, .L292+60
1978
- mov r1, #64
2249
+ add r4, r5, r0
2250
+ ldr r3, [r6, #2588]
19792251 mov r0, r4
2252
+ ldr r2, .L265+56
2253
+ mov r1, #64
19802254 bl snprintf
19812255 add r4, r4, r0
1982
- ldr r3, [r5, #2592]
1983
- ldr r2, .L292+64
1984
- mov r1, #64
2256
+ ldr r3, [r6, #2592]
19852257 mov r0, r4
2258
+ ldr r2, .L265+60
2259
+ mov r1, #64
19862260 bl snprintf
19872261 add r4, r4, r0
1988
- ldrh r3, [r7, #6]
1989
- ldr r2, .L292+68
1990
- mov r1, #64
2262
+ ldrh r3, [r8, #6]
19912263 mov r0, r4
2264
+ ldr r2, .L265+64
2265
+ mov r1, #64
19922266 bl snprintf
19932267 add r4, r4, r0
1994
- ldrh r3, [r5, #224]
1995
- ldr r2, .L292+72
1996
- mov r1, #64
2268
+ ldrh r3, [r6, #224]
19972269 mov r0, r4
2270
+ ldr r2, .L265+68
2271
+ mov r1, #64
19982272 bl snprintf
19992273 add r4, r4, r0
2000
- ldr r3, [r5, #2596]
2001
- ldr r2, .L292+76
2002
- mov r1, #64
2274
+ ldr r3, [r6, #2596]
20032275 mov r0, r4
2276
+ ldr r2, .L265+72
2277
+ mov r1, #64
20042278 bl snprintf
20052279 add r4, r4, r0
2006
- ldr r3, [r5, #2600]
2007
- ldr r2, .L292+80
2008
- mov r1, #64
2280
+ ldr r3, [r6, #2600]
20092281 mov r0, r4
2282
+ ldr r2, .L265+76
2283
+ mov r1, #64
20102284 bl snprintf
20112285 add r4, r4, r0
2012
- ldr r3, [r5, #2604]
2013
- ldr r2, .L292+84
2014
- mov r1, #64
2286
+ ldr r3, [r6, #2604]
20152287 mov r0, r4
2288
+ ldr r2, .L265+80
2289
+ mov r1, #64
20162290 bl snprintf
20172291 add r4, r4, r0
2018
- ldr r3, [r5, #2608]
2019
- ldr r2, .L292+88
2020
- mov r1, #64
2292
+ ldr r3, [r6, #2608]
20212293 mov r0, r4
2294
+ ldr r2, .L265+84
2295
+ mov r1, #64
20222296 bl snprintf
20232297 add r4, r4, r0
2024
- ldr r3, [r5, #2612]
2025
- ldr r2, .L292+92
2026
- mov r1, #64
2298
+ ldr r3, [r6, #2612]
20272299 mov r0, r4
2300
+ ldr r2, .L265+88
2301
+ mov r1, #64
2302
+ ldr r5, .L265+92
20282303 bl snprintf
20292304 add r4, r4, r0
2030
- ldr r3, [r5, #2616]
2031
- ldr r2, .L292+96
2032
- mov r1, #64
2305
+ ldr r3, [r6, #2616]
2306
+ ldr r2, .L265+96
20332307 mov r0, r4
2308
+ mov r1, #64
20342309 bl snprintf
20352310 add r4, r4, r0
2036
- ldrh r3, [r8, #30]
2037
- ldr r2, .L292+100
2038
- mov r1, #64
2311
+ ldrh r3, [r5, #30]
20392312 mov r0, r4
2040
- bl snprintf
2041
- add r4, r4, r0
2042
- ldrh r3, [r8, #28]
2043
- ldr r2, .L292+104
2313
+ ldr r2, .L265+100
20442314 mov r1, #64
2045
- mov r0, r4
2046
- bl snprintf
2047
- add r4, r4, r0
2048
- ldr r3, [r5, #340]
2049
- ldr r2, .L292+108
2050
- mov r1, #64
2051
- mov r0, r4
2052
- bl snprintf
2053
- add r4, r4, r0
2054
- ldr r3, [r5, #332]
2055
- ldr r2, .L292+112
2056
- mov r1, #64
2057
- mov r0, r4
2058
- bl snprintf
2059
- add r4, r4, r0
2060
- ldr r3, [r5, #228]
2061
- ldr r2, .L292+116
2062
- mov r1, #64
2063
- mov r0, r4
2064
- bl snprintf
2065
- add r3, r5, #412
2066
- add r4, r4, r0
2067
- ldrh r3, [r3, #6]
2068
- mov r1, #64
2069
- ldr r2, .L292+120
2070
- mov r0, r4
2071
- bl snprintf
2072
- add r4, r4, r0
2073
- ldrh r3, [r5, #240]
2074
- ldr r2, .L292+124
2075
- mov r1, #64
2076
- mov r0, r4
2077
- bl snprintf
2078
- movw r3, #2620
2079
- add r4, r4, r0
2080
- ldrh r3, [r5, r3]
2081
- mov r1, #64
2082
- ldr r2, .L292+128
2083
- mov r0, r4
2084
- bl snprintf
2085
- add r4, r4, r0
2086
- ldr r3, [r5, #244]
2087
- ldr r2, .L292+132
2088
- mov r1, #64
2089
- mov r0, r4
2090
- bl snprintf
2091
- add r3, r5, #2624
2092
- add r4, r4, r0
2093
- ldrh r3, [r3]
2094
- mov r1, #64
2095
- ldr r2, .L292+136
2096
- mov r0, r4
2097
- bl snprintf
2098
- add r4, r4, r0
2099
- ldrh r3, [r7]
2100
- ldr r2, .L292+140
2101
- mov r1, #64
2102
- mov r0, r4
2103
- bl snprintf
2104
- add r4, r4, r0
2105
- ldrh r3, [r5, #26]
2106
- ldr r2, .L292+144
2107
- mov r1, #64
2108
- mov r0, r4
2109
- bl snprintf
2110
- add r4, r4, r0
2111
- ldrb r3, [r5, #30] @ zero_extendqisi2
2112
- ldr r2, .L292+148
2113
- mov r1, #64
2114
- mov r0, r4
2115
- bl snprintf
2116
- add r4, r4, r0
2117
- ldrh r3, [r5, #24]
2118
- ldr r2, .L292+152
2119
- mov r1, #64
2120
- mov r0, r4
2121
- bl snprintf
2122
- add r4, r4, r0
2123
- ldrb r3, [r5, #32] @ zero_extendqisi2
2124
- ldr r2, .L292+156
2125
- mov r1, #64
2126
- mov r0, r4
21272315 bl snprintf
21282316 add r4, r4, r0
21292317 ldrh r3, [r5, #28]
2130
- ldr r2, .L292+160
2131
- mov r1, #64
21322318 mov r0, r4
2133
- bl snprintf
2134
- ldrh r3, [r5, #24]
2135
- add r4, r4, r0
2136
- ldr r2, [r5, #72]
2319
+ ldr r2, .L265+104
21372320 mov r1, #64
2138
- mov r0, r4
2139
- lsl r3, r3, #1
2140
- ldrh r3, [r2, r3]
2141
- ldr r2, .L292+164
21422321 bl snprintf
21432322 add r4, r4, r0
2144
- ldrh r3, [r5, #78]
2145
- ldr r2, .L292+168
2146
- mov r1, #64
2323
+ ldr r3, [r6, #340]
21472324 mov r0, r4
2325
+ ldr r2, .L265+108
2326
+ mov r1, #64
21482327 bl snprintf
21492328 add r4, r4, r0
2150
- ldrb r3, [r5, #82] @ zero_extendqisi2
2151
- ldr r2, .L292+172
2152
- mov r1, #64
2329
+ ldr r3, [r6, #332]
21532330 mov r0, r4
2331
+ ldr r2, .L265+112
2332
+ mov r1, #64
21542333 bl snprintf
21552334 add r4, r4, r0
2156
- ldrh r3, [r5, #76]
2157
- ldr r2, .L292+176
2158
- mov r1, #64
2335
+ ldr r3, [r6, #228]
21592336 mov r0, r4
2337
+ ldr r2, .L265+116
2338
+ mov r1, #64
2339
+ bl snprintf
2340
+ add r3, r6, #412
2341
+ add r4, r4, r0
2342
+ ldr r2, .L265+120
2343
+ mov r0, r4
2344
+ mov r1, #64
2345
+ ldrh r3, [r3, #6]
21602346 bl snprintf
21612347 add r4, r4, r0
2162
- ldrb r3, [r5, #84] @ zero_extendqisi2
2163
- ldr r2, .L292+180
2164
- mov r1, #64
2348
+ ldrh r3, [r6, #240]
21652349 mov r0, r4
2350
+ ldr r2, .L265+124
2351
+ mov r1, #64
2352
+ bl snprintf
2353
+ movw r3, #2620
2354
+ add r4, r4, r0
2355
+ ldr r2, .L265+128
2356
+ ldrh r3, [r6, r3]
2357
+ mov r0, r4
2358
+ mov r1, #64
21662359 bl snprintf
21672360 add r4, r4, r0
2168
- ldrh r3, [r5, #80]
2169
- ldr r2, .L292+184
2170
- mov r1, #64
2361
+ ldr r3, [r6, #244]
21712362 mov r0, r4
2172
- bl snprintf
2173
- ldrh r3, [r5, #76]
2174
- add r4, r4, r0
2175
- ldr r2, [r5, #72]
2363
+ ldr r2, .L265+132
21762364 mov r1, #64
2177
- mov r0, r4
2178
- lsl r3, r3, #1
2179
- ldrh r3, [r2, r3]
2180
- ldr r2, .L292+188
21812365 bl snprintf
2366
+ add r3, r6, #2624
21822367 add r4, r4, r0
2183
- ldrh r3, [r5, #126]
2184
- ldr r2, .L292+192
2368
+ ldr r2, .L265+136
2369
+ mov r0, r4
21852370 mov r1, #64
2186
- mov r0, r4
2187
- bl snprintf
2188
- add r4, r4, r0
2189
- ldrb r3, [r5, #130] @ zero_extendqisi2
2190
- ldr r2, .L292+196
2191
- mov r1, #64
2192
- mov r0, r4
2193
- bl snprintf
2194
- add r4, r4, r0
2195
- ldrh r3, [r5, #124]
2196
- ldr r2, .L292+200
2197
- mov r1, #64
2198
- mov r0, r4
2199
- bl snprintf
2200
- add r4, r4, r0
2201
- ldrb r3, [r5, #132] @ zero_extendqisi2
2202
- ldr r2, .L292+204
2203
- mov r1, #64
2204
- mov r0, r4
2205
- bl snprintf
2206
- add r4, r4, r0
2207
- ldrh r3, [r5, #128]
2208
- ldr r2, .L292+208
2209
- mov r1, #64
2210
- mov r0, r4
2211
- bl snprintf
2212
- add r4, r4, r0
2213
- ldrh r3, [r5, #174]
2214
- ldr r2, .L292+212
2215
- mov r1, #64
2216
- mov r0, r4
2217
- bl snprintf
2218
- add r4, r4, r0
2219
- ldrb r3, [r5, #178] @ zero_extendqisi2
2220
- ldr r2, .L292+216
2221
- mov r1, #64
2222
- mov r0, r4
2223
- bl snprintf
2224
- add r4, r4, r0
2225
- ldrh r3, [r5, #172]
2226
- ldr r2, .L292+220
2227
- mov r1, #64
2228
- mov r0, r4
2229
- bl snprintf
2230
- add r4, r4, r0
2231
- ldrb r3, [r5, #180] @ zero_extendqisi2
2232
- ldr r2, .L292+224
2233
- mov r1, #64
2234
- mov r0, r4
2235
- bl snprintf
2236
- add r4, r4, r0
2237
- ldrh r3, [r5, #176]
2238
- ldr r2, .L292+228
2239
- mov r1, #64
2240
- mov r0, r4
2241
- bl snprintf
2242
- ldr r3, [r5, #2716]
2243
- add r4, r4, r0
2244
- ldr r2, .L292+232
2245
- mov r1, #64
2246
- mov r0, r4
2247
- str r3, [sp, #4]
2248
- ldr r3, [r5, #2724]
2249
- str r3, [sp]
2250
- ldr r3, [r5, #2720]
2251
- bl snprintf
2252
- add r4, r4, r0
2253
- ldr r3, [r5, #2712]
2254
- ldr r2, .L292+236
2255
- mov r1, #64
2256
- mov r0, r4
2257
- bl snprintf
2258
- add r4, r4, r0
2259
- ldr r3, [r5, #2736]
2260
- ldr r2, .L292+240
2261
- mov r1, #64
2262
- mov r0, r4
2263
- bl snprintf
2264
- add r3, r5, #3152
2265
- add r4, r4, r0
22662371 ldrh r3, [r3]
2267
- mov r1, #64
2268
- ldr r2, .L292+244
2372
+ bl snprintf
2373
+ add r4, r4, r0
2374
+ ldrh r3, [r8]
22692375 mov r0, r4
2376
+ ldr r2, .L265+140
2377
+ mov r1, #64
2378
+ bl snprintf
2379
+ add r4, r4, r0
2380
+ ldrh r3, [r6, #26]
2381
+ mov r0, r4
2382
+ ldr r2, .L265+144
2383
+ mov r1, #64
2384
+ bl snprintf
2385
+ add r4, r4, r0
2386
+ ldrb r3, [r6, #30] @ zero_extendqisi2
2387
+ mov r0, r4
2388
+ ldr r2, .L265+148
2389
+ mov r1, #64
2390
+ bl snprintf
2391
+ add r4, r4, r0
2392
+ ldrh r3, [r6, #24]
2393
+ mov r0, r4
2394
+ ldr r2, .L265+152
2395
+ mov r1, #64
2396
+ bl snprintf
2397
+ add r4, r4, r0
2398
+ ldrb r3, [r6, #32] @ zero_extendqisi2
2399
+ mov r0, r4
2400
+ ldr r2, .L265+156
2401
+ mov r1, #64
2402
+ bl snprintf
2403
+ add r4, r4, r0
2404
+ ldrh r3, [r6, #28]
2405
+ mov r0, r4
2406
+ ldr r2, .L265+160
2407
+ mov r1, #64
2408
+ bl snprintf
2409
+ ldrh r3, [r6, #24]
2410
+ ldr r2, [r6, #72]
2411
+ add r4, r4, r0
2412
+ mov r0, r4
2413
+ mov r1, #64
2414
+ lsl r3, r3, #1
2415
+ ldrh r3, [r2, r3]
2416
+ ldr r2, .L265+164
2417
+ bl snprintf
2418
+ add r4, r4, r0
2419
+ ldrh r3, [r6, #78]
2420
+ mov r0, r4
2421
+ ldr r2, .L265+168
2422
+ mov r1, #64
2423
+ bl snprintf
2424
+ add r4, r4, r0
2425
+ ldrb r3, [r6, #82] @ zero_extendqisi2
2426
+ mov r0, r4
2427
+ ldr r2, .L265+172
2428
+ mov r1, #64
2429
+ bl snprintf
2430
+ add r4, r4, r0
2431
+ ldrh r3, [r6, #76]
2432
+ mov r0, r4
2433
+ ldr r2, .L265+176
2434
+ mov r1, #64
2435
+ bl snprintf
2436
+ add r4, r4, r0
2437
+ ldrb r3, [r6, #84] @ zero_extendqisi2
2438
+ mov r0, r4
2439
+ ldr r2, .L265+180
2440
+ mov r1, #64
2441
+ bl snprintf
2442
+ add r4, r4, r0
2443
+ ldrh r3, [r6, #80]
2444
+ mov r0, r4
2445
+ ldr r2, .L265+184
2446
+ mov r1, #64
2447
+ bl snprintf
2448
+ ldrh r3, [r6, #76]
2449
+ ldr r2, [r6, #72]
2450
+ add r4, r4, r0
2451
+ mov r0, r4
2452
+ mov r1, #64
2453
+ lsl r3, r3, #1
2454
+ ldrh r3, [r2, r3]
2455
+ ldr r2, .L265+188
2456
+ bl snprintf
2457
+ add r4, r4, r0
2458
+ ldrh r3, [r6, #126]
2459
+ mov r0, r4
2460
+ ldr r2, .L265+192
2461
+ mov r1, #64
2462
+ bl snprintf
2463
+ add r4, r4, r0
2464
+ ldrb r3, [r6, #130] @ zero_extendqisi2
2465
+ mov r0, r4
2466
+ ldr r2, .L265+196
2467
+ mov r1, #64
2468
+ bl snprintf
2469
+ add r4, r4, r0
2470
+ ldrh r3, [r6, #124]
2471
+ mov r0, r4
2472
+ ldr r2, .L265+200
2473
+ mov r1, #64
2474
+ bl snprintf
2475
+ add r4, r4, r0
2476
+ ldrb r3, [r6, #132] @ zero_extendqisi2
2477
+ mov r0, r4
2478
+ ldr r2, .L265+204
2479
+ mov r1, #64
2480
+ bl snprintf
2481
+ add r4, r4, r0
2482
+ ldrh r3, [r6, #128]
2483
+ mov r0, r4
2484
+ ldr r2, .L265+208
2485
+ mov r1, #64
2486
+ bl snprintf
2487
+ add r4, r4, r0
2488
+ ldrh r3, [r6, #174]
2489
+ mov r0, r4
2490
+ ldr r2, .L265+212
2491
+ mov r1, #64
2492
+ bl snprintf
2493
+ add r4, r4, r0
2494
+ ldrb r3, [r6, #178] @ zero_extendqisi2
2495
+ mov r0, r4
2496
+ ldr r2, .L265+216
2497
+ mov r1, #64
2498
+ bl snprintf
2499
+ add r4, r4, r0
2500
+ ldrh r3, [r6, #172]
2501
+ mov r0, r4
2502
+ ldr r2, .L265+220
2503
+ mov r1, #64
2504
+ bl snprintf
2505
+ add r4, r4, r0
2506
+ ldrb r3, [r6, #180] @ zero_extendqisi2
2507
+ mov r0, r4
2508
+ ldr r2, .L265+224
2509
+ mov r1, #64
2510
+ bl snprintf
2511
+ add r4, r4, r0
2512
+ ldrh r3, [r6, #176]
2513
+ mov r0, r4
2514
+ ldr r2, .L265+228
2515
+ mov r1, #64
2516
+ bl snprintf
2517
+ ldr r3, [r6, #2716]
2518
+ add r4, r4, r0
2519
+ str r3, [sp, #4]
2520
+ ldr r3, [r6, #2724]
2521
+ mov r0, r4
2522
+ ldr r2, .L265+232
2523
+ mov r1, #64
2524
+ str r3, [sp]
2525
+ ldr r3, [r6, #2720]
2526
+ bl snprintf
2527
+ add r4, r4, r0
2528
+ ldr r3, [r6, #2712]
2529
+ mov r0, r4
2530
+ ldr r2, .L265+236
2531
+ mov r1, #64
2532
+ bl snprintf
2533
+ add r4, r4, r0
2534
+ ldr r3, [r6, #2736]
2535
+ mov r0, r4
2536
+ ldr r2, .L265+240
2537
+ mov r1, #64
2538
+ bl snprintf
2539
+ add r3, r6, #3152
2540
+ add r4, r4, r0
2541
+ ldr r2, .L265+244
2542
+ mov r0, r4
2543
+ mov r1, #64
2544
+ ldrh r3, [r3]
22702545 bl snprintf
22712546 movw r3, #3154
22722547 add r4, r4, r0
2273
- ldrh r3, [r5, r3]
2274
- mov r1, #64
2275
- ldr r2, .L292+248
2548
+ ldr r2, .L265+248
2549
+ ldrh r3, [r6, r3]
22762550 mov r0, r4
2551
+ mov r1, #64
22772552 bl snprintf
22782553 add r4, r4, r0
2279
- ldr r3, [r5, #3156]
2280
- ldr r2, .L292+252
2281
- mov r1, #64
2554
+ ldr r3, [r6, #3156]
22822555 mov r0, r4
2556
+ ldr r2, .L265+252
2557
+ mov r1, #64
22832558 bl snprintf
22842559 movw r3, #3160
22852560 add r4, r4, r0
2286
- ldrh r3, [r5, r3]
2561
+ ldr r2, .L265+256
2562
+ ldrh r3, [r6, r3]
22872563 mov r1, #64
2288
- ldr r2, .L292+256
22892564 mov r0, r4
22902565 bl snprintf
22912566 add r4, r4, r0
22922567 bl GetFreeBlockMinEraseCount
2293
- ldr r2, .L292+260
2568
+ ldr r2, .L265+260
22942569 mov r3, r0
22952570 mov r1, #64
22962571 mov r0, r4
22972572 bl snprintf
22982573 add r4, r4, r0
2299
- ldrh r0, [r5, #224]
2574
+ ldrh r0, [r6, #224]
23002575 bl GetFreeBlockMaxEraseCount
2301
- ldr r2, .L292+264
2576
+ ldr r2, .L265+264
23022577 mov r3, r0
23032578 mov r1, #64
23042579 mov r0, r4
23052580 bl snprintf
2306
- ldr r3, .L292+268
2581
+ ldr r3, .L265+268
23072582 add r4, r4, r0
23082583 ldr r3, [r3]
23092584 cmp r3, #1
2310
- beq .L280
2311
-.L285:
2312
- sub r0, r4, r6
2313
- add sp, sp, #20
2314
- @ sp needed
2315
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2316
-.L280:
2317
- ldrh r3, [r5, #172]
2585
+ beq .L254
2586
+.L259:
2587
+ sub r0, r4, r7
2588
+ sub sp, fp, #40
2589
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
2590
+.L254:
2591
+ ldrh r3, [r6, #172]
23182592 movw r2, #65535
23192593 cmp r3, r2
2320
- beq .L282
2321
- ldr r2, [r5, #72]
2594
+ beq .L256
2595
+ ldr r2, [r6, #72]
23222596 lsl r3, r3, #1
23232597 mov r0, r4
23242598 mov r1, #64
23252599 ldrh r3, [r2, r3]
2326
- ldr r2, .L292+272
2600
+ ldr r2, .L265+272
23272601 bl snprintf
23282602 add r4, r4, r0
2329
-.L282:
2603
+.L256:
23302604 mov r0, #0
2331
- ldr r9, .L292+276
2605
+ ldr r10, .L265+276
23322606 bl List_get_gc_head_node
23332607 uxth r0, r0
2334
- mov r7, #0
2335
- movw fp, #65535
2336
- mov r10, #6
2337
-.L284:
2338
- cmp r0, fp
2339
- beq .L283
2340
- ldr r3, [r5, #2536]
2608
+ mov r5, #0
2609
+ movw r9, #65535
2610
+.L258:
2611
+ ldr r3, [r6, #2516]
2612
+ cmp r0, r9
2613
+ beq .L257
2614
+ mov r8, #6
23412615 lsl r2, r0, #1
2342
- mul r8, r10, r0
2343
- mov r1, #64
2344
- ldrh r3, [r3, r2]
2345
- str r3, [sp, #12]
2346
- ldr r3, [r5, #2516]
2616
+ ldr r1, [r6, #2536]
2617
+ mul r8, r8, r0
2618
+ ldrh r1, [r1, r2]
23472619 add r3, r3, r8
2620
+ str r1, [sp, #12]
2621
+ mov r1, #64
23482622 ldrh r3, [r3, #4]
23492623 str r3, [sp, #8]
2350
- ldr r3, [r5, #72]
2624
+ ldr r3, [r6, #72]
23512625 ldrh r3, [r3, r2]
2352
- mov r2, r9
2626
+ mov r2, r10
23532627 stm sp, {r0, r3}
2354
- mov r3, r7
2628
+ mov r3, r5
23552629 mov r0, r4
2356
- add r7, r7, #1
2630
+ add r5, r5, #1
23572631 bl snprintf
2358
- ldr r3, [r5, #2516]
2359
- cmp r7, #16
2632
+ ldr r3, [r6, #2516]
23602633 add r4, r4, r0
2634
+ cmp r5, #16
23612635 ldrh r0, [r3, r8]
2362
- bne .L284
2363
-.L283:
2364
- ldr r2, [r5, #2516]
2365
- mov r7, #0
2366
- ldr r3, [r5, #2532]
2636
+ bne .L258
2637
+.L257:
2638
+ ldr r3, [r6, #2516]
2639
+ mov r8, #0
2640
+ ldr r1, [r6, #2532]
23672641 movw r9, #65535
2368
- ldr fp, .L292+280
2369
- mov r10, #6
2370
- sub r3, r3, r2
2371
- ldr r2, .L292+284
2372
- asr r3, r3, #1
2373
- mul r3, r2, r3
2374
- uxth r3, r3
2375
-.L286:
2376
- cmp r3, r9
2377
- beq .L285
2378
- ldr r1, [r5, #2536]
2379
- lsl r2, r3, #1
2380
- mul r8, r10, r3
2642
+ ldr r10, .L265+280
2643
+ sub r1, r1, r3
2644
+ ldr r3, .L265+284
2645
+ asr r1, r1, #1
2646
+ mul r1, r3, r1
2647
+ uxth r1, r1
2648
+.L260:
2649
+ cmp r1, r9
2650
+ beq .L259
2651
+ ldr r2, [r6, #2536]
2652
+ lsl r3, r1, #1
2653
+ mov r5, #6
23812654 mov r0, r4
2382
- ldrh r2, [r1, r2]
2655
+ ldrh r3, [r2, r3]
2656
+ mul r5, r5, r1
2657
+ str r3, [sp, #8]
2658
+ mov r2, r10
2659
+ ldr r3, [r6, #2516]
2660
+ add r3, r3, r5
2661
+ ldrh r3, [r3, #4]
2662
+ stm sp, {r1, r3}
2663
+ mov r3, r8
23832664 mov r1, #64
2384
- str r2, [sp, #8]
2385
- ldr r2, [r5, #2516]
2386
- add r2, r2, r8
2387
- ldrh r2, [r2, #4]
2388
- str r3, [sp]
2389
- mov r3, r7
2390
- add r7, r7, #1
2391
- str r2, [sp, #4]
2392
- mov r2, fp
2665
+ add r8, r8, #1
23932666 bl snprintf
2394
- cmp r7, #4
2667
+ cmp r8, #4
23952668 add r4, r4, r0
2396
- beq .L285
2397
- ldr r3, [r5, #2516]
2398
- ldrh r3, [r3, r8]
2399
- b .L286
2400
-.L293:
2669
+ beq .L259
2670
+ ldr r3, [r6, #2516]
2671
+ ldrh r1, [r3, r5]
2672
+ b .L260
2673
+.L266:
24012674 .align 2
2402
-.L292:
2675
+.L265:
24032676 .word .LANCHOR0
24042677 .word .LC9
24052678 .word .LC10
....@@ -2407,7 +2680,6 @@
24072680 .word .LC12
24082681 .word .LC13
24092682 .word .LC14
2410
- .word .LANCHOR0+2468
24112683 .word .LC15
24122684 .word .LC16
24132685 .word .LC17
....@@ -2424,6 +2696,7 @@
24242696 .word .LC28
24252697 .word .LC29
24262698 .word .LC30
2699
+ .word .LANCHOR0+2468
24272700 .word .LC31
24282701 .word .LC32
24292702 .word .LC33
....@@ -2472,8 +2745,11 @@
24722745 .word .LC75
24732746 .word .LC76
24742747 .word -1431655765
2475
- .fnend
24762748 .size FtlPrintInfo2buf, .-FtlPrintInfo2buf
2749
+ .section .rodata.str1.1
2750
+.LC77:
2751
+ .ascii "%s\012\000"
2752
+ .text
24772753 .align 2
24782754 .global rknand_proc_ftlread
24792755 .syntax unified
....@@ -2481,35 +2757,41 @@
24812757 .fpu softvfp
24822758 .type rknand_proc_ftlread, %function
24832759 rknand_proc_ftlread:
2484
- .fnstart
24852760 @ args = 0, pretend = 0, frame = 0
2486
- @ frame_needed = 0, uses_anonymous_args = 0
2487
- cmp r0, #2048
2488
- blt .L296
2489
- push {r4, r5, r6, lr}
2490
- .save {r4, r5, r6, lr}
2761
+ @ frame_needed = 1, uses_anonymous_args = 0
2762
+ mov ip, sp
2763
+ push {r4, r5, fp, ip, lr, pc}
2764
+ sub fp, ip, #4
2765
+ push {lr}
2766
+ bl __gnu_mcount_nc
24912767 mov r5, r1
2492
- ldr r3, .L301
2768
+ cmp r0, #2048
2769
+ blt .L269
2770
+ ldr r3, .L270
2771
+ add r4, r5, #30
2772
+ ldr r2, .L270+4
24932773 mov r1, #64
24942774 mov r0, r5
2495
- ldr r2, .L301+4
24962775 bl snprintf
2497
- add r4, r5, r0
24982776 mov r0, r4
24992777 bl FtlPrintInfo2buf
25002778 add r0, r4, r0
25012779 sub r0, r0, r5
2502
- pop {r4, r5, r6, pc}
2503
-.L296:
2780
+ ldmfd sp, {r4, r5, fp, sp, pc}
2781
+.L269:
25042782 mov r0, #0
2505
- bx lr
2506
-.L302:
2783
+ ldmfd sp, {r4, r5, fp, sp, pc}
2784
+.L271:
25072785 .align 2
2508
-.L301:
2786
+.L270:
25092787 .word .LC0
25102788 .word .LC77
2511
- .fnend
25122789 .size rknand_proc_ftlread, .-rknand_proc_ftlread
2790
+ .section .rodata.str1.1
2791
+.LC78:
2792
+ .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
2793
+ .ascii "\012\000"
2794
+ .text
25132795 .align 2
25142796 .global GetSwlReplaceBlock
25152797 .syntax unified
....@@ -2517,175 +2799,176 @@
25172799 .fpu softvfp
25182800 .type GetSwlReplaceBlock, %function
25192801 GetSwlReplaceBlock:
2520
- .fnstart
25212802 @ args = 0, pretend = 0, frame = 8
2522
- @ frame_needed = 0, uses_anonymous_args = 0
2523
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2524
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
2525
- .pad #28
2803
+ @ frame_needed = 1, uses_anonymous_args = 0
2804
+ mov ip, sp
2805
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
2806
+ sub fp, ip, #4
25262807 sub sp, sp, #28
2527
- ldr r4, .L328
2808
+ push {lr}
2809
+ bl __gnu_mcount_nc
2810
+ ldr r4, .L296
25282811 ldr r2, [r4, #2604]
25292812 ldr r3, [r4, #2616]
25302813 cmp r2, r3
2531
- bcs .L304
2814
+ bcs .L273
25322815 ldr r2, [r4, #2536]
25332816 mov r3, #0
25342817 ldrh r1, [r4, #240]
2535
- str r3, [r4, #2596]
25362818 sub r2, r2, #2
2537
-.L305:
2538
- cmp r3, r1
2539
- bcc .L306
2819
+ str r3, [r4, #2596]
2820
+.L274:
25402821 ldr r5, [r4, #2596]
2822
+ cmp r1, r3
2823
+ bhi .L275
25412824 mov r0, r5
25422825 bl __aeabi_uidiv
2543
- ldr r3, .L328+4
2826
+ ldr r3, .L296+4
25442827 str r0, [r4, #2604]
25452828 ldr r0, [r4, #2600]
25462829 ldrh r1, [r3]
25472830 sub r0, r5, r0
25482831 bl __aeabi_uidiv
25492832 str r0, [r4, #2596]
2550
-.L307:
2833
+.L276:
25512834 ldr r6, [r4, #2616]
2552
- ldr r7, [r4, #2604]
2835
+ ldr r9, [r4, #2604]
25532836 add r3, r6, #256
2554
- cmp r3, r7
2555
- bls .L312
2837
+ cmp r3, r9
2838
+ bls .L281
25562839 ldr r2, [r4, #2612]
25572840 add r3, r6, #768
25582841 cmp r3, r2
2559
- bls .L312
2560
-.L314:
2842
+ bls .L281
2843
+.L283:
25612844 movw r5, #65535
2562
-.L313:
2845
+.L282:
25632846 mov r0, r5
2564
- add sp, sp, #28
2565
- @ sp needed
2566
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
2567
-.L306:
2847
+ sub sp, fp, #40
2848
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
2849
+.L275:
25682850 ldrh r0, [r2, #2]!
25692851 add r3, r3, #1
2570
- ldr ip, [r4, #2596]
2571
- add r0, r0, ip
2572
- str r0, [r4, #2596]
2573
- b .L305
2574
-.L304:
2852
+ add r5, r0, r5
2853
+ str r5, [r4, #2596]
2854
+ b .L274
2855
+.L273:
25752856 ldr r3, [r4, #2612]
25762857 cmp r2, r3
25772858 addhi r3, r3, #1
25782859 strhi r3, [r4, #2612]
25792860 movhi r3, #0
2580
- bls .L307
2581
-.L309:
2861
+ bls .L276
2862
+.L278:
25822863 ldrh r2, [r4, #240]
2583
- cmp r3, r2
2584
- bcs .L307
2585
- ldr r0, [r4, #2536]
2864
+ cmp r2, r3
2865
+ bls .L276
25862866 lsl r1, r3, #1
2867
+ ldr r0, [r4, #2536]
25872868 add r3, r3, #1
25882869 ldrh r2, [r0, r1]
25892870 add r2, r2, #1
25902871 strh r2, [r0, r1] @ movhi
2591
- b .L309
2592
-.L312:
2872
+ b .L278
2873
+.L281:
25932874 ldrh r0, [r4, #224]
25942875 add r0, r0, r0, lsl #1
2595
- ubfx r0, r0, #2, #16
2876
+ lsr r0, r0, #2
25962877 bl GetFreeBlockMaxEraseCount
25972878 add r3, r6, #64
2598
- mov r9, r0
2879
+ mov r7, r0
25992880 cmp r0, r3
2600
- bcc .L314
2881
+ bcc .L283
26012882 ldr r3, [r4, #2520]
26022883 cmp r3, #0
2603
- beq .L314
2884
+ beq .L283
26042885 ldrh r2, [r4, #240]
2605
- movw r1, #65535
2606
- ldr lr, [r4, #2516]
2607
- mov r0, #0
2608
- ldr r8, [r4, #2536]
2609
- mov fp, #6
2610
- ldr r10, .L328+8
2611
- str r2, [sp, #20]
2612
- mov r2, r1
2613
-.L315:
2614
- ldrh ip, [r3]
2886
+ movw r8, #65535
2887
+ ldr ip, [r4, #2516]
2888
+ mov r1, #0
2889
+ ldr r10, [r4, #2536]
2890
+ mov lr, #6
2891
+ str r2, [fp, #-48]
2892
+ mov r2, r8
2893
+.L284:
2894
+ ldrh r0, [r3]
26152895 movw r5, #65535
2616
- cmp ip, r5
2617
- bne .L318
2896
+ cmp r0, r5
2897
+ bne .L287
26182898 mov r5, r2
2619
-.L317:
2899
+.L286:
26202900 movw r3, #65535
26212901 cmp r5, r3
2622
- beq .L314
2623
- lsl fp, r5, #1
2624
- ldrh r10, [r8, fp]
2625
- cmp r6, r10
2626
- bcs .L319
2902
+ beq .L283
2903
+ lsl r1, r5, #1
2904
+ ldrh r2, [r10, r1]
2905
+ cmp r6, r2
2906
+ bcs .L288
2907
+ str r2, [fp, #-52]
2908
+ str r1, [fp, #-48]
26272909 bl GetFreeBlockMinEraseCount
2910
+ ldr r1, [fp, #-48]
26282911 cmp r6, r0
2629
- strcc r1, [r4, #2616]
2630
-.L319:
2631
- cmp r7, r10
2632
- bls .L314
2633
- add r3, r10, #128
2634
- cmp r9, r3
2635
- ble .L314
2636
- add r3, r10, #256
2912
+ ldr r2, [fp, #-52]
2913
+ strcc r8, [r4, #2616]
2914
+.L288:
2915
+ cmp r9, r2
2916
+ bls .L283
2917
+ add r3, r2, #128
26372918 cmp r7, r3
2638
- bhi .L320
2919
+ ble .L283
2920
+ add r0, r2, #256
26392921 ldr r3, [r4, #2612]
2640
- add r10, r10, #768
2641
- cmp r10, r3
2642
- bcs .L314
2643
-.L320:
2644
- str r9, [sp, #8]
2645
- mov r2, r7
2646
- ldrh r3, [r8, fp]
2922
+ cmp r9, r0
2923
+ bhi .L289
2924
+ add r2, r2, #768
2925
+ cmp r2, r3
2926
+ bcs .L283
2927
+.L289:
2928
+ str r7, [sp, #8]
2929
+ ldr r0, .L296+8
2930
+ ldrh r2, [r10, r1]
2931
+ str r2, [sp, #4]
2932
+ ldr r2, [r4, #72]
2933
+ ldrh r2, [r2, r1]
26472934 mov r1, r5
2648
- ldr r0, .L328+12
2649
- str r3, [sp, #4]
2650
- ldr r3, [r4, #72]
2651
- ldrh r3, [r3, fp]
2652
- str r3, [sp]
2653
- ldr r3, [r4, #2612]
2935
+ str r2, [sp]
2936
+ mov r2, r9
26542937 bl sftl_printk
26552938 mov r3, #1
26562939 str r3, [r4, #3164]
2657
- b .L313
2658
-.L318:
2659
- add r0, r0, #1
2660
- ldr r5, [sp, #20]
2661
- uxth r0, r0
2662
- cmp r0, r5
2663
- bhi .L314
2940
+ b .L282
2941
+.L287:
2942
+ add r1, r1, #1
2943
+ ldr r5, [fp, #-48]
2944
+ uxth r1, r1
2945
+ cmp r5, r1
2946
+ bcc .L283
26642947 ldrh r5, [r3, #4]
26652948 cmp r5, #0
2666
- beq .L316
2667
- sub r3, r3, lr
2949
+ beq .L285
2950
+ sub r3, r3, ip
2951
+ ldr r5, .L296+12
26682952 asr r3, r3, #1
2669
- mul r3, r10, r3
2953
+ mul r3, r5, r3
26702954 uxth r5, r3
26712955 lsl r3, r5, #1
2672
- ldrh r3, [r8, r3]
2956
+ ldrh r3, [r10, r3]
26732957 cmp r6, r3
2674
- bcs .L317
2675
- cmp r1, r3
2676
- movhi r1, r3
2677
- movhi r2, r5
2678
-.L316:
2679
- mla r3, fp, ip, lr
2680
- b .L315
2681
-.L329:
2958
+ bcs .L286
2959
+ cmp r3, r8
2960
+ movcc r8, r3
2961
+ movcc r2, r5
2962
+.L285:
2963
+ mla r3, lr, r0, ip
2964
+ b .L284
2965
+.L297:
26822966 .align 2
2683
-.L328:
2967
+.L296:
26842968 .word .LANCHOR0
26852969 .word .LANCHOR0+292
2686
- .word -1431655765
26872970 .word .LC78
2688
- .fnend
2971
+ .word -1431655765
26892972 .size GetSwlReplaceBlock, .-GetSwlReplaceBlock
26902973 .align 2
26912974 .global free_data_superblock
....@@ -2694,30 +2977,29 @@
26942977 .fpu softvfp
26952978 .type free_data_superblock, %function
26962979 free_data_superblock:
2697
- .fnstart
26982980 @ args = 0, pretend = 0, frame = 0
2699
- @ frame_needed = 0, uses_anonymous_args = 0
2981
+ @ frame_needed = 1, uses_anonymous_args = 0
2982
+ mov ip, sp
2983
+ push {fp, ip, lr, pc}
2984
+ sub fp, ip, #4
2985
+ push {lr}
2986
+ bl __gnu_mcount_nc
27002987 movw r2, #65535
27012988 cmp r0, r2
2702
- beq .L333
2703
- ldr r2, .L336
2989
+ beq .L299
2990
+ ldr r2, .L300
27042991 lsl r3, r0, #1
2705
- push {r4, lr}
2706
- .save {r4, lr}
27072992 mov r1, #0
27082993 ldr r2, [r2, #72]
27092994 strh r1, [r2, r3] @ movhi
27102995 bl INSERT_FREE_LIST
2996
+.L299:
27112997 mov r0, #0
2712
- pop {r4, pc}
2713
-.L333:
2714
- mov r0, #0
2715
- bx lr
2716
-.L337:
2998
+ ldmfd sp, {fp, sp, pc}
2999
+.L301:
27173000 .align 2
2718
-.L336:
3001
+.L300:
27193002 .word .LANCHOR0
2720
- .fnend
27213003 .size free_data_superblock, .-free_data_superblock
27223004 .align 2
27233005 .global get_new_active_ppa
....@@ -2726,113 +3008,113 @@
27263008 .fpu softvfp
27273009 .type get_new_active_ppa, %function
27283010 get_new_active_ppa:
2729
- .fnstart
27303011 @ args = 0, pretend = 0, frame = 0
2731
- @ frame_needed = 0, uses_anonymous_args = 0
2732
- push {r4, r5, r6, lr}
2733
- .save {r4, r5, r6, lr}
2734
- movw r3, #65535
3012
+ @ frame_needed = 1, uses_anonymous_args = 0
3013
+ mov ip, sp
3014
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
3015
+ sub fp, ip, #4
3016
+ push {lr}
3017
+ bl __gnu_mcount_nc
27353018 ldrh r2, [r0]
3019
+ movw r3, #65535
27363020 mov r4, r0
27373021 cmp r2, r3
2738
- bne .L339
3022
+ bne .L303
3023
+ ldr r1, .L317
27393024 movw r2, #2792
2740
- ldr r1, .L354
2741
- ldr r0, .L354+4
3025
+ ldr r0, .L317+4
27423026 bl sftl_printk
2743
-.L339:
2744
- ldr r6, .L354+8
3027
+.L303:
3028
+ ldr r6, .L317+8
27453029 movw r3, #302
27463030 ldrh r2, [r4, #2]
27473031 ldrh r3, [r6, r3]
27483032 cmp r2, r3
2749
- bne .L340
3033
+ bne .L304
3034
+ ldr r1, .L317
27503035 movw r2, #2793
2751
- ldr r1, .L354
2752
- ldr r0, .L354+4
3036
+ ldr r0, .L317+4
27533037 bl sftl_printk
2754
-.L340:
3038
+.L304:
27553039 ldrh r3, [r4, #4]
27563040 cmp r3, #0
2757
- bne .L341
3041
+ bne .L305
3042
+ ldr r1, .L317
27583043 movw r2, #2794
2759
- ldr r1, .L354
2760
- ldr r0, .L354+4
3044
+ ldr r0, .L317+4
27613045 bl sftl_printk
2762
-.L341:
2763
- ldrb r2, [r4, #6] @ zero_extendqisi2
2764
- mov r3, #0
2765
- ldrh r1, [r6, #232]
3046
+.L305:
3047
+ ldrb r3, [r4, #6] @ zero_extendqisi2
3048
+ mov r1, #0
3049
+ strb r1, [r4, #10]
27663050 movw ip, #65535
2767
- strb r3, [r4, #10]
2768
- add r2, r4, r2, lsl #1
2769
- ldrh r0, [r2, #16]
2770
- mov r2, r3
2771
-.L342:
2772
- cmp r0, ip
2773
- beq .L344
2774
- movw r3, #302
2775
- ldrh r5, [r4, #2]
2776
- ldrh ip, [r6, r3]
3051
+ ldrh r0, [r6, #232]
3052
+ add r3, r4, r3, lsl #1
3053
+ ldrh r5, [r3, #16]
3054
+.L306:
3055
+ ldrh r2, [r4, #2]
27773056 cmp r5, ip
2778
- movwcs r5, #65535
2779
- bcs .L338
2780
- ldrh r2, [r4, #4]
2781
- orr r5, r5, r0, lsl #10
2782
- ldrb r3, [r4, #6] @ zero_extendqisi2
3057
+ beq .L308
3058
+ movw r3, #302
3059
+ ldrh ip, [r6, r3]
3060
+ cmp ip, r2
3061
+ movwls r5, #65535
3062
+ bls .L302
3063
+ ldrh r3, [r4, #4]
3064
+ orr r5, r2, r5, lsl #10
3065
+ ldrb r2, [r4, #6] @ zero_extendqisi2
27833066 movw lr, #65535
2784
- sub r2, r2, #1
2785
- uxth r2, r2
2786
- strh r2, [r4, #4] @ movhi
2787
-.L347:
2788
- add r3, r3, #1
2789
- uxtb r3, r3
2790
- cmp r1, r3
2791
- ldrheq r0, [r4, #2]
2792
- moveq r3, #0
2793
- addeq r0, r0, #1
2794
- strheq r0, [r4, #2] @ movhi
2795
- add r0, r4, r3, lsl #1
2796
- ldrh r0, [r0, #16]
2797
- cmp r0, lr
2798
- beq .L347
2799
- strb r3, [r4, #6]
2800
- cmp r2, #0
2801
- ldrh r3, [r4, #2]
2802
- sub r3, r3, ip
2803
- clz r3, r3
2804
- lsr r3, r3, #5
2805
- moveq r3, #0
3067
+ sub r3, r3, #1
3068
+ uxth r3, r3
3069
+ strh r3, [r4, #4] @ movhi
3070
+.L311:
3071
+ add r1, r2, #1
3072
+ uxtb r2, r1
3073
+ cmp r0, r2
3074
+ mov r1, r2
3075
+ moveq r2, #0
3076
+ ldrheq r1, [r4, #2]
3077
+ addeq r1, r1, #1
3078
+ strheq r1, [r4, #2] @ movhi
3079
+ add r1, r4, r2, lsl #1
3080
+ ldrh r1, [r1, #16]
3081
+ cmp r1, lr
3082
+ beq .L311
3083
+ strb r2, [r4, #6]
28063084 cmp r3, #0
2807
- beq .L338
3085
+ ldrh r2, [r4, #2]
3086
+ sub r2, r2, ip
3087
+ clz r2, r2
3088
+ lsr r2, r2, #5
3089
+ moveq r2, #0
3090
+ cmp r2, #0
3091
+ beq .L302
3092
+ ldr r1, .L317
28083093 movw r2, #2817
2809
- ldr r1, .L354
2810
- ldr r0, .L354+4
3094
+ ldr r0, .L317+4
28113095 bl sftl_printk
2812
-.L338:
3096
+.L302:
28133097 mov r0, r5
2814
- pop {r4, r5, r6, pc}
2815
-.L344:
3098
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
3099
+.L308:
28163100 ldrb r3, [r4, #6] @ zero_extendqisi2
28173101 add r3, r3, #1
28183102 uxtb r3, r3
2819
- cmp r3, r1
28203103 strb r3, [r4, #6]
2821
- ldrheq r3, [r4, #2]
2822
- strbeq r2, [r4, #6]
2823
- addeq r3, r3, #1
2824
- strheq r3, [r4, #2] @ movhi
3104
+ cmp r3, r0
3105
+ strbeq r1, [r4, #6]
3106
+ addeq r2, r2, #1
3107
+ strheq r2, [r4, #2] @ movhi
28253108 ldrb r3, [r4, #6] @ zero_extendqisi2
28263109 add r3, r4, r3, lsl #1
2827
- ldrh r0, [r3, #16]
2828
- b .L342
2829
-.L355:
3110
+ ldrh r5, [r3, #16]
3111
+ b .L306
3112
+.L318:
28303113 .align 2
2831
-.L354:
3114
+.L317:
28323115 .word .LANCHOR1+111
28333116 .word .LC8
28343117 .word .LANCHOR0
2835
- .fnend
28363118 .size get_new_active_ppa, .-get_new_active_ppa
28373119 .align 2
28383120 .global FtlGcBufInit
....@@ -2841,103 +3123,101 @@
28413123 .fpu softvfp
28423124 .type FtlGcBufInit, %function
28433125 FtlGcBufInit:
2844
- .fnstart
28453126 @ args = 0, pretend = 0, frame = 0
2846
- @ frame_needed = 0, uses_anonymous_args = 0
2847
- push {r4, r5, r6, r7, r8, r9, lr}
2848
- .save {r4, r5, r6, r7, r8, r9, lr}
2849
- mov lr, #12
2850
- ldr r5, .L362
2851
- mov r4, #1
2852
- mov r6, #20
2853
- mov r3, #0
2854
- ldr r2, .L362+4
2855
- str r3, [r2, #3168]
2856
-.L357:
2857
- ldrh r1, [r2, #232]
2858
- uxth r0, r3
2859
- add ip, r3, #1
2860
- cmp r0, r1
2861
- bcc .L358
2862
- ldr r4, .L362
3127
+ @ frame_needed = 1, uses_anonymous_args = 0
3128
+ mov ip, sp
3129
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
3130
+ sub fp, ip, #4
3131
+ push {lr}
3132
+ bl __gnu_mcount_nc
3133
+ ldr r3, .L325
3134
+ mov r1, #0
3135
+ ldr r6, .L325+4
3136
+ mov r4, #12
3137
+ mov r5, #1
3138
+ mov r7, #20
3139
+ str r1, [r3, #3168]
3140
+.L320:
3141
+ ldrh r2, [r3, #232]
3142
+ uxth r0, r1
3143
+ cmp r2, r0
3144
+ bhi .L321
3145
+ ldr r4, .L325+4
28633146 mov ip, #12
28643147 mov lr, #0
2865
-.L359:
2866
- ldr r3, [r2, #3188]
2867
- cmp r1, r3
2868
- bcc .L360
2869
- pop {r4, r5, r6, r7, r8, r9, pc}
2870
-.L358:
2871
- uxth r3, r3
2872
- ldr r7, [r2, #3172]
2873
- mul r0, lr, r3
2874
- add r1, r7, r0
2875
- str r4, [r1, #8]
2876
- ldrh r1, [r5]
2877
- mul r1, r3, r1
2878
- add r8, r1, #3
2879
- cmp r1, #0
2880
- movlt r1, r8
2881
- ldr r8, [r2, #3176]
3148
+.L322:
3149
+ ldr r1, [r3, #3188]
3150
+ cmp r2, r1
3151
+ ldmfdcs sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
3152
+ ldrh r0, [r4]
3153
+ mul r5, ip, r2
3154
+ ldr r6, [r3, #3172]
3155
+ add r1, r6, r5
3156
+ mul r0, r2, r0
3157
+ cmp r0, #0
3158
+ str lr, [r1, #8]
3159
+ add r1, r0, #3
3160
+ movge r1, r0
3161
+ ldr r0, [r3, #3176]
28823162 bic r1, r1, #3
2883
- add r1, r8, r1
2884
- str r1, [r7, r0]
2885
- ldr r1, .L362+8
2886
- ldr r8, [r2, #3172]
2887
- ldrh r1, [r1]
2888
- add r7, r8, r0
2889
- mul r1, r3, r1
2890
- add r9, r1, #3
2891
- cmp r1, #0
2892
- movlt r1, r9
2893
- ldr r9, [r2, #3180]
3163
+ add r1, r0, r1
3164
+ str r1, [r6, r5]
3165
+ ldr r1, [r3, #3172]
3166
+ add r5, r1, r5
3167
+ ldr r1, .L325+8
3168
+ ldrh r0, [r1]
3169
+ mul r0, r2, r0
3170
+ add r2, r2, #1
3171
+ cmp r0, #0
3172
+ add r1, r0, #3
3173
+ movge r1, r0
3174
+ ldr r0, [r3, #3180]
28943175 bic r1, r1, #3
2895
- add r1, r9, r1
2896
- str r1, [r7, #4]
2897
- ldr r1, [r2, #3184]
2898
- mla r3, r6, r3, r1
2899
- ldr r1, [r8, r0]
2900
- str r1, [r3, #8]
2901
- ldr r1, [r7, #4]
2902
- str r1, [r3, #12]
2903
- mov r3, ip
2904
- b .L357
2905
-.L360:
2906
- mul r5, ip, r1
2907
- ldr r6, [r2, #3172]
2908
- add r3, r6, r5
2909
- str lr, [r3, #8]
2910
- ldrh r3, [r4]
2911
- mul r3, r1, r3
2912
- add r0, r3, #3
2913
- cmp r3, #0
2914
- movlt r3, r0
2915
- ldr r0, [r2, #3176]
2916
- bic r3, r3, #3
2917
- add r3, r0, r3
2918
- str r3, [r6, r5]
2919
- ldr r3, .L362+8
2920
- ldr r0, [r2, #3172]
2921
- ldrh r3, [r3]
2922
- add r0, r0, r5
2923
- mul r3, r1, r3
3176
+ uxth r2, r2
3177
+ add r1, r0, r1
3178
+ str r1, [r5, #4]
3179
+ b .L322
3180
+.L321:
3181
+ uxth ip, r1
3182
+ ldrh lr, [r6]
3183
+ ldr r8, [r3, #3172]
29243184 add r1, r1, #1
2925
- uxth r1, r1
2926
- add r5, r3, #3
2927
- cmp r3, #0
2928
- movlt r3, r5
2929
- ldr r5, [r2, #3180]
2930
- bic r3, r3, #3
2931
- add r3, r5, r3
2932
- str r3, [r0, #4]
2933
- b .L359
2934
-.L363:
3185
+ mul r0, r4, ip
3186
+ mul lr, ip, lr
3187
+ add r2, r8, r0
3188
+ cmp lr, #0
3189
+ str r5, [r2, #8]
3190
+ add r2, lr, #3
3191
+ movge r2, lr
3192
+ ldr lr, [r3, #3176]
3193
+ bic r2, r2, #3
3194
+ add r2, lr, r2
3195
+ str r2, [r8, r0]
3196
+ ldr r2, .L325+8
3197
+ ldr r8, [r3, #3172]
3198
+ add lr, r8, r0
3199
+ ldrh r9, [r2]
3200
+ mul r9, ip, r9
3201
+ cmp r9, #0
3202
+ add r2, r9, #3
3203
+ movge r2, r9
3204
+ ldr r9, [r3, #3180]
3205
+ bic r2, r2, #3
3206
+ add r2, r9, r2
3207
+ str r2, [lr, #4]
3208
+ ldr r2, [r3, #3184]
3209
+ mla ip, r7, ip, r2
3210
+ ldr r2, [r8, r0]
3211
+ str r2, [ip, #8]
3212
+ ldr r2, [lr, #4]
3213
+ str r2, [ip, #12]
3214
+ b .L320
3215
+.L326:
29353216 .align 2
2936
-.L362:
2937
- .word .LANCHOR0+310
3217
+.L325:
29383218 .word .LANCHOR0
3219
+ .word .LANCHOR0+310
29393220 .word .LANCHOR0+312
2940
- .fnend
29413221 .size FtlGcBufInit, .-FtlGcBufInit
29423222 .align 2
29433223 .global FtlGcBufFree
....@@ -2946,44 +3226,45 @@
29463226 .fpu softvfp
29473227 .type FtlGcBufFree, %function
29483228 FtlGcBufFree:
2949
- .fnstart
29503229 @ args = 0, pretend = 0, frame = 0
2951
- @ frame_needed = 0, uses_anonymous_args = 0
2952
- ldr r3, .L372
2953
- push {r4, r5, r6, r7, r8, r9, r10, lr}
2954
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
3230
+ @ frame_needed = 1, uses_anonymous_args = 0
3231
+ mov ip, sp
3232
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
3233
+ sub fp, ip, #4
3234
+ push {lr}
3235
+ bl __gnu_mcount_nc
3236
+ ldr r3, .L334
29553237 mov lr, #0
3238
+ mov r8, lr
29563239 mov r5, #20
29573240 mov r7, #12
2958
- mov r8, lr
29593241 ldr r6, [r3, #3188]
29603242 ldr r4, [r3, #3172]
2961
-.L365:
3243
+.L328:
29623244 uxth r3, lr
29633245 cmp r1, r3
2964
- popls {r4, r5, r6, r7, r8, r9, r10, pc}
3246
+ ldmfdls sp, {r3, r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
29653247 mla ip, r5, r3, r0
29663248 mov r2, #0
2967
-.L366:
3249
+.L329:
29683250 uxth r3, r2
29693251 cmp r6, r3
2970
- bls .L367
3252
+ bls .L330
29713253 mul r3, r7, r3
29723254 add r2, r2, #1
2973
- ldr r10, [r4, r3]
29743255 add r9, r4, r3
3256
+ ldr r10, [r4, r3]
29753257 ldr r3, [ip, #8]
29763258 cmp r10, r3
2977
- bne .L366
3259
+ bne .L329
29783260 str r8, [r9, #8]
2979
-.L367:
3261
+.L330:
29803262 add lr, lr, #1
2981
- b .L365
2982
-.L373:
3263
+ b .L328
3264
+.L335:
29833265 .align 2
2984
-.L372:
3266
+.L334:
29853267 .word .LANCHOR0
2986
- .fnend
29873268 .size FtlGcBufFree, .-FtlGcBufFree
29883269 .align 2
29893270 .global FtlGcBufAlloc
....@@ -2992,48 +3273,47 @@
29923273 .fpu softvfp
29933274 .type FtlGcBufAlloc, %function
29943275 FtlGcBufAlloc:
2995
- .fnstart
29963276 @ args = 0, pretend = 0, frame = 0
2997
- @ frame_needed = 0, uses_anonymous_args = 0
2998
- ldr r3, .L382
3277
+ @ frame_needed = 1, uses_anonymous_args = 0
3278
+ mov ip, sp
3279
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
3280
+ sub fp, ip, #4
3281
+ push {lr}
3282
+ bl __gnu_mcount_nc
3283
+ ldr r3, .L344
29993284 mov ip, #0
3000
- push {r4, r5, r6, r7, r8, r9, lr}
3001
- .save {r4, r5, r6, r7, r8, r9, lr}
30023285 mov r6, #12
30033286 mov r7, #1
30043287 mov r8, #20
3005
- ldr r4, [r3, #3188]
3006
- ldr r5, [r3, #3172]
3007
-.L375:
3288
+ ldr r5, [r3, #3188]
3289
+ ldr r4, [r3, #3172]
3290
+.L337:
30083291 uxth r2, ip
30093292 cmp r1, r2
3010
- bhi .L379
3011
- pop {r4, r5, r6, r7, r8, r9, pc}
3012
-.L379:
3293
+ ldmfdls sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
30133294 mov lr, #0
3014
-.L376:
3295
+.L338:
30153296 uxth r3, lr
3016
- cmp r4, r3
3017
- bls .L377
3018
- mla r3, r6, r3, r5
3297
+ cmp r5, r3
3298
+ bls .L339
3299
+ mla r3, r6, r3, r4
30193300 add lr, lr, #1
30203301 ldr r9, [r3, #8]
30213302 cmp r9, #0
3022
- bne .L376
3303
+ bne .L338
30233304 mla r2, r8, r2, r0
30243305 ldr lr, [r3]
30253306 str r7, [r3, #8]
30263307 str lr, [r2, #8]
30273308 ldr r3, [r3, #4]
30283309 str r3, [r2, #12]
3029
-.L377:
3310
+.L339:
30303311 add ip, ip, #1
3031
- b .L375
3032
-.L383:
3312
+ b .L337
3313
+.L345:
30333314 .align 2
3034
-.L382:
3315
+.L344:
30353316 .word .LANCHOR0
3036
- .fnend
30373317 .size FtlGcBufAlloc, .-FtlGcBufAlloc
30383318 .align 2
30393319 .global IsBlkInGcList
....@@ -3042,31 +3322,33 @@
30423322 .fpu softvfp
30433323 .type IsBlkInGcList, %function
30443324 IsBlkInGcList:
3045
- .fnstart
30463325 @ args = 0, pretend = 0, frame = 0
3047
- @ frame_needed = 0, uses_anonymous_args = 0
3048
- @ link register save eliminated.
3049
- ldr r2, .L389
3326
+ @ frame_needed = 1, uses_anonymous_args = 0
3327
+ mov ip, sp
3328
+ push {fp, ip, lr, pc}
3329
+ sub fp, ip, #4
3330
+ push {lr}
3331
+ bl __gnu_mcount_nc
3332
+ ldr r2, .L351
30503333 movw r1, #3196
30513334 ldr r3, [r2, #3192]
30523335 ldrh r2, [r2, r1]
30533336 add r2, r3, r2, lsl #1
3054
-.L385:
3337
+.L347:
30553338 cmp r3, r2
3056
- bne .L387
3339
+ bne .L349
30573340 mov r0, #0
3058
- bx lr
3059
-.L387:
3341
+ ldmfd sp, {fp, sp, pc}
3342
+.L349:
30603343 ldrh r1, [r3], #2
30613344 cmp r1, r0
3062
- bne .L385
3345
+ bne .L347
30633346 mov r0, #1
3064
- bx lr
3065
-.L390:
3347
+ ldmfd sp, {fp, sp, pc}
3348
+.L352:
30663349 .align 2
3067
-.L389:
3350
+.L351:
30683351 .word .LANCHOR0
3069
- .fnend
30703352 .size IsBlkInGcList, .-IsBlkInGcList
30713353 .align 2
30723354 .global FtlGcUpdatePage
....@@ -3075,58 +3357,63 @@
30753357 .fpu softvfp
30763358 .type FtlGcUpdatePage, %function
30773359 FtlGcUpdatePage:
3078
- .fnstart
30793360 @ args = 0, pretend = 0, frame = 0
3080
- @ frame_needed = 0, uses_anonymous_args = 0
3081
- push {r4, r5, r6, r7, r8, lr}
3082
- .save {r4, r5, r6, r7, r8, lr}
3361
+ @ frame_needed = 1, uses_anonymous_args = 0
3362
+ mov ip, sp
3363
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
3364
+ sub fp, ip, #4
3365
+ push {lr}
3366
+ bl __gnu_mcount_nc
30833367 mov r4, r0
30843368 ubfx r0, r0, #10, #16
30853369 mov r5, r1
30863370 mov r6, r2
30873371 bl P2V_block_in_plane
3088
- ldr r3, .L396
3372
+ ldr r3, .L357
30893373 movw r2, #3196
30903374 mov ip, #0
3091
- ldrh lr, [r3, r2]
3375
+ ldrh r7, [r3, r2]
30923376 ldr r2, [r3, #3192]
30933377 sub r1, r2, #2
3094
-.L392:
3095
- uxth r7, ip
3378
+.L354:
3379
+ uxth lr, ip
30963380 cmp r7, lr
3097
- bcc .L394
3098
- bne .L393
3099
- lsl ip, r7, #1
3381
+ bhi .L356
3382
+ bne .L355
3383
+ lsl ip, ip, #1
3384
+ movw r1, #3196
31003385 strh r0, [r2, ip] @ movhi
3101
- movw r2, #3196
3102
- ldrh r0, [r3, r2]
3103
- add r0, r0, #1
3104
- strh r0, [r3, r2] @ movhi
3105
- b .L393
3106
-.L394:
3107
- ldrh r7, [r1, #2]!
3108
- add ip, ip, #1
3109
- cmp r7, r0
3110
- bne .L392
3111
-.L393:
3112
- movw ip, #3204
3113
- mov r0, #12
3114
- ldrh r2, [r3, ip]
3115
- mul r0, r0, r2
3116
- ldr r2, [r3, #3200]
3117
- add r1, r2, r0
3118
- stmib r1, {r5, r6}
3119
- str r4, [r2, r0]
3120
- ldrh r2, [r3, ip]
3386
+ ldrh r2, [r3, r1]
31213387 add r2, r2, #1
3122
- strh r2, [r3, ip] @ movhi
3123
- pop {r4, r5, r6, r7, r8, pc}
3124
-.L397:
3388
+ strh r2, [r3, r1] @ movhi
3389
+ b .L355
3390
+.L356:
3391
+ ldrh lr, [r1, #2]!
3392
+ add ip, ip, #1
3393
+ cmp lr, r0
3394
+ bne .L354
3395
+.L355:
3396
+ movw r2, #3204
3397
+ mov r1, #12
3398
+ ldrh ip, [r3, r2]
3399
+ mul ip, r1, ip
3400
+ ldr r1, [r3, #3200]
3401
+ add r0, r1, ip
3402
+ stmib r0, {r5, r6}
3403
+ str r4, [r1, ip]
3404
+ ldrh r1, [r3, r2]
3405
+ add r1, r1, #1
3406
+ strh r1, [r3, r2] @ movhi
3407
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
3408
+.L358:
31253409 .align 2
3126
-.L396:
3410
+.L357:
31273411 .word .LANCHOR0
3128
- .fnend
31293412 .size FtlGcUpdatePage, .-FtlGcUpdatePage
3413
+ .section .rodata.str1.1
3414
+.LC79:
3415
+ .ascii "FtlGcRefreshBlock 0x%x\012\000"
3416
+ .text
31303417 .align 2
31313418 .global FtlGcRefreshBlock
31323419 .syntax unified
....@@ -3134,38 +3421,43 @@
31343421 .fpu softvfp
31353422 .type FtlGcRefreshBlock, %function
31363423 FtlGcRefreshBlock:
3137
- .fnstart
31383424 @ args = 0, pretend = 0, frame = 0
3139
- @ frame_needed = 0, uses_anonymous_args = 0
3140
- push {r4, lr}
3141
- .save {r4, lr}
3142
- mov r1, r0
3425
+ @ frame_needed = 1, uses_anonymous_args = 0
3426
+ mov ip, sp
3427
+ push {r4, r5, fp, ip, lr, pc}
3428
+ sub fp, ip, #4
3429
+ push {lr}
3430
+ bl __gnu_mcount_nc
31433431 mov r4, r0
3144
- ldr r0, .L402
3432
+ mov r1, r0
3433
+ ldr r0, .L362
31453434 bl sftl_printk
3146
- ldr r3, .L402+4
3435
+ ldr r3, .L362+4
31473436 ldrh r0, [r3, #222]
3148
- cmp r4, r0
3149
- beq .L399
3437
+ cmp r0, r4
3438
+ beq .L360
31503439 ldrh r1, [r3, #220]
3151
- cmp r4, r1
3152
- beq .L399
3440
+ cmp r1, r4
3441
+ beq .L360
31533442 movw r2, #65535
31543443 cmp r0, r2
31553444 strheq r4, [r3, #222] @ movhi
3156
- beq .L399
3445
+ beq .L360
31573446 cmp r1, r2
31583447 strheq r4, [r3, #220] @ movhi
3159
-.L399:
3448
+.L360:
31603449 mov r0, #0
3161
- pop {r4, pc}
3162
-.L403:
3450
+ ldmfd sp, {r4, r5, fp, sp, pc}
3451
+.L363:
31633452 .align 2
3164
-.L402:
3453
+.L362:
31653454 .word .LC79
31663455 .word .LANCHOR0
3167
- .fnend
31683456 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock
3457
+ .section .rodata.str1.1
3458
+.LC80:
3459
+ .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000"
3460
+ .text
31693461 .align 2
31703462 .global FtlGcMarkBadPhyBlk
31713463 .syntax unified
....@@ -3173,53 +3465,54 @@
31733465 .fpu softvfp
31743466 .type FtlGcMarkBadPhyBlk, %function
31753467 FtlGcMarkBadPhyBlk:
3176
- .fnstart
31773468 @ args = 0, pretend = 0, frame = 0
3178
- @ frame_needed = 0, uses_anonymous_args = 0
3179
- push {r4, r5, r6, r7, r8, lr}
3180
- .save {r4, r5, r6, r7, r8, lr}
3181
- mov r5, r0
3182
- ldr r4, .L409
3183
- movw r6, #3206
3469
+ @ frame_needed = 1, uses_anonymous_args = 0
3470
+ mov ip, sp
3471
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
3472
+ sub fp, ip, #4
3473
+ push {lr}
3474
+ bl __gnu_mcount_nc
3475
+ ldr r5, .L368
3476
+ movw r7, #3206
3477
+ mov r4, r0
31843478 bl P2V_block_in_plane
3185
- mov r2, r5
3186
- mov r7, r0
3187
- ldrh r1, [r4, r6]
3188
- ldr r0, .L409+4
3479
+ mov r2, r4
3480
+ mov r6, r0
3481
+ ldr r0, .L368+4
3482
+ ldrh r1, [r5, r7]
31893483 bl sftl_printk
3190
- mov r0, r7
3484
+ mov r0, r6
31913485 bl FtlGcRefreshBlock
3192
- ldrh r3, [r4, r6]
3486
+ ldr r1, .L368+8
3487
+ ldrh r3, [r5, r7]
31933488 mov r2, #0
3194
- ldr r0, .L409+8
3195
-.L405:
3196
- uxth r1, r2
3197
- cmp r3, r1
3198
- bhi .L407
3489
+ mov r0, r1
3490
+.L365:
3491
+ uxth ip, r2
3492
+ cmp r3, ip
3493
+ bhi .L367
31993494 cmp r3, #15
3200
- movwls r2, #3206
3201
- addls r1, r3, #1
3202
- strhls r1, [r4, r2] @ movhi
3203
- lslls r3, r3, #1
3204
- ldrls r2, .L409+8
3205
- strhls r5, [r2, r3] @ movhi
3206
- b .L406
3207
-.L407:
3495
+ bhi .L366
3496
+ add r1, r3, #1
3497
+ lsl r3, r3, #1
3498
+ movw r2, #3206
3499
+ strh r4, [r0, r3] @ movhi
3500
+ strh r1, [r5, r2] @ movhi
3501
+ b .L366
3502
+.L367:
3503
+ ldrh ip, [r1], #2
32083504 add r2, r2, #1
3209
- add r1, r0, r2, lsl #1
3210
- ldrh r1, [r1, #-2]
3211
- cmp r1, r5
3212
- bne .L405
3213
-.L406:
3505
+ cmp ip, r4
3506
+ bne .L365
3507
+.L366:
32143508 mov r0, #0
3215
- pop {r4, r5, r6, r7, r8, pc}
3216
-.L410:
3509
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
3510
+.L369:
32173511 .align 2
3218
-.L409:
3512
+.L368:
32193513 .word .LANCHOR0
32203514 .word .LC80
32213515 .word .LANCHOR0+3208
3222
- .fnend
32233516 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
32243517 .align 2
32253518 .global FtlGcReFreshBadBlk
....@@ -3228,28 +3521,30 @@
32283521 .fpu softvfp
32293522 .type FtlGcReFreshBadBlk, %function
32303523 FtlGcReFreshBadBlk:
3231
- .fnstart
32323524 @ args = 0, pretend = 0, frame = 0
3233
- @ frame_needed = 0, uses_anonymous_args = 0
3234
- push {r4, r5, r6, lr}
3235
- .save {r4, r5, r6, lr}
3525
+ @ frame_needed = 1, uses_anonymous_args = 0
3526
+ mov ip, sp
3527
+ push {r4, r5, fp, ip, lr, pc}
3528
+ sub fp, ip, #4
3529
+ push {lr}
3530
+ bl __gnu_mcount_nc
3531
+ ldr r4, .L376
32363532 movw r3, #3206
3237
- ldr r4, .L418
32383533 ldrh r2, [r4, r3]
32393534 cmp r2, #0
3240
- beq .L412
3535
+ beq .L371
32413536 ldrh r1, [r4, #222]
32423537 movw r3, #65535
32433538 cmp r1, r3
3244
- bne .L412
3539
+ bne .L371
32453540 movw r3, #3242
32463541 movw r5, #3242
32473542 ldrh r1, [r4, r3]
32483543 cmp r1, r2
32493544 movcs r2, #0
32503545 strhcs r2, [r4, r3] @ movhi
3546
+ ldr r2, .L376+4
32513547 ldrh r3, [r4, r5]
3252
- ldr r2, .L418+4
32533548 lsl r3, r3, #1
32543549 ldrh r0, [r2, r3]
32553550 bl P2V_block_in_plane
....@@ -3257,15 +3552,14 @@
32573552 ldrh r3, [r4, r5]
32583553 add r3, r3, #1
32593554 strh r3, [r4, r5] @ movhi
3260
-.L412:
3555
+.L371:
32613556 mov r0, #0
3262
- pop {r4, r5, r6, pc}
3263
-.L419:
3557
+ ldmfd sp, {r4, r5, fp, sp, pc}
3558
+.L377:
32643559 .align 2
3265
-.L418:
3560
+.L376:
32663561 .word .LANCHOR0
32673562 .word .LANCHOR0+3208
3268
- .fnend
32693563 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
32703564 .align 2
32713565 .global ftl_malloc
....@@ -3274,17 +3568,16 @@
32743568 .fpu softvfp
32753569 .type ftl_malloc, %function
32763570 ftl_malloc:
3277
- .fnstart
32783571 @ args = 0, pretend = 0, frame = 0
3279
- @ frame_needed = 0, uses_anonymous_args = 0
3280
- @ link register save eliminated.
3281
- ldr r1, .L421
3282
- b __kmalloc
3283
-.L422:
3284
- .align 2
3285
-.L421:
3286
- .word 6291649
3287
- .fnend
3572
+ @ frame_needed = 1, uses_anonymous_args = 0
3573
+ mov ip, sp
3574
+ push {fp, ip, lr, pc}
3575
+ sub fp, ip, #4
3576
+ push {lr}
3577
+ bl __gnu_mcount_nc
3578
+ movw r1, #3265
3579
+ bl __kmalloc
3580
+ ldmfd sp, {fp, sp, pc}
32883581 .size ftl_malloc, .-ftl_malloc
32893582 .align 2
32903583 .global ftl_free
....@@ -3293,13 +3586,28 @@
32933586 .fpu softvfp
32943587 .type ftl_free, %function
32953588 ftl_free:
3296
- .fnstart
32973589 @ args = 0, pretend = 0, frame = 0
3298
- @ frame_needed = 0, uses_anonymous_args = 0
3299
- @ link register save eliminated.
3300
- b kfree
3301
- .fnend
3590
+ @ frame_needed = 1, uses_anonymous_args = 0
3591
+ mov ip, sp
3592
+ push {fp, ip, lr, pc}
3593
+ sub fp, ip, #4
3594
+ push {lr}
3595
+ bl __gnu_mcount_nc
3596
+ bl kfree
3597
+ ldmfd sp, {fp, sp, pc}
33023598 .size ftl_free, .-ftl_free
3599
+ .section .rodata.str1.1
3600
+.LC81:
3601
+ .ascii "%s %p + 0x%x:\000"
3602
+.LC82:
3603
+ .ascii "0x%08x,\000"
3604
+.LC83:
3605
+ .ascii "0x%04x,\000"
3606
+.LC84:
3607
+ .ascii "0x%02x,\000"
3608
+.LC85:
3609
+ .ascii "\012\000"
3610
+ .text
33033611 .align 2
33043612 .global rknand_print_hex
33053613 .syntax unified
....@@ -3307,66 +3615,78 @@
33073615 .fpu softvfp
33083616 .type rknand_print_hex, %function
33093617 rknand_print_hex:
3310
- .fnstart
3311
- @ args = 0, pretend = 0, frame = 0
3312
- @ frame_needed = 0, uses_anonymous_args = 0
3313
- push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
3314
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
3315
- mov r6, #0
3316
- ldr fp, .L434
3317
- mov r10, r0
3318
- mov r7, r1
3618
+ @ args = 0, pretend = 0, frame = 8
3619
+ @ frame_needed = 1, uses_anonymous_args = 0
3620
+ mov ip, sp
3621
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
3622
+ sub fp, ip, #4
3623
+ sub sp, sp, #12
3624
+ push {lr}
3625
+ bl __gnu_mcount_nc
3626
+ ldr r10, .L389
3627
+ mov r7, #0
3628
+ mov r9, r0
3629
+ mov r5, r1
33193630 mov r8, r2
3320
- mov r9, r3
3321
- mov r5, r6
3322
- mov r4, r6
3323
-.L425:
3324
- cmp r4, r9
3325
- bcc .L431
3326
- ldr r0, .L434+4
3327
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
3328
- b sftl_printk
3329
-.L431:
3330
- cmp r5, #0
3331
- bne .L426
3332
- mov r3, r6
3333
- mov r2, r7
3334
- mov r1, r10
3335
- ldr r0, .L434+8
3631
+ mov r6, r7
3632
+ mov r4, r7
3633
+ str r3, [fp, #-48]
3634
+.L381:
3635
+ ldr r3, [fp, #-48]
3636
+ cmp r3, r4
3637
+ bhi .L387
3638
+ ldr r0, .L389+4
33363639 bl sftl_printk
3337
-.L426:
3640
+ sub sp, fp, #40
3641
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
3642
+.L387:
3643
+ cmp r6, #0
3644
+ bne .L382
3645
+ ldr r0, .L389+8
3646
+ mov r3, r7
3647
+ mov r2, r5
3648
+ mov r1, r9
3649
+ bl sftl_printk
3650
+.L382:
33383651 cmp r8, #4
3339
- ldreq r1, [r7, r4, lsl #2]
3340
- ldreq r0, .L434+12
3341
- beq .L433
3652
+ ldreq r1, [r5, r4, lsl #2]
3653
+ ldreq r0, .L389+12
3654
+ beq .L388
33423655 cmp r8, #2
33433656 lsleq r3, r4, #1
3344
- ldrbne r1, [r7, r4] @ zero_extendqisi2
3345
- ldrne r0, .L434+16
3346
- moveq r0, fp
3347
- ldrheq r1, [r7, r3]
3348
-.L433:
3349
- add r5, r5, #1
3657
+ movne r0, r10
3658
+ ldreq r0, .L389+16
3659
+ ldrheq r1, [r5, r3]
3660
+ ldrbne r1, [r5, r4] @ zero_extendqisi2
3661
+.L388:
3662
+ add r6, r6, #1
33503663 bl sftl_printk
3351
- cmp r5, #15
3352
- bls .L430
3353
- mov r5, #0
3354
- ldr r0, .L434+4
3664
+ cmp r6, #15
3665
+ bls .L386
3666
+ mov r6, #0
3667
+ ldr r0, .L389+4
33553668 bl sftl_printk
3356
-.L430:
3669
+.L386:
33573670 add r4, r4, #1
3358
- add r6, r6, r8
3359
- b .L425
3360
-.L435:
3671
+ add r7, r7, r8
3672
+ b .L381
3673
+.L390:
33613674 .align 2
3362
-.L434:
3363
- .word .LC83
3675
+.L389:
3676
+ .word .LC84
33643677 .word .LC85
33653678 .word .LC81
33663679 .word .LC82
3367
- .word .LC84
3368
- .fnend
3680
+ .word .LC83
33693681 .size rknand_print_hex, .-rknand_print_hex
3682
+ .section .rodata.str1.1
3683
+.LC86:
3684
+ .ascii "%s: addr: %x is in id block!!!!!!!!!!\012\000"
3685
+.LC87:
3686
+ .ascii "not free: w: d:\000"
3687
+.LC88:
3688
+ .ascii "not free: w: s:\000"
3689
+ .text
33703690 .align 2
33713691 .global FlashEraseBlocks
33723692 .syntax unified
....@@ -3374,111 +3694,111 @@
33743694 .fpu softvfp
33753695 .type FlashEraseBlocks, %function
33763696 FlashEraseBlocks:
3377
- .fnstart
3378
- @ args = 0, pretend = 0, frame = 24
3379
- @ frame_needed = 0, uses_anonymous_args = 0
3380
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
3381
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
3382
- mov r8, r2
3383
- ldr r5, .L454
3384
- .pad #28
3385
- sub sp, sp, #28
3386
- mov r4, r0
3387
- mov fp, r0
3388
- ldr r2, .L454+4
3389
- mov r7, #0
3390
- ldrh r9, [r5, #12]
3391
- mvn r10, #0
3392
- ldr r3, [r2]
3393
- str r2, [sp, #4]
3394
- str r3, [sp, #20]
3395
- lsl r3, r9, #3
3396
- str r3, [sp]
3397
-.L437:
3398
- cmp r7, r8
3399
- beq .L441
3400
- add r2, sp, #12
3401
- add r1, sp, #16
3402
- mov r0, fp
3697
+ @ args = 0, pretend = 0, frame = 32
3698
+ @ frame_needed = 1, uses_anonymous_args = 0
3699
+ mov ip, sp
3700
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
3701
+ sub fp, ip, #4
3702
+ sub sp, sp, #36
3703
+ push {lr}
3704
+ bl __gnu_mcount_nc
3705
+ mov r3, sp
3706
+ ldr r10, .L407
3707
+ bic r9, r3, #8128
3708
+ mov r5, r0
3709
+ bic r9, r9, #63
3710
+ mov r7, r2
3711
+ mov r4, #0
3712
+ ldr r3, [r9, #24]
3713
+ str r3, [fp, #-48]
3714
+ ldrh r3, [r10, #12]
3715
+ str r3, [fp, #-64]
3716
+ lsl r3, r3, #3
3717
+ str r3, [fp, #-68]
3718
+ add r3, r2, r2, lsl #2
3719
+ str r3, [fp, #-72]
3720
+.L392:
3721
+ ldr r3, [fp, #-72]
3722
+ cmp r4, r3
3723
+ beq .L395
3724
+ sub r2, fp, #56
3725
+ sub r1, fp, #52
3726
+ add r0, r5, r4, lsl #2
3727
+ mov r6, r5
34033728 bl l2p_addr_tran
3404
- ldr r6, [sp, #12]
3405
- cmp r6, #0
3406
- bne .L438
3407
- ldr r2, [sp, #16]
3408
- ldr r3, [sp]
3729
+ ldr r8, [fp, #-56]
3730
+ cmp r8, #0
3731
+ bne .L393
3732
+ ldr r2, [fp, #-52]
3733
+ ldr r3, [fp, #-68]
34093734 cmp r3, r2
3410
- bls .L438
3411
- ldr r5, .L454+8
3412
- ldr r7, .L454+12
3413
- ldr r9, .L454+16
3414
- b .L452
3415
-.L440:
3735
+ bls .L393
3736
+ ldr r5, .L407+4
3737
+ ldr r4, .L407+8
3738
+.L394:
34163739 mvn r3, #0
3417
- ldr r2, [sp, #16]
3418
- str r3, [r4, #-20]
3740
+ ldr r2, [fp, #-52]
3741
+ str r3, [r6]
34193742 mov r1, r5
3420
- mov r0, r7
3421
- add r6, r6, #1
3743
+ mov r0, r4
3744
+ add r8, r8, #1
34223745 bl sftl_printk
3746
+ ldr r1, [r6, #8]
3747
+ ldr r0, .L407+12
34233748 mov r3, #16
34243749 mov r2, #4
3425
- ldr r1, [r4, #-12]
3426
- mov r0, r9
3750
+ add r6, r6, #20
34273751 bl rknand_print_hex
34283752 mov r3, #4
3429
- ldr r1, [r4, #-8]
3753
+ ldr r1, [r6, #-8]
34303754 mov r2, r3
3431
- ldr r0, .L454+20
3755
+ ldr r0, .L407+16
34323756 bl rknand_print_hex
3433
-.L452:
3434
- cmp r6, r8
3435
- add r4, r4, #20
3436
- bne .L440
3757
+ cmp r7, r8
3758
+ bne .L394
34373759 bl dump_stack
3438
-.L441:
3439
- ldr r3, [sp, #4]
3440
- mov r0, #0
3441
- ldr r2, [sp, #20]
3442
- ldr r3, [r3]
3760
+.L395:
3761
+ ldr r2, [fp, #-48]
3762
+ ldr r3, [r9, #24]
34433763 cmp r2, r3
3444
- beq .L448
3764
+ beq .L402
34453765 bl __stack_chk_fail
3446
-.L438:
3447
- ldr r2, [r5, #3248]
3448
- uxtb r0, r6
3449
- ldr r1, [sp, #16]
3450
- blx r2
3451
- subs r2, r0, #0
3452
- movne r2, r10
3453
- str r2, [fp]
3454
- ldrh r2, [r5, #14]
3455
- cmp r2, #4
3456
- bne .L445
3457
- ldr r1, [sp, #16]
3458
- ldr r2, [r5, #3248]
3459
- ldrb r0, [sp, #12] @ zero_extendqisi2
3460
- add r1, r9, r1
3766
+.L393:
3767
+ ldr r2, [r10, #3248]
3768
+ uxtb r0, r8
3769
+ ldr r1, [fp, #-52]
34613770 blx r2
34623771 cmp r0, #0
3463
- strne r10, [fp]
3464
-.L445:
3465
- add r7, r7, #1
3466
- add fp, fp, #20
3467
- b .L437
3468
-.L448:
3469
- add sp, sp, #28
3470
- @ sp needed
3471
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
3472
-.L455:
3772
+ streq r0, [r5, r4, lsl #2]
3773
+ mvnne r2, #0
3774
+ strne r2, [r5, r4, lsl #2]
3775
+ ldrh r2, [r10, #14]
3776
+ cmp r2, #4
3777
+ bne .L399
3778
+ ldr r1, [fp, #-52]
3779
+ ldr r3, [fp, #-64]
3780
+ ldr r2, [r10, #3248]
3781
+ ldrb r0, [fp, #-56] @ zero_extendqisi2
3782
+ add r1, r3, r1
3783
+ blx r2
3784
+ cmp r0, #0
3785
+ mvnne r2, #0
3786
+ strne r2, [r5, r4, lsl #2]
3787
+.L399:
3788
+ add r4, r4, #5
3789
+ b .L392
3790
+.L402:
3791
+ mov r0, #0
3792
+ sub sp, fp, #40
3793
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
3794
+.L408:
34733795 .align 2
3474
-.L454:
3796
+.L407:
34753797 .word .LANCHOR0
3476
- .word __stack_chk_guard
34773798 .word .LANCHOR1+130
34783799 .word .LC86
34793800 .word .LC87
34803801 .word .LC88
3481
- .fnend
34823802 .size FlashEraseBlocks, .-FlashEraseBlocks
34833803 .align 2
34843804 .global FtlFreeSysBlkQueueIn
....@@ -3487,41 +3807,43 @@
34873807 .fpu softvfp
34883808 .type FtlFreeSysBlkQueueIn, %function
34893809 FtlFreeSysBlkQueueIn:
3490
- .fnstart
34913810 @ args = 0, pretend = 0, frame = 0
3492
- @ frame_needed = 0, uses_anonymous_args = 0
3811
+ @ frame_needed = 1, uses_anonymous_args = 0
3812
+ mov ip, sp
3813
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
3814
+ sub fp, ip, #4
3815
+ push {lr}
3816
+ bl __gnu_mcount_nc
34933817 sub r3, r0, #1
34943818 movw r2, #65533
3819
+ mov r6, r0
34953820 uxth r3, r3
34963821 cmp r3, r2
3497
- bxhi lr
3498
- push {r4, r5, r6, r7, r8, lr}
3499
- .save {r4, r5, r6, r7, r8, lr}
3500
- ldr r6, .L469
3501
- add r4, r6, #412
3822
+ ldmfdhi sp, {r4, r5, r6, r7, fp, sp, pc}
3823
+ ldr r7, .L418
3824
+ add r4, r7, #412
35023825 ldrh r3, [r4, #6]
35033826 cmp r3, #1024
3504
- popeq {r4, r5, r6, r7, r8, pc}
3827
+ ldmfdeq sp, {r4, r5, r6, r7, fp, sp, pc}
35053828 cmp r1, #0
3506
- mov r5, r0
3507
- beq .L458
3829
+ beq .L411
35083830 bl P2V_block_in_plane
3509
- mov r7, r0
3510
- ldr r0, [r6, #3268]
3511
- lsl r3, r5, #10
3831
+ mov r5, r0
3832
+ ldr r0, [r7, #3268]
3833
+ lsl r3, r6, #10
35123834 mov r2, #1
35133835 mov r1, r2
35143836 str r3, [r0, #4]
35153837 bl FlashEraseBlocks
3516
- ldr r2, [r6, #2536]
3517
- lsl r0, r7, #1
3518
- ldrh r3, [r2, r0]
3838
+ lsl r3, r5, #1
3839
+ ldr r1, [r7, #2536]
3840
+ ldrh r2, [r1, r3]
3841
+ add r2, r2, #1
3842
+ strh r2, [r1, r3] @ movhi
3843
+ ldr r3, [r7, #2608]
35193844 add r3, r3, #1
3520
- strh r3, [r2, r0] @ movhi
3521
- ldr r3, [r6, #2608]
3522
- add r3, r3, #1
3523
- str r3, [r6, #2608]
3524
-.L458:
3845
+ str r3, [r7, #2608]
3846
+.L411:
35253847 ldrh r3, [r4, #6]
35263848 add r3, r3, #1
35273849 strh r3, [r4, #6] @ movhi
....@@ -3529,15 +3851,19 @@
35293851 add r2, r4, r3, lsl #1
35303852 add r3, r3, #1
35313853 ubfx r3, r3, #0, #10
3532
- strh r5, [r2, #8] @ movhi
35333854 strh r3, [r4, #4] @ movhi
3534
- pop {r4, r5, r6, r7, r8, pc}
3535
-.L470:
3855
+ strh r6, [r2, #8] @ movhi
3856
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
3857
+.L419:
35363858 .align 2
3537
-.L469:
3859
+.L418:
35383860 .word .LANCHOR0
3539
- .fnend
35403861 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
3862
+ .section .rodata.str1.1
3863
+.LC89:
3864
+ .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
3865
+ .ascii "\000"
3866
+ .text
35413867 .align 2
35423868 .global FtlFreeSysBlkQueueOut
35433869 .syntax unified
....@@ -3545,17 +3871,19 @@
35453871 .fpu softvfp
35463872 .type FtlFreeSysBlkQueueOut, %function
35473873 FtlFreeSysBlkQueueOut:
3548
- .fnstart
35493874 @ args = 0, pretend = 0, frame = 0
3550
- @ frame_needed = 0, uses_anonymous_args = 0
3551
- push {r4, r5, r6, lr}
3552
- .save {r4, r5, r6, lr}
3553
- ldr r6, .L477
3875
+ @ frame_needed = 1, uses_anonymous_args = 0
3876
+ mov ip, sp
3877
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
3878
+ sub fp, ip, #4
3879
+ push {lr}
3880
+ bl __gnu_mcount_nc
3881
+ ldr r6, .L425
35543882 add r4, r6, #412
35553883 ldrh r2, [r4, #6]
35563884 cmp r2, #0
35573885 movweq r5, #65535
3558
- beq .L472
3886
+ beq .L421
35593887 ldrh r3, [r4, #2]
35603888 sub r2, r2, #1
35613889 ldr r0, [r6, #3268]
....@@ -3564,37 +3892,40 @@
35643892 add r1, r4, r3, lsl #1
35653893 add r3, r3, #1
35663894 ubfx r3, r3, #0, #10
3895
+ strh r3, [r4, #2] @ movhi
35673896 ldrh r5, [r1, #8]
35683897 mov r1, r2
3569
- strh r3, [r4, #2] @ movhi
35703898 lsl r3, r5, #10
35713899 str r3, [r0, #4]
35723900 bl FlashEraseBlocks
35733901 ldr r3, [r6, #2608]
3902
+ movw r2, #65533
35743903 add r3, r3, #1
35753904 str r3, [r6, #2608]
3576
-.L472:
35773905 sub r3, r5, #1
3578
- movw r2, #65533
35793906 uxth r3, r3
35803907 cmp r3, r2
3581
- bls .L473
3908
+ bls .L422
3909
+.L421:
35823910 ldrh r2, [r4, #6]
35833911 mov r1, r5
3584
- ldr r0, .L477+4
3912
+ ldr r0, .L425+4
35853913 bl sftl_printk
3586
-.L474:
3587
- b .L474
3588
-.L473:
3914
+.L423:
3915
+ b .L423
3916
+.L422:
35893917 mov r0, r5
3590
- pop {r4, r5, r6, pc}
3591
-.L478:
3918
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
3919
+.L426:
35923920 .align 2
3593
-.L477:
3921
+.L425:
35943922 .word .LANCHOR0
35953923 .word .LC89
3596
- .fnend
35973924 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
3925
+ .section .rodata.str1.1
3926
+.LC90:
3927
+ .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
3928
+ .text
35983929 .align 2
35993930 .global ftl_map_blk_alloc_new_blk
36003931 .syntax unified
....@@ -3602,67 +3933,68 @@
36023933 .fpu softvfp
36033934 .type ftl_map_blk_alloc_new_blk, %function
36043935 ftl_map_blk_alloc_new_blk:
3605
- .fnstart
36063936 @ args = 0, pretend = 0, frame = 0
3607
- @ frame_needed = 0, uses_anonymous_args = 0
3608
- push {r4, r5, r6, r7, r8, lr}
3609
- .save {r4, r5, r6, r7, r8, lr}
3610
- mov r3, #0
3937
+ @ frame_needed = 1, uses_anonymous_args = 0
3938
+ mov ip, sp
3939
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
3940
+ sub fp, ip, #4
3941
+ push {lr}
3942
+ bl __gnu_mcount_nc
36113943 ldrh r1, [r0, #10]
36123944 mov r4, r0
36133945 ldr r2, [r0, #12]
3614
-.L480:
3946
+ mov r3, #0
3947
+.L428:
36153948 uxth r5, r3
3616
- cmp r5, r1
3617
- bcs .L483
3949
+ cmp r1, r5
3950
+ bls .L433
36183951 mov r7, r2
36193952 add r3, r3, #1
3620
- ldrh r6, [r7]
36213953 add r2, r2, #2
3954
+ ldrh r6, [r7]
36223955 cmp r6, #0
3623
- bne .L480
3956
+ bne .L428
36243957 bl FtlFreeSysBlkQueueOut
36253958 sub r3, r0, #1
36263959 movw r2, #65533
3627
- uxth r3, r3
36283960 mov r1, r0
3961
+ uxth r3, r3
36293962 strh r0, [r7] @ movhi
36303963 cmp r3, r2
3631
- bls .L481
3632
- ldr r3, .L488
3633
- ldr r0, .L488+4
3964
+ bls .L429
3965
+ ldr r3, .L435
3966
+ ldr r0, .L435+4
36343967 ldrh r2, [r3, #6]
36353968 bl sftl_printk
3636
-.L482:
3637
- b .L482
3638
-.L481:
3969
+.L430:
3970
+ b .L430
3971
+.L429:
36393972 ldr r3, [r4, #28]
36403973 strh r6, [r4, #2] @ movhi
3641
- strh r5, [r4] @ movhi
36423974 add r3, r3, #1
36433975 str r3, [r4, #28]
36443976 ldrh r3, [r4, #8]
3977
+ strh r5, [r4] @ movhi
36453978 add r3, r3, #1
36463979 strh r3, [r4, #8] @ movhi
3647
-.L483:
36483980 ldrh r3, [r4, #10]
36493981 cmp r3, r5
3650
- bhi .L485
3982
+ bhi .L431
3983
+.L433:
3984
+ ldr r1, .L435+8
36513985 movw r2, #578
3652
- ldr r1, .L488+8
3653
- ldr r0, .L488+12
3986
+ ldr r0, .L435+12
36543987 bl sftl_printk
3655
-.L485:
3988
+.L431:
36563989 mov r0, #0
3657
- pop {r4, r5, r6, r7, r8, pc}
3658
-.L489:
3990
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
3991
+.L436:
36593992 .align 2
3660
-.L488:
3993
+.L435:
36613994 .word .LANCHOR0+412
36623995 .word .LC90
36633996 .word .LANCHOR1+147
36643997 .word .LC8
3665
- .fnend
36663998 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
36673999 .align 2
36684000 .global ftl_memset
....@@ -3671,13 +4003,20 @@
36714003 .fpu softvfp
36724004 .type ftl_memset, %function
36734005 ftl_memset:
3674
- .fnstart
36754006 @ args = 0, pretend = 0, frame = 0
3676
- @ frame_needed = 0, uses_anonymous_args = 0
3677
- @ link register save eliminated.
3678
- b memset
3679
- .fnend
4007
+ @ frame_needed = 1, uses_anonymous_args = 0
4008
+ mov ip, sp
4009
+ push {fp, ip, lr, pc}
4010
+ sub fp, ip, #4
4011
+ push {lr}
4012
+ bl __gnu_mcount_nc
4013
+ bl memset
4014
+ ldmfd sp, {fp, sp, pc}
36804015 .size ftl_memset, .-ftl_memset
4016
+ .section .rodata.str1.1
4017
+.LC91:
4018
+ .ascii "%s error allocating memory. return -1\012\000"
4019
+ .text
36814020 .align 2
36824021 .global FtlMemInit
36834022 .syntax unified
....@@ -3685,39 +4024,42 @@
36854024 .fpu softvfp
36864025 .type FtlMemInit, %function
36874026 FtlMemInit:
3688
- .fnstart
36894027 @ args = 0, pretend = 0, frame = 0
3690
- @ frame_needed = 0, uses_anonymous_args = 0
3691
- push {r4, r5, r6, r7, r8, r9, r10, lr}
3692
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
4028
+ @ frame_needed = 1, uses_anonymous_args = 0
4029
+ mov ip, sp
4030
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
4031
+ sub fp, ip, #4
4032
+ push {lr}
4033
+ bl __gnu_mcount_nc
4034
+ ldr r4, .L537
36934035 movw r3, #65535
3694
- ldr r4, .L593
3695
- movw r6, #306
36964036 mov r2, #32
4037
+ movw r6, #306
36974038 mov r5, #0
36984039 mov r7, #12
4040
+ mov r8, #80
4041
+ add r9, r4, #312
36994042 str r3, [r4, #3276]
37004043 mvn r3, #0
3701
- ldrh r0, [r4, r6]
3702
- add r9, r4, #312
37034044 strh r3, [r4, #222] @ movhi
37044045 strh r3, [r4, #220] @ movhi
37054046 add r3, r4, #3152
4047
+ ldrh r0, [r4, r6]
4048
+ str r5, [r4, #2588]
37064049 strh r2, [r3] @ movhi
3707
- mov r2, #128
37084050 movw r3, #3154
4051
+ mov r2, #128
37094052 lsl r0, r0, #1
37104053 strh r2, [r4, r3] @ movhi
37114054 movw r3, #3160
4055
+ str r5, [r4, #2592]
37124056 strh r5, [r4, r3] @ movhi
37134057 movw r3, #3206
4058
+ str r5, [r4, #2576]
37144059 strh r5, [r4, r3] @ movhi
37154060 movw r3, #3242
3716
- strh r5, [r4, r3] @ movhi
3717
- str r5, [r4, #2588]
3718
- str r5, [r4, #2592]
3719
- str r5, [r4, #2576]
37204061 str r5, [r4, #2564]
4062
+ strh r5, [r4, r3] @ movhi
37214063 str r5, [r4, #2560]
37224064 str r5, [r4, #2568]
37234065 str r5, [r4, #2572]
....@@ -3735,20 +4077,21 @@
37354077 bl ftl_malloc
37364078 str r0, [r4, #3192]
37374079 ldrh r0, [r4, r6]
3738
- mov r6, #20
37394080 mul r0, r7, r0
37404081 bl ftl_malloc
3741
- ldrh r3, [r4, #232]
4082
+ ldrh r6, [r4, #232]
37424083 str r0, [r4, #3200]
3743
- mul r6, r6, r3
3744
- lsl r8, r6, #2
4084
+ mul r8, r8, r6
37454085 mov r0, r8
37464086 bl ftl_malloc
4087
+ mov r3, #20
37474088 str r0, [r4, #3288]
4089
+ mul r6, r3, r6
37484090 mov r0, r6
37494091 bl ftl_malloc
37504092 str r0, [r4, #3292]
37514093 mov r0, r8
4094
+ movw r8, #310
37524095 bl ftl_malloc
37534096 str r0, [r4, #3296]
37544097 mov r0, r6
....@@ -3757,7 +4100,6 @@
37574100 mov r0, r6
37584101 bl ftl_malloc
37594102 ldrh r3, [r4, #232]
3760
- movw r8, #310
37614103 ldrh r6, [r4, r8]
37624104 str r0, [r4, #3184]
37634105 lsl r3, r3, #1
....@@ -3796,10 +4138,10 @@
37964138 ldrh r0, [r4, r3]
37974139 lsl r0, r0, #2
37984140 bl ftl_malloc
3799
- ldrh r3, [r9]
3800
- ldrh r6, [r4, #232]
4141
+ ldrh r3, [r4, #232]
4142
+ ldrh r6, [r9]
38014143 str r0, [r4, #3328]
3802
- mul r6, r6, r3
4144
+ mul r6, r3, r6
38034145 mov r0, r6
38044146 bl ftl_malloc
38054147 str r0, [r4, #3332]
....@@ -3819,12 +4161,12 @@
38194161 bl ftl_malloc
38204162 str r0, [r4, #3344]
38214163 ldrh r0, [r4, r6]
3822
- ldr r3, .L593+4
38234164 add r0, r0, #544
38244165 add r0, r0, #3
3825
- lsr r0, r0, #9
3826
- strh r0, [r4, r6] @ movhi
3827
- and r0, r3, r0, lsl #9
4166
+ lsr r3, r0, #9
4167
+ bic r0, r0, #508
4168
+ bic r0, r0, #3
4169
+ strh r3, [r4, r6] @ movhi
38284170 bl ftl_malloc
38294171 ldrh r6, [r4, #242]
38304172 str r0, [r4, #3348]
....@@ -3866,6 +4208,7 @@
38664208 mov r1, r5
38674209 str r0, [r4, #3372]
38684210 movw r5, #338
4211
+ movw r6, #3388
38694212 lsl r2, r2, #2
38704213 bl ftl_memset
38714214 add r3, r4, #336
....@@ -3881,7 +4224,6 @@
38814224 mul r0, r7, r0
38824225 bl ftl_malloc
38834226 ldrh r3, [r4, r5]
3884
- movw r5, #3388
38854227 str r0, [r4, #2540]
38864228 ldrh r0, [r4, r8]
38874229 mul r0, r0, r3
....@@ -3897,153 +4239,147 @@
38974239 ldrh r3, [r4, #254]
38984240 add r0, r0, #31
38994241 asr r0, r0, #5
3900
- strh r0, [r4, r5] @ movhi
4242
+ strh r0, [r4, r6] @ movhi
39014243 mul r0, r0, r3
39024244 lsl r0, r0, #2
39034245 bl ftl_malloc
3904
- ldrh r2, [r4, r5]
3905
- add ip, r4, #380
3906
- ldrh lr, [r4, #254]
3907
- mov r3, #1
4246
+ ldrh r2, [r4, r6]
4247
+ ldrh r3, [r4, #254]
4248
+ mov r5, r0
39084249 str r0, [r4, #380]
3909
- lsl r2, r2, #2
3910
- mov r1, r2
3911
-.L492:
3912
- cmp r3, lr
3913
- bcc .L493
3914
- ldr r2, .L593+8
4250
+ mov r1, #1
4251
+ lsl ip, r2, #2
4252
+ add r2, r0, r2, lsl #2
4253
+ add r0, r4, #384
4254
+.L439:
4255
+ cmp r3, r1
4256
+ bhi .L440
4257
+ cmp r3, #0
4258
+ ldr r0, .L537+4
39154259 mov r1, #0
3916
- add r3, r2, r3, lsl #2
3917
- add r2, r2, #56
3918
- add r3, r3, #24
3919
-.L494:
3920
- cmp r2, r3
3921
- bne .L495
4260
+ moveq r3, #1
4261
+ rsb r2, r3, #8
4262
+ add r3, r3, #7
4263
+ lsl r2, r2, #2
4264
+ add r0, r0, r3, lsl #2
4265
+ bl memset
39224266 ldr r3, [r4, #3356]
39234267 cmp r3, #0
3924
- bne .L496
3925
-.L498:
3926
- ldr r1, .L593+12
3927
- ldr r0, .L593+16
4268
+ bne .L441
4269
+.L443:
4270
+ ldr r1, .L537+8
4271
+ ldr r0, .L537+12
39284272 bl sftl_printk
39294273 mvn r0, #0
3930
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
3931
-.L493:
3932
- ldr r0, [r4, #380]
3933
- add r3, r3, #1
3934
- add r0, r0, r1
3935
- add r1, r1, r2
3936
- str r0, [ip, #4]!
3937
- b .L492
3938
-.L495:
3939
- str r1, [r3, #4]!
3940
- b .L494
3941
-.L496:
4274
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
4275
+.L440:
4276
+ str r2, [r0], #4
4277
+ add r1, r1, #1
4278
+ add r2, r2, ip
4279
+ b .L439
4280
+.L441:
39424281 ldr r3, [r4, #3360]
39434282 cmp r3, #0
3944
- beq .L498
4283
+ beq .L443
39454284 ldr r3, [r4, #3376]
39464285 cmp r3, #0
3947
- beq .L498
4286
+ beq .L443
39484287 ldr r3, [r4, #3380]
39494288 cmp r3, #0
3950
- beq .L498
4289
+ beq .L443
39514290 ldr r3, [r4, #2540]
39524291 cmp r3, #0
3953
- beq .L498
4292
+ beq .L443
39544293 ldr r3, [r4, #3384]
39554294 cmp r3, #0
3956
- beq .L498
4295
+ beq .L443
39574296 ldr r3, [r4, #2516]
39584297 cmp r3, #0
3959
- beq .L498
3960
- ldr r3, [r4, #380]
3961
- cmp r3, #0
3962
- beq .L498
4298
+ beq .L443
4299
+ cmp r5, #0
4300
+ beq .L443
39634301 ldr r3, [r4, #72]
39644302 cmp r3, #0
3965
- beq .L498
4303
+ beq .L443
39664304 ldr r3, [r4, #3192]
39674305 cmp r3, #0
3968
- beq .L498
4306
+ beq .L443
39694307 ldr r3, [r4, #3200]
39704308 cmp r3, #0
3971
- beq .L498
4309
+ beq .L443
39724310 ldr r3, [r4, #3288]
39734311 cmp r3, #0
3974
- beq .L498
4312
+ beq .L443
39754313 ldr r3, [r4, #3296]
39764314 cmp r3, #0
3977
- beq .L498
4315
+ beq .L443
39784316 ldr r3, [r4, #3268]
39794317 cmp r3, #0
3980
- beq .L498
4318
+ beq .L443
39814319 ldr r3, [r4, #3184]
39824320 cmp r3, #0
3983
- beq .L498
4321
+ beq .L443
39844322 ldr r3, [r4, #3292]
39854323 cmp r3, #0
3986
- beq .L498
4324
+ beq .L443
39874325 ldr r3, [r4, #3300]
39884326 cmp r3, #0
3989
- beq .L498
4327
+ beq .L443
39904328 ldr r3, [r4, #3304]
39914329 cmp r3, #0
3992
- beq .L498
4330
+ beq .L443
39934331 ldr r3, [r4, #3308]
39944332 cmp r3, #0
3995
- beq .L498
4333
+ beq .L443
39964334 ldr r3, [r4, #3176]
39974335 cmp r3, #0
3998
- beq .L498
4336
+ beq .L443
39994337 ldr r3, [r4, #3312]
40004338 cmp r3, #0
4001
- beq .L498
4339
+ beq .L443
40024340 ldr r3, [r4, #3316]
40034341 cmp r3, #0
4004
- beq .L498
4342
+ beq .L443
40054343 ldr r3, [r4, #3172]
40064344 cmp r3, #0
4007
- beq .L498
4345
+ beq .L443
40084346 ldr r3, [r4, #3332]
40094347 cmp r3, #0
4010
- beq .L498
4348
+ beq .L443
40114349 ldr r3, [r4, #3336]
40124350 cmp r3, #0
4013
- beq .L498
4351
+ beq .L443
40144352 ldr r3, [r4, #3180]
40154353 cmp r3, #0
4016
- beq .L498
4354
+ beq .L443
40174355 ldr r3, [r4, #2536]
40184356 cmp r3, #0
4019
- beq .L498
4357
+ beq .L443
40204358 ldr r3, [r4, #3344]
40214359 cmp r3, #0
4022
- beq .L498
4360
+ beq .L443
40234361 ldr r3, [r4, #348]
40244362 cmp r3, #0
4025
- beq .L498
4026
- ldr r3, .L593
4363
+ beq .L443
4364
+ ldr r3, .L537
40274365 ldr r2, [r3, #3364]
40284366 cmp r2, #0
4029
- beq .L498
4367
+ beq .L443
40304368 ldr r2, [r3, #3368]
40314369 cmp r2, #0
4032
- beq .L498
4370
+ beq .L443
40334371 ldr r3, [r3, #3372]
40344372 cmp r3, #0
4035
- beq .L498
4373
+ beq .L443
40364374 mov r0, #0
4037
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
4038
-.L594:
4375
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
4376
+.L538:
40394377 .align 2
4040
-.L593:
4378
+.L537:
40414379 .word .LANCHOR0
4042
- .word 33553920
40434380 .word .LANCHOR0+352
40444381 .word .LANCHOR1+173
40454382 .word .LC91
4046
- .fnend
40474383 .size FtlMemInit, .-FtlMemInit
40484384 .align 2
40494385 .global FtlBbt2Bitmap
....@@ -4052,57 +4388,57 @@
40524388 .fpu softvfp
40534389 .type FtlBbt2Bitmap, %function
40544390 FtlBbt2Bitmap:
4055
- .fnstart
40564391 @ args = 0, pretend = 0, frame = 0
4057
- @ frame_needed = 0, uses_anonymous_args = 0
4058
- ldr r2, .L602
4392
+ @ frame_needed = 1, uses_anonymous_args = 0
4393
+ mov ip, sp
4394
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
4395
+ sub fp, ip, #4
4396
+ push {lr}
4397
+ bl __gnu_mcount_nc
4398
+ ldr r2, .L544
40594399 movw r3, #3388
4060
- push {r4, r5, r6, r7, r8, r9, r10, lr}
4061
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
40624400 mov r4, r0
4063
- ldr r7, .L602+4
4064
- sub r5, r4, #2
4401
+ ldr r7, .L544+4
4402
+ sub r6, r4, #2
4403
+ ldr r8, .L544+8
40654404 add r4, r4, #1020
4066
- mov r6, r1
4405
+ mov r5, r1
40674406 ldrh r2, [r2, r3]
40684407 add r4, r4, #2
4069
- ldr r8, .L602+8
4408
+ mov r0, r5
40704409 mov r1, #0
4071
- ldr r9, .L602+12
4072
- mov r0, r6
40734410 lsl r2, r2, #2
40744411 bl ftl_memset
4075
-.L598:
4076
- ldrh r3, [r5, #2]
4412
+.L542:
4413
+ ldrh r3, [r6, #2]!
40774414 movw r2, #65535
40784415 cmp r3, r2
4079
- popeq {r4, r5, r6, r7, r8, r9, r10, pc}
4416
+ ldmfdeq sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
40804417 ldrh r2, [r7]
40814418 cmp r2, r3
4082
- bhi .L597
4083
- mov r2, #74
4419
+ bhi .L541
4420
+ ldr r0, .L544+12
40844421 mov r1, r8
4085
- mov r0, r9
4422
+ mov r2, #74
40864423 bl sftl_printk
4087
-.L597:
4088
- ldrh r3, [r5, #2]!
4424
+.L541:
4425
+ ldrh r3, [r6]
40894426 mov r0, #1
4090
- cmp r4, r5
4427
+ cmp r4, r6
40914428 lsr r1, r3, #5
40924429 and r3, r3, #31
4093
- ldr r2, [r6, r1, lsl #2]
4430
+ ldr r2, [r5, r1, lsl #2]
40944431 orr r3, r2, r0, lsl r3
4095
- str r3, [r6, r1, lsl #2]
4096
- bne .L598
4097
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
4098
-.L603:
4432
+ str r3, [r5, r1, lsl #2]
4433
+ bne .L542
4434
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
4435
+.L545:
40994436 .align 2
4100
-.L602:
4437
+.L544:
41014438 .word .LANCHOR0
41024439 .word .LANCHOR0+298
41034440 .word .LANCHOR1+184
41044441 .word .LC8
4105
- .fnend
41064442 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap
41074443 .align 2
41084444 .global FtlBbtMemInit
....@@ -4111,11 +4447,14 @@
41114447 .fpu softvfp
41124448 .type FtlBbtMemInit, %function
41134449 FtlBbtMemInit:
4114
- .fnstart
41154450 @ args = 0, pretend = 0, frame = 0
4116
- @ frame_needed = 0, uses_anonymous_args = 0
4117
- @ link register save eliminated.
4118
- ldr r0, .L605
4451
+ @ frame_needed = 1, uses_anonymous_args = 0
4452
+ mov ip, sp
4453
+ push {fp, ip, lr, pc}
4454
+ sub fp, ip, #4
4455
+ push {lr}
4456
+ bl __gnu_mcount_nc
4457
+ ldr r0, .L547
41194458 mvn r2, #0
41204459 mov r1, #255
41214460 add r3, r0, #352
....@@ -4124,12 +4463,12 @@
41244463 mov r2, #0
41254464 strh r2, [r3, #6] @ movhi
41264465 mov r2, #16
4127
- b ftl_memset
4128
-.L606:
4466
+ bl ftl_memset
4467
+ ldmfd sp, {fp, sp, pc}
4468
+.L548:
41294469 .align 2
4130
-.L605:
4470
+.L547:
41314471 .word .LANCHOR0
4132
- .fnend
41334472 .size FtlBbtMemInit, .-FtlBbtMemInit
41344473 .align 2
41354474 .global FtlFreeSysBlkQueueInit
....@@ -4138,14 +4477,16 @@
41384477 .fpu softvfp
41394478 .type FtlFreeSysBlkQueueInit, %function
41404479 FtlFreeSysBlkQueueInit:
4141
- .fnstart
41424480 @ args = 0, pretend = 0, frame = 0
4143
- @ frame_needed = 0, uses_anonymous_args = 0
4144
- ldr ip, .L609
4145
- mov r2, #2048
4146
- push {r4, lr}
4147
- .save {r4, lr}
4481
+ @ frame_needed = 1, uses_anonymous_args = 0
4482
+ mov ip, sp
4483
+ push {r4, r5, fp, ip, lr, pc}
4484
+ sub fp, ip, #4
4485
+ push {lr}
4486
+ bl __gnu_mcount_nc
4487
+ ldr ip, .L550
41484488 mov r4, #0
4489
+ mov r2, #2048
41494490 mov r1, r4
41504491 add r3, ip, #412
41514492 strh r0, [r3] @ movhi
....@@ -4155,12 +4496,11 @@
41554496 strh r4, [r3, #6] @ movhi
41564497 bl ftl_memset
41574498 mov r0, r4
4158
- pop {r4, pc}
4159
-.L610:
4499
+ ldmfd sp, {r4, r5, fp, sp, pc}
4500
+.L551:
41604501 .align 2
4161
-.L609:
4502
+.L550:
41624503 .word .LANCHOR0
4163
- .fnend
41644504 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
41654505 .align 2
41664506 .global ftl_free_no_use_map_blk
....@@ -4169,105 +4509,101 @@
41694509 .fpu softvfp
41704510 .type ftl_free_no_use_map_blk, %function
41714511 ftl_free_no_use_map_blk:
4172
- .fnstart
4173
- @ args = 0, pretend = 0, frame = 0
4174
- @ frame_needed = 0, uses_anonymous_args = 0
4175
- push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
4176
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
4177
- mov r1, #0
4512
+ @ args = 0, pretend = 0, frame = 8
4513
+ @ frame_needed = 1, uses_anonymous_args = 0
4514
+ mov ip, sp
4515
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
4516
+ sub fp, ip, #4
4517
+ sub sp, sp, #12
4518
+ push {lr}
4519
+ bl __gnu_mcount_nc
41784520 ldrh r2, [r0, #10]
41794521 mov r4, r0
41804522 ldr r5, [r0, #20]
4181
- ldr r7, [r0, #12]
4523
+ mov r1, #0
4524
+ ldr r8, [r0, #12]
41824525 ldr r6, [r0, #24]
41834526 lsl r2, r2, #1
41844527 mov r0, r5
41854528 bl ftl_memset
41864529 mov r2, #0
4187
-.L612:
4530
+.L553:
41884531 ldrh r1, [r4, #6]
41894532 uxth r3, r2
41904533 cmp r1, r3
4191
- bhi .L616
4192
- ldr r3, .L632
4193
- mov r6, #0
4194
- mov r8, r6
4195
- mov r10, r6
4534
+ bhi .L557
4535
+ ldr r3, .L570
4536
+ mov r7, #0
4537
+ mov r10, r7
41964538 ldrh r2, [r3]
41974539 ldrh r3, [r4]
41984540 lsl r3, r3, #1
41994541 strh r2, [r5, r3] @ movhi
4200
- ldrh r9, [r5]
4201
-.L617:
4202
- ldrh r3, [r4, #10]
4203
- uxth r1, r6
4204
- cmp r3, r1
4205
- bhi .L621
4206
- mov r0, r8
4207
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
4208
-.L616:
4542
+ ldrh r3, [r5]
4543
+.L558:
4544
+ ldrh r1, [r4, #10]
4545
+ uxth r2, r7
4546
+ cmp r1, r2
4547
+ bhi .L561
4548
+ mov r0, r10
4549
+ sub sp, fp, #40
4550
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
4551
+.L557:
42094552 uxth r3, r2
42104553 mov r1, #0
42114554 ldr r0, [r6, r3, lsl #2]
42124555 ubfx r0, r0, #10, #16
4213
-.L613:
4556
+.L554:
42144557 ldrh ip, [r4, #10]
42154558 uxth r3, r1
42164559 cmp ip, r3
42174560 addls r2, r2, #1
4218
- bls .L612
4219
-.L615:
4561
+ bls .L553
4562
+.L556:
42204563 uxth r3, r1
42214564 add r1, r1, #1
42224565 lsl r3, r3, #1
4223
- ldrh ip, [r7, r3]
4224
- adds lr, ip, #0
4566
+ ldrh ip, [r8, r3]
4567
+ subs lr, ip, #0
42254568 movne lr, #1
4226
- cmp r0, ip
4569
+ cmp ip, r0
42274570 movne lr, #0
42284571 cmp lr, #0
42294572 ldrhne ip, [r5, r3]
42304573 addne ip, ip, #1
42314574 strhne ip, [r5, r3] @ movhi
4232
- b .L613
4233
-.L621:
4234
- uxth r3, r6
4235
- lsl r3, r3, #1
4236
- ldrh r2, [r5, r3]
4237
- cmp r9, r2
4238
- bls .L618
4239
- ldrh r0, [r7, r3]
4240
- add fp, r7, r3
4575
+ b .L554
4576
+.L561:
4577
+ uxth r6, r7
4578
+ lsl r6, r6, #1
4579
+ ldrh r9, [r5, r6]
4580
+ cmp r9, r3
4581
+ bcs .L559
4582
+ ldrh r1, [r8, r6]
4583
+ cmp r1, #0
4584
+ movne r10, r2
4585
+ movne r3, r9
4586
+.L559:
4587
+ cmp r9, #0
4588
+ bne .L560
4589
+ ldrh r0, [r8, r6]
42414590 cmp r0, #0
4242
- bne .L619
4243
-.L620:
4244
- add r6, r6, #1
4245
- b .L617
4246
-.L618:
4247
- cmp r2, #0
4248
- bne .L620
4249
- ldrh r0, [r7, r3]
4250
- add fp, r7, r3
4251
- cmp r0, #0
4252
- beq .L620
4253
-.L622:
4591
+ beq .L560
42544592 mov r1, #1
4593
+ str r3, [fp, #-48]
42554594 bl FtlFreeSysBlkQueueIn
4256
- strh r10, [fp] @ movhi
4257
- ldrh r3, [r4, #8]
4258
- sub r3, r3, #1
4259
- strh r3, [r4, #8] @ movhi
4260
- b .L620
4261
-.L619:
4262
- subs r9, r2, #0
4263
- mov r8, r1
4264
- beq .L622
4265
- b .L620
4266
-.L633:
4595
+ strh r9, [r8, r6] @ movhi
4596
+ ldr r3, [fp, #-48]
4597
+ ldrh r2, [r4, #8]
4598
+ sub r2, r2, #1
4599
+ strh r2, [r4, #8] @ movhi
4600
+.L560:
4601
+ add r7, r7, #1
4602
+ b .L558
4603
+.L571:
42674604 .align 2
4268
-.L632:
4605
+.L570:
42694606 .word .LANCHOR0+304
4270
- .fnend
42714607 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
42724608 .align 2
42734609 .global FtlL2PDataInit
....@@ -4276,86 +4612,84 @@
42764612 .fpu softvfp
42774613 .type FtlL2PDataInit, %function
42784614 FtlL2PDataInit:
4279
- .fnstart
42804615 @ args = 0, pretend = 0, frame = 0
4281
- @ frame_needed = 0, uses_anonymous_args = 0
4282
- push {r4, r5, r6, r7, r8, lr}
4283
- .save {r4, r5, r6, r7, r8, lr}
4616
+ @ frame_needed = 1, uses_anonymous_args = 0
4617
+ mov ip, sp
4618
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
4619
+ sub fp, ip, #4
4620
+ push {lr}
4621
+ bl __gnu_mcount_nc
4622
+ ldr r4, .L575
42844623 mov r1, #0
4285
- ldr r4, .L638
4286
- mvn r5, #0
4624
+ mvn r6, #0
42874625 ldr r2, [r4, #328]
42884626 ldr r0, [r4, #3360]
42894627 lsl r2, r2, #1
42904628 bl ftl_memset
42914629 movw r3, #310
42924630 movw r2, #338
4631
+ ldr r0, [r4, #3384]
42934632 ldrh r3, [r4, r3]
42944633 mov r1, #255
42954634 ldrh r2, [r4, r2]
4296
- ldr r0, [r4, #3384]
42974635 mul r2, r2, r3
42984636 bl ftl_memset
4299
- ldr r0, .L638+4
4300
- mov r2, #0
4301
- mov r3, r4
4637
+ ldr ip, .L575+4
4638
+ mov r3, #0
4639
+ mov r5, r3
4640
+ sub r7, ip, #28
43024641 mov lr, #12
4303
- mov r4, r2
4304
- sub r6, r0, #28
4305
-.L635:
4306
- ldrh r7, [r0]
4307
- uxth r1, r2
4308
- add ip, r2, #1
4309
- cmp r7, r1
4310
- bhi .L636
4311
- ldr r2, .L638+8
4312
- mvn r1, #0
4313
- strh r1, [r2, #2] @ movhi
4314
- strh r1, [r2] @ movhi
4315
- ldr r1, [r3, #328]
4316
- strh r1, [r2, #10] @ movhi
4317
- ldr r1, .L638+12
4318
- strh r1, [r2, #4] @ movhi
4319
- movw r1, #3436
4320
- ldrh r1, [r3, r1]
4321
- strh r1, [r2, #8] @ movhi
4322
- sub r1, r2, #3056
4323
- ldrh r1, [r1]
4324
- strh r1, [r2, #6] @ movhi
4325
- ldr r2, [r3, #3356]
4326
- str r2, [r3, #3404]
4327
- ldr r2, [r3, #3380]
4328
- str r2, [r3, #3408]
4329
- ldr r2, [r3, #3360]
4330
- str r2, [r3, #3412]
4331
- ldr r2, [r3, #3376]
4332
- str r2, [r3, #3416]
4333
- pop {r4, r5, r6, r7, r8, pc}
4334
-.L636:
4335
- uxth r2, r2
4336
- ldr r1, [r3, #2540]
4337
- mul r7, lr, r2
4338
- add r8, r1, r7
4339
- str r4, [r8, #4]
4340
- strh r5, [r1, r7] @ movhi
4341
- ldr r1, [r3, #2540]
4342
- add r1, r1, r7
4343
- ldrh r7, [r6]
4344
- mul r2, r2, r7
4345
- ldr r7, [r3, #3384]
4642
+.L573:
4643
+ ldrh r1, [ip]
4644
+ uxth r2, r3
4645
+ cmp r1, r2
4646
+ bhi .L574
4647
+ ldr r3, .L575+8
4648
+ ldr r2, [r4, #328]
4649
+ strh r2, [r3, #10] @ movhi
4650
+ mvn r2, #0
4651
+ str r2, [r4, #3392]
4652
+ ldr r2, .L575+12
4653
+ strh r2, [r3, #4] @ movhi
4654
+ movw r2, #3436
4655
+ ldrh r2, [r4, r2]
4656
+ strh r2, [r3, #8] @ movhi
4657
+ sub r2, r3, #3056
4658
+ ldrh r2, [r2]
4659
+ strh r2, [r3, #6] @ movhi
4660
+ ldr r3, [r4, #3356]
4661
+ str r3, [r4, #3404]
4662
+ ldr r3, [r4, #3380]
4663
+ str r3, [r4, #3408]
4664
+ ldr r3, [r4, #3360]
4665
+ str r3, [r4, #3412]
4666
+ ldr r3, [r4, #3376]
4667
+ str r3, [r4, #3416]
4668
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
4669
+.L574:
4670
+ uxth r0, r3
4671
+ ldr r2, [r4, #2540]
4672
+ add r3, r3, #1
4673
+ mul r1, lr, r0
4674
+ add r8, r2, r1
4675
+ str r5, [r8, #4]
4676
+ strh r6, [r2, r1] @ movhi
4677
+ ldr r2, [r4, #2540]
4678
+ add r1, r2, r1
4679
+ ldrh r2, [r7]
4680
+ mul r2, r0, r2
4681
+ ldr r0, [r4, #3384]
43464682 bic r2, r2, #3
4347
- add r2, r7, r2
4683
+ add r2, r0, r2
43484684 str r2, [r1, #8]
4349
- mov r2, ip
4350
- b .L635
4351
-.L639:
4685
+ b .L573
4686
+.L576:
43524687 .align 2
4353
-.L638:
4688
+.L575:
43544689 .word .LANCHOR0
43554690 .word .LANCHOR0+338
43564691 .word .LANCHOR0+3392
43574692 .word -3902
4358
- .fnend
43594693 .size FtlL2PDataInit, .-FtlL2PDataInit
43604694 .align 2
43614695 .global FtlVariablesInit
....@@ -4364,25 +4698,27 @@
43644698 .fpu softvfp
43654699 .type FtlVariablesInit, %function
43664700 FtlVariablesInit:
4367
- .fnstart
43684701 @ args = 0, pretend = 0, frame = 0
4369
- @ frame_needed = 0, uses_anonymous_args = 0
4370
- push {r4, r5, r6, lr}
4371
- .save {r4, r5, r6, lr}
4372
- mvn r3, #0
4373
- ldr r4, .L642
4702
+ @ frame_needed = 1, uses_anonymous_args = 0
4703
+ mov ip, sp
4704
+ push {r4, r5, fp, ip, lr, pc}
4705
+ sub fp, ip, #4
4706
+ push {lr}
4707
+ bl __gnu_mcount_nc
4708
+ ldr r4, .L578
43744709 movw r2, #3438
4710
+ mvn r3, #0
43754711 mov r5, #0
43764712 mov r1, r5
43774713 strh r3, [r4, r2] @ movhi
43784714 str r3, [r4, #3448]
43794715 add r3, r4, #344
4380
- strh r5, [r3] @ movhi
4381
- add r3, r4, #320
4382
- ldrh r2, [r3]
43834716 ldr r0, [r4, #348]
43844717 str r5, [r4, #3440]
4718
+ strh r5, [r3] @ movhi
4719
+ add r3, r4, #320
43854720 str r5, [r4, #3444]
4721
+ ldrh r2, [r3]
43864722 lsl r2, r2, #1
43874723 bl ftl_memset
43884724 ldrh r2, [r4, #242]
....@@ -4400,19 +4736,18 @@
44004736 mov r2, #48
44014737 add r0, r0, #4
44024738 bl ftl_memset
4403
- mov r2, #512
44044739 mov r1, r5
4740
+ mov r2, #512
44054741 add r0, r4, #2640
44064742 bl ftl_memset
44074743 bl FtlGcBufInit
44084744 bl FtlL2PDataInit
44094745 mov r0, r5
4410
- pop {r4, r5, r6, pc}
4411
-.L643:
4746
+ ldmfd sp, {r4, r5, fp, sp, pc}
4747
+.L579:
44124748 .align 2
4413
-.L642:
4749
+.L578:
44144750 .word .LANCHOR0
4415
- .fnend
44164751 .size FtlVariablesInit, .-FtlVariablesInit
44174752 .align 2
44184753 .global SupperBlkListInit
....@@ -4421,132 +4756,132 @@
44214756 .fpu softvfp
44224757 .type SupperBlkListInit, %function
44234758 SupperBlkListInit:
4424
- .fnstart
44254759 @ args = 0, pretend = 0, frame = 16
4426
- @ frame_needed = 0, uses_anonymous_args = 0
4427
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4428
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4429
- mov r2, #6
4430
- ldr r4, .L656
4431
- mov r5, #0
4432
- .pad #20
4760
+ @ frame_needed = 1, uses_anonymous_args = 0
4761
+ mov ip, sp
4762
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
4763
+ sub fp, ip, #4
44334764 sub sp, sp, #20
4765
+ push {lr}
4766
+ bl __gnu_mcount_nc
4767
+ ldr r4, .L591
4768
+ mov r2, #6
4769
+ mov r5, #0
44344770 mov r1, #0
4435
- ldr r10, .L656+4
4771
+ add r10, r4, #2528
44364772 mov r9, r5
4773
+ mov r7, r5
44374774 ldrh r3, [r4, #242]
4438
- mov r6, r5
44394775 ldr r0, [r4, #2516]
4440
- add fp, r4, #260
44414776 mul r2, r2, r3
44424777 bl ftl_memset
4443
- add r3, r4, #2528
44444778 str r5, [r4, #2532]
44454779 str r5, [r4, #2520]
44464780 str r5, [r4, #2524]
4447
- strh r5, [r3] @ movhi
4781
+ strh r5, [r10] @ movhi
44484782 strh r5, [r4, #224] @ movhi
4449
- str r3, [sp, #4]
4450
-.L645:
4783
+.L581:
44514784 ldrh r3, [r4, #240]
44524785 uxth r8, r5
44534786 cmp r8, r3
4454
- bcs .L652
4455
- ldrh r3, [r10]
4456
- ldrh r2, [r4, #232]
4457
- str r3, [sp]
4787
+ bcs .L588
4788
+ ldrh r3, [r4, #232]
4789
+ str r3, [fp, #-52]
4790
+ ldr r3, .L591+4
4791
+ ldr r2, .L591+8
4792
+ ldrh r3, [r3]
4793
+ str r3, [fp, #-48]
44584794 mov r3, #0
4459
- mov r7, r3
4460
- b .L653
4461
-.L647:
4795
+ mov r6, r3
4796
+ b .L589
4797
+.L583:
4798
+ ldrb r0, [r2], #1 @ zero_extendqisi2
44624799 mov r1, r8
4463
- ldrb r0, [fp, r3] @ zero_extendqisi2
4464
- str r2, [sp, #12]
4465
- str r3, [sp, #8]
4800
+ str r3, [fp, #-60]
4801
+ str r2, [fp, #-56]
44664802 bl V2P_block
44674803 bl FtlBbmIsBadBlock
44684804 cmp r0, #0
4469
- ldr r3, [sp, #8]
4470
- ldreq r1, [sp]
4471
- ldr r2, [sp, #12]
4805
+ ldr r3, [fp, #-60]
4806
+ ldr r2, [fp, #-56]
4807
+ ldreq r1, [fp, #-48]
44724808 add r3, r3, #1
4473
- addeq r7, r7, r1
4474
- uxtheq r7, r7
4475
-.L653:
4809
+ addeq r6, r1, r6
4810
+ uxtheq r6, r6
4811
+.L589:
4812
+ ldr r0, [fp, #-52]
44764813 uxth r1, r3
4477
- cmp r2, r1
4478
- bhi .L647
4479
- cmp r7, #0
4814
+ cmp r0, r1
4815
+ bhi .L583
44804816 uxth r3, r5
4481
- beq .L648
4482
- mov r1, r7
4817
+ cmp r6, #0
4818
+ beq .L584
4819
+ mov r1, r6
44834820 mov r0, #32768
4484
- str r3, [sp]
4821
+ str r3, [fp, #-48]
44854822 bl __aeabi_idiv
4486
- ldr r3, [sp]
4487
- uxth r7, r0
4488
-.L649:
4489
- ldr r1, [r4, #2516]
4490
- mov r2, #6
4491
- mla r2, r2, r3, r1
4492
- strh r7, [r2, #4] @ movhi
4823
+ ldr r3, [fp, #-48]
4824
+ uxth r6, r0
4825
+.L585:
4826
+ ldr r2, [r4, #2516]
4827
+ mov r1, #6
4828
+ mla r2, r1, r3, r2
4829
+ strh r6, [r2, #4] @ movhi
44934830 ldrh r2, [r4, #24]
44944831 cmp r2, r8
4495
- beq .L650
4832
+ beq .L586
44964833 ldrh r2, [r4, #76]
44974834 cmp r2, r8
4498
- beq .L650
4835
+ beq .L586
44994836 ldrh r2, [r4, #124]
45004837 cmp r2, r8
4501
- beq .L650
4838
+ beq .L586
45024839 ldr r2, [r4, #72]
45034840 lsl r3, r3, #1
45044841 ldrh r3, [r2, r3]
45054842 cmp r3, #0
4506
- bne .L651
4843
+ bne .L587
45074844 add r9, r9, #1
45084845 mov r0, r8
45094846 uxth r9, r9
45104847 bl INSERT_FREE_LIST
4511
-.L650:
4848
+.L586:
45124849 add r5, r5, #1
4513
- b .L645
4514
-.L648:
4850
+ b .L581
4851
+.L584:
45154852 ldr r1, [r4, #72]
45164853 lsl r2, r3, #1
4517
- mvn r0, #0
4854
+ mvn r0, #0 @ movhi
45184855 strh r0, [r1, r2] @ movhi
4519
- b .L649
4520
-.L651:
4521
- add r6, r6, #1
4856
+ b .L585
4857
+.L587:
4858
+ add r7, r7, #1
45224859 mov r0, r8
4523
- uxth r6, r6
4860
+ uxth r7, r7
45244861 bl INSERT_DATA_LIST
4525
- b .L650
4526
-.L652:
4527
- ldr r2, [sp, #4]
4862
+ b .L586
4863
+.L588:
4864
+ strh r7, [r10] @ movhi
4865
+ add r7, r7, r9
4866
+ cmp r7, r3
45284867 strh r9, [r4, #224] @ movhi
4529
- strh r6, [r2] @ movhi
4530
- add r6, r6, r9
4531
- cmp r6, r3
4532
- ble .L654
4868
+ ble .L590
4869
+ ldr r1, .L591+12
45334870 movw r2, #2219
4534
- ldr r1, .L656+8
4535
- ldr r0, .L656+12
4871
+ ldr r0, .L591+16
45364872 bl sftl_printk
4537
-.L654:
4873
+.L590:
45384874 mov r0, #0
4539
- add sp, sp, #20
4540
- @ sp needed
4541
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4542
-.L657:
4875
+ sub sp, fp, #40
4876
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
4877
+.L592:
45434878 .align 2
4544
-.L656:
4879
+.L591:
45454880 .word .LANCHOR0
45464881 .word .LANCHOR0+302
4882
+ .word .LANCHOR0+260
45474883 .word .LANCHOR1+198
45484884 .word .LC8
4549
- .fnend
45504885 .size SupperBlkListInit, .-SupperBlkListInit
45514886 .align 2
45524887 .global FtlGcPageVarInit
....@@ -4555,36 +4890,37 @@
45554890 .fpu softvfp
45564891 .type FtlGcPageVarInit, %function
45574892 FtlGcPageVarInit:
4558
- .fnstart
45594893 @ args = 0, pretend = 0, frame = 0
4560
- @ frame_needed = 0, uses_anonymous_args = 0
4561
- push {r4, r5, r6, lr}
4562
- .save {r4, r5, r6, lr}
4563
- mov r3, #0
4564
- ldr r4, .L660
4894
+ @ frame_needed = 1, uses_anonymous_args = 0
4895
+ mov ip, sp
4896
+ push {r4, r5, fp, ip, lr, pc}
4897
+ sub fp, ip, #4
4898
+ push {lr}
4899
+ bl __gnu_mcount_nc
4900
+ ldr r4, .L594
45654901 movw r2, #3196
4902
+ mov r3, #0
45664903 movw r5, #306
45674904 mov r1, #255
45684905 strh r3, [r4, r2] @ movhi
45694906 movw r2, #3204
4907
+ ldr r0, [r4, #3192]
45704908 strh r3, [r4, r2] @ movhi
45714909 ldrh r2, [r4, r5]
4572
- ldr r0, [r4, #3192]
45734910 lsl r2, r2, #1
45744911 bl ftl_memset
45754912 ldrh r3, [r4, r5]
45764913 mov r2, #12
4577
- ldr r0, [r4, #3200]
45784914 mov r1, #255
4915
+ ldr r0, [r4, #3200]
45794916 mul r2, r2, r3
45804917 bl ftl_memset
4581
- pop {r4, r5, r6, lr}
4582
- b FtlGcBufInit
4583
-.L661:
4918
+ bl FtlGcBufInit
4919
+ ldmfd sp, {r4, r5, fp, sp, pc}
4920
+.L595:
45844921 .align 2
4585
-.L660:
4922
+.L594:
45864923 .word .LANCHOR0
4587
- .fnend
45884924 .size FtlGcPageVarInit, .-FtlGcPageVarInit
45894925 .align 2
45904926 .global FlashGetBadBlockList
....@@ -4593,49 +4929,48 @@
45934929 .fpu softvfp
45944930 .type FlashGetBadBlockList, %function
45954931 FlashGetBadBlockList:
4596
- .fnstart
45974932 @ args = 0, pretend = 0, frame = 0
4598
- @ frame_needed = 0, uses_anonymous_args = 0
4599
- push {r4, r5, r6, lr}
4600
- .save {r4, r5, r6, lr}
4601
- mov r2, #256
4602
- ldr r5, .L670
4933
+ @ frame_needed = 1, uses_anonymous_args = 0
4934
+ mov ip, sp
4935
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
4936
+ sub fp, ip, #4
4937
+ push {lr}
4938
+ bl __gnu_mcount_nc
4939
+ ldr r6, .L603
46034940 mov r4, r0
4604
- mov r6, r1
4941
+ mov r5, r1
4942
+ mov r2, #256
46054943 mov r1, #255
46064944 bl ftl_memset
4607
- ldr r3, [r5, #3244]
4608
- mov r1, r6
4945
+ mov r1, r5
4946
+ ldr r3, [r6, #3244]
46094947 mov r0, r4
46104948 blx r3
46114949 uxth r0, r0
46124950 cmp r0, #50
4613
- bls .L663
4951
+ bls .L597
4952
+ mov r0, r4
46144953 mov r2, #256
46154954 mov r1, #255
4616
- mov r0, r4
46174955 bl ftl_memset
46184956 mov r0, #0
4619
-.L663:
4620
- ldrh r3, [r5, #14]
4957
+.L597:
4958
+ ldrh r3, [r6, #14]
46214959 cmp r3, #4
46224960 moveq r3, r4
46234961 addeq r1, r3, r0, lsl #1
4624
- beq .L665
4625
- pop {r4, r5, r6, pc}
4626
-.L666:
4962
+ ldmfdne sp, {r4, r5, r6, r7, fp, sp, pc}
4963
+.L599:
4964
+ cmp r3, r1
4965
+ ldmfdeq sp, {r4, r5, r6, r7, fp, sp, pc}
46274966 ldrh r2, [r3]
46284967 lsr r2, r2, #1
46294968 strh r2, [r3], #2 @ movhi
4630
-.L665:
4631
- cmp r3, r1
4632
- bne .L666
4633
- pop {r4, r5, r6, pc}
4634
-.L671:
4969
+ b .L599
4970
+.L604:
46354971 .align 2
4636
-.L670:
4972
+.L603:
46374973 .word .LANCHOR0
4638
- .fnend
46394974 .size FlashGetBadBlockList, .-FlashGetBadBlockList
46404975 .align 2
46414976 .global ftl_memcpy
....@@ -4644,13 +4979,24 @@
46444979 .fpu softvfp
46454980 .type ftl_memcpy, %function
46464981 ftl_memcpy:
4647
- .fnstart
46484982 @ args = 0, pretend = 0, frame = 0
4649
- @ frame_needed = 0, uses_anonymous_args = 0
4650
- @ link register save eliminated.
4651
- b memcpy
4652
- .fnend
4983
+ @ frame_needed = 1, uses_anonymous_args = 0
4984
+ mov ip, sp
4985
+ push {fp, ip, lr, pc}
4986
+ sub fp, ip, #4
4987
+ push {lr}
4988
+ bl __gnu_mcount_nc
4989
+ bl memcpy
4990
+ ldmfd sp, {fp, sp, pc}
46534991 .size ftl_memcpy, .-ftl_memcpy
4992
+ .section .rodata.str1.1
4993
+.LC92:
4994
+ .ascii "FlashReadPages %x %x error_ecc_bits %d\012\000"
4995
+.LC93:
4996
+ .ascii "data:\000"
4997
+.LC94:
4998
+ .ascii "spare:\000"
4999
+ .text
46545000 .align 2
46555001 .global FlashReadPages
46565002 .syntax unified
....@@ -4658,158 +5004,161 @@
46585004 .fpu softvfp
46595005 .type FlashReadPages, %function
46605006 FlashReadPages:
4661
- .fnstart
46625007 @ args = 0, pretend = 0, frame = 24
4663
- @ frame_needed = 0, uses_anonymous_args = 0
4664
- ldr r3, .L714
4665
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4666
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4667
- .pad #28
5008
+ @ frame_needed = 1, uses_anonymous_args = 0
5009
+ mov ip, sp
5010
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
5011
+ sub fp, ip, #4
46685012 sub sp, sp, #28
4669
- ldr r5, .L714+4
4670
- mov r8, r1
5013
+ push {lr}
5014
+ bl __gnu_mcount_nc
5015
+ mov r3, sp
5016
+ ldr r6, .L647
5017
+ bic r7, r3, #8128
5018
+ ldr r10, .L647+4
5019
+ bic r7, r7, #63
5020
+ ldr r9, .L647+8
46715021 mov r4, r0
4672
- mov r7, #0
4673
- ldr r2, [r3]
4674
- mov fp, r3
4675
- ldr r9, .L714+8
4676
- ldr r10, .L714+12
4677
- str r2, [sp, #20]
4678
- ldrh r2, [r5, #12]
4679
- str r2, [sp, #4]
4680
-.L674:
4681
- cmp r7, r8
4682
- bne .L687
4683
- ldr r2, [sp, #20]
4684
- mov r0, #0
4685
- ldr r3, [fp]
5022
+ str r1, [fp, #-68]
5023
+ mov r8, #0
5024
+ ldr r3, [r7, #24]
5025
+ str r3, [fp, #-48]
5026
+ ldrh r3, [r6, #12]
5027
+ str r3, [fp, #-64]
5028
+.L607:
5029
+ ldr r3, [fp, #-68]
5030
+ cmp r8, r3
5031
+ bne .L620
5032
+ ldr r2, [fp, #-48]
5033
+ ldr r3, [r7, #24]
46865034 cmp r2, r3
4687
- beq .L688
5035
+ beq .L621
46885036 bl __stack_chk_fail
4689
-.L687:
5037
+.L620:
46905038 ldr r3, [r4, #8]
46915039 cmp r3, #0
4692
- beq .L675
5040
+ beq .L608
46935041 ldr r3, [r4, #12]
46945042 cmp r3, #0
4695
- bne .L676
4696
-.L675:
4697
- mov r2, #96
4698
- ldr r1, .L714+16
5043
+ bne .L609
5044
+.L608:
5045
+ mov r1, r10
46995046 mov r0, r9
5047
+ mov r2, #96
47005048 bl sftl_printk
4701
-.L676:
4702
- add r2, sp, #12
4703
- add r1, sp, #16
5049
+.L609:
5050
+ sub r2, fp, #56
5051
+ sub r1, fp, #52
47045052 mov r0, r4
47055053 bl l2p_addr_tran
4706
- ldr r0, [sp, #12]
5054
+ ldr r0, [fp, #-56]
47075055 cmp r0, #3
47085056 mvnhi r3, #0
47095057 strhi r3, [r4]
4710
- bhi .L678
4711
- ldr r6, [r4, #8]
5058
+ bhi .L611
5059
+ ldr r5, [r4, #8]
47125060 uxtb r0, r0
47135061 ldr r3, [r4, #12]
4714
- ldr r1, [sp, #16]
4715
- tst r6, #63
4716
- ldr ip, [r5, #3256]
4717
- ldrne r6, [r5, #3320]
4718
- mov r2, r6
5062
+ tst r5, #63
5063
+ ldr r1, [fp, #-52]
5064
+ ldr ip, [r6, #3256]
5065
+ ldrne r5, [r6, #3320]
5066
+ mov r2, r5
47195067 blx ip
47205068 str r0, [r4]
4721
- ldrh r3, [r5, #14]
5069
+ ldrh r3, [r6, #14]
47225070 cmp r3, #4
4723
- bne .L681
4724
- ldr r0, [sp, #4]
4725
- add r2, r6, #2048
5071
+ bne .L614
5072
+ ldr r0, [fp, #-64]
5073
+ add r2, r5, #2048
47265074 ldr r3, [r4, #12]
4727
- ldr r1, [sp, #16]
4728
- ldr ip, [r5, #3256]
5075
+ ldr r1, [fp, #-52]
5076
+ ldr ip, [r6, #3256]
47295077 add r3, r3, #8
47305078 add r1, r0, r1
4731
- ldrb r0, [sp, #12] @ zero_extendqisi2
5079
+ ldrb r0, [fp, #-56] @ zero_extendqisi2
47325080 blx ip
47335081 cmn r0, #1
4734
- mov r1, r0
4735
- beq .L682
5082
+ beq .L615
47365083 ldr r3, [r4, #12]
47375084 ldr r2, [r3, #12]
47385085 cmn r2, #1
4739
- bne .L683
5086
+ bne .L616
47405087 ldr r2, [r3, #8]
47415088 cmn r2, #1
4742
- bne .L683
5089
+ bne .L616
47435090 ldr r3, [r3]
47445091 cmn r3, #1
4745
- beq .L683
4746
-.L682:
5092
+ beq .L616
5093
+.L615:
47475094 mvn r3, #0
5095
+.L646:
47485096 str r3, [r4]
4749
-.L683:
4750
- ldr r3, [r4]
4751
- sub r0, r1, #256
4752
- clz r0, r0
4753
- lsr r0, r0, #5
4754
- cmn r3, #1
4755
- moveq r0, #0
4756
- cmp r0, #0
4757
- movne r3, #256
4758
- strne r3, [r4]
5097
+.L617:
47595098 ldr r3, [r4]
47605099 cmn r3, #1
47615100 cmpne r3, #256
4762
- bne .L681
5101
+ bne .L614
47635102 ldr r1, [r4, #4]
4764
- ldr r2, [sp, #16]
4765
- ldr r0, .L714+20
5103
+ ldr r2, [fp, #-52]
5104
+ ldr r0, .L647+12
47665105 bl sftl_printk
47675106 ldr r1, [r4, #8]
47685107 cmp r1, #0
4769
- beq .L686
5108
+ beq .L619
47705109 mov r3, #4
4771
- ldr r0, .L714+24
5110
+ ldr r0, .L647+16
47725111 mov r2, r3
47735112 bl rknand_print_hex
4774
-.L686:
5113
+.L619:
47755114 ldr r1, [r4, #12]
47765115 cmp r1, #0
4777
- beq .L681
5116
+ beq .L614
47785117 mov r3, #4
4779
- ldr r0, .L714+28
5118
+ ldr r0, .L647+20
47805119 mov r2, r3
47815120 bl rknand_print_hex
4782
-.L681:
4783
- ldr r3, [r5, #3320]
4784
- cmp r6, r3
4785
- bne .L678
5121
+.L614:
5122
+ ldr r3, [r6, #3320]
5123
+ cmp r3, r5
5124
+ bne .L611
47865125 ldr r0, [r4, #8]
4787
- cmp r6, r0
4788
- beq .L678
4789
- ldrh r2, [r10]
4790
- mov r1, r6
5126
+ cmp r0, r5
5127
+ beq .L611
5128
+ ldr r3, .L647+24
5129
+ mov r1, r5
5130
+ ldrh r2, [r3]
47915131 lsl r2, r2, #9
47925132 bl ftl_memcpy
4793
-.L678:
4794
- add r7, r7, #1
5133
+.L611:
5134
+ add r8, r8, #1
47955135 add r4, r4, #20
4796
- b .L674
4797
-.L688:
4798
- add sp, sp, #28
4799
- @ sp needed
4800
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
4801
-.L715:
5136
+ b .L607
5137
+.L616:
5138
+ ldr r3, [r4]
5139
+ sub r0, r0, #256
5140
+ clz r0, r0
5141
+ cmn r3, #1
5142
+ lsr r0, r0, #5
5143
+ moveq r0, #0
5144
+ cmp r0, #0
5145
+ beq .L617
5146
+ mov r3, #256
5147
+ b .L646
5148
+.L621:
5149
+ mov r0, #0
5150
+ sub sp, fp, #40
5151
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
5152
+.L648:
48025153 .align 2
4803
-.L714:
4804
- .word __stack_chk_guard
5154
+.L647:
48055155 .word .LANCHOR0
4806
- .word .LC8
4807
- .word .LANCHOR0+258
48085156 .word .LANCHOR1+216
5157
+ .word .LC8
48095158 .word .LC92
48105159 .word .LC93
48115160 .word .LC94
4812
- .fnend
5161
+ .word .LANCHOR0+258
48135162 .size FlashReadPages, .-FlashReadPages
48145163 .align 2
48155164 .global FtlLoadFactoryBbt
....@@ -4818,66 +5167,67 @@
48185167 .fpu softvfp
48195168 .type FtlLoadFactoryBbt, %function
48205169 FtlLoadFactoryBbt:
4821
- .fnstart
48225170 @ args = 0, pretend = 0, frame = 0
4823
- @ frame_needed = 0, uses_anonymous_args = 0
4824
- push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
4825
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
4826
- mov r7, #0
4827
- ldr r5, .L727
4828
- ldr r10, .L727+4
4829
- add r6, r5, #360
5171
+ @ frame_needed = 1, uses_anonymous_args = 0
5172
+ mov ip, sp
5173
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
5174
+ sub fp, ip, #4
5175
+ push {lr}
5176
+ bl __gnu_mcount_nc
5177
+ ldr r5, .L659
5178
+ mov r6, #0
5179
+ add r7, r5, #364
5180
+ sub r9, r7, #66
48305181 ldr r3, [r5, #3300]
48315182 ldr r8, [r5, #3332]
4832
- add r6, r6, #2
4833
- sub r9, r6, #64
48345183 str r3, [r5, #3460]
48355184 str r8, [r5, #3464]
4836
-.L717:
5185
+.L650:
48375186 ldrh r3, [r5, #254]
4838
- cmp r7, r3
4839
- bcc .L722
5187
+ cmp r3, r6
5188
+ bhi .L655
48405189 mov r0, #0
4841
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
4842
-.L722:
5190
+ ldmfd sp, {r3, r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
5191
+.L655:
48435192 ldrh r4, [r9]
48445193 mvn r3, #0
4845
- movw fp, #61664
4846
- strh r3, [r6, #2]! @ movhi
5194
+ ldr r10, .L659+4
48475195 add r4, r4, r3
5196
+ strh r3, [r7] @ movhi
48485197 uxth r4, r4
4849
-.L718:
5198
+.L651:
48505199 ldrh r3, [r9]
48515200 sub r2, r3, #16
48525201 cmp r4, r2
4853
- ble .L720
4854
- mla r3, r7, r3, r4
5202
+ ble .L653
5203
+ mla r3, r6, r3, r4
48555204 mov r2, #1
4856
- mov r1, r2
48575205 mov r0, r10
5206
+ mov r1, r2
48585207 lsl r3, r3, #10
48595208 str r3, [r5, #3456]
48605209 bl FlashReadPages
48615210 ldr r3, [r5, #3452]
48625211 cmn r3, #1
4863
- beq .L719
4864
- ldrh r3, [r8]
4865
- cmp r3, fp
4866
- bne .L719
4867
- strh r4, [r6] @ movhi
4868
-.L720:
4869
- add r7, r7, #1
4870
- b .L717
4871
-.L719:
5212
+ beq .L652
5213
+ ldrh r2, [r8]
5214
+ movw r3, #61664
5215
+ cmp r2, r3
5216
+ bne .L652
5217
+ strh r4, [r7] @ movhi
5218
+.L653:
5219
+ add r6, r6, #1
5220
+ add r7, r7, #2
5221
+ b .L650
5222
+.L652:
48725223 sub r4, r4, #1
48735224 uxth r4, r4
4874
- b .L718
4875
-.L728:
5225
+ b .L651
5226
+.L660:
48765227 .align 2
4877
-.L727:
5228
+.L659:
48785229 .word .LANCHOR0
48795230 .word .LANCHOR0+3452
4880
- .fnend
48815231 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
48825232 .align 2
48835233 .global FtlGetLastWrittenPage
....@@ -4886,86 +5236,83 @@
48865236 .fpu softvfp
48875237 .type FtlGetLastWrittenPage, %function
48885238 FtlGetLastWrittenPage:
4889
- .fnstart
48905239 @ args = 0, pretend = 0, frame = 88
4891
- @ frame_needed = 0, uses_anonymous_args = 0
4892
- push {r4, r5, r6, r7, r8, r9, lr}
4893
- .save {r4, r5, r6, r7, r8, r9, lr}
4894
- .pad #92
4895
- sub sp, sp, #92
4896
- ldr r6, .L742
5240
+ @ frame_needed = 1, uses_anonymous_args = 0
5241
+ mov ip, sp
5242
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
5243
+ sub fp, ip, #4
5244
+ sub sp, sp, #88
5245
+ push {lr}
5246
+ bl __gnu_mcount_nc
5247
+ mov r3, sp
48975248 cmp r1, #1
5249
+ bic r6, r3, #8128
5250
+ mov r9, r1
5251
+ bic r6, r6, #63
48985252 movwne r2, #302
4899
- lsl r8, r0, #10
4900
- mov r7, r1
4901
- ldr r3, [r6]
4902
- mov r0, sp
4903
- str r3, [sp, #84]
4904
- ldr r3, .L742+4
5253
+ lsl r7, r0, #10
5254
+ ldr r3, [r6, #24]
5255
+ str r3, [fp, #-40]
5256
+ ldr r3, .L674
49055257 addeq r2, r3, #304
4906
- ldrhne r5, [r3, r2]
4907
- ldrheq r5, [r2]
5258
+ ldrhne r4, [r3, r2]
5259
+ ldrheq r4, [r2]
49085260 mov r2, r1
49095261 ldr r3, [r3, #3324]
49105262 mov r1, #1
4911
- sub r5, r5, #1
4912
- sxth r5, r5
4913
- str r3, [sp, #8]
4914
- add r3, sp, #20
4915
- str r3, [sp, #12]
4916
- orr r3, r5, r8
4917
- str r3, [sp, #4]
5263
+ sub r4, r4, #1
5264
+ str r3, [fp, #-116]
5265
+ sub r3, fp, #104
5266
+ str r3, [fp, #-112]
5267
+ sxth r4, r4
5268
+ orr r0, r4, r0, lsl #10
5269
+ str r0, [fp, #-120]
5270
+ sub r0, fp, #124
49185271 bl FlashReadPages
4919
- ldr r3, [sp, #20]
5272
+ ldr r3, [fp, #-104]
49205273 cmn r3, #1
4921
- moveq r9, #0
4922
- beq .L733
4923
-.L732:
4924
- ldr r2, [sp, #84]
4925
- mov r0, r5
4926
- ldr r3, [r6]
4927
- cmp r2, r3
4928
- beq .L737
4929
- bl __stack_chk_fail
4930
-.L736:
4931
- add r3, r9, r5
4932
- mov r2, r7
4933
- add r3, r3, r3, lsr #31
5274
+ bne .L665
5275
+ mov r8, #0
5276
+ b .L664
5277
+.L668:
5278
+ add r3, r8, r4
5279
+ mov r2, r9
5280
+ sub r0, fp, #124
49345281 mov r1, #1
4935
- mov r0, sp
4936
- asr r4, r3, #1
4937
- sxth r3, r4
4938
- orr r3, r3, r8
4939
- str r3, [sp, #4]
5282
+ add r3, r3, r3, lsr #31
5283
+ sbfx r5, r3, #1, #16
5284
+ orr r3, r7, r3, asr #1
5285
+ str r3, [fp, #-120]
49405286 bl FlashReadPages
4941
- ldr r3, [sp, #20]
5287
+ ldrd r2, [fp, #-104]
5288
+ and r3, r3, r2
49425289 cmn r3, #1
4943
- bne .L734
4944
- ldr r3, [sp, #24]
5290
+ bne .L666
5291
+ ldr r3, [fp, #-124]
49455292 cmn r3, #1
4946
- bne .L734
4947
- ldr r3, [sp]
4948
- cmn r3, #1
4949
- subne r4, r4, #1
4950
- sxthne r5, r4
4951
- bne .L733
4952
-.L734:
4953
- add r4, r4, #1
4954
- sxth r9, r4
4955
-.L733:
4956
- cmp r9, r5
4957
- ble .L736
4958
- b .L732
4959
-.L737:
4960
- add sp, sp, #92
4961
- @ sp needed
4962
- pop {r4, r5, r6, r7, r8, r9, pc}
4963
-.L743:
5293
+ subne r4, r5, #1
5294
+ sxthne r4, r4
5295
+ bne .L664
5296
+.L666:
5297
+ add r5, r5, #1
5298
+ sxth r8, r5
5299
+.L664:
5300
+ cmp r8, r4
5301
+ ble .L668
5302
+.L665:
5303
+ ldr r2, [fp, #-40]
5304
+ ldr r3, [r6, #24]
5305
+ cmp r2, r3
5306
+ beq .L669
5307
+ bl __stack_chk_fail
5308
+.L669:
5309
+ mov r0, r4
5310
+ sub sp, fp, #36
5311
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
5312
+.L675:
49645313 .align 2
4965
-.L742:
4966
- .word __stack_chk_guard
5314
+.L674:
49675315 .word .LANCHOR0
4968
- .fnend
49695316 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
49705317 .align 2
49715318 .global FtlScanSysBlk
....@@ -4974,24 +5321,25 @@
49745321 .fpu softvfp
49755322 .type FtlScanSysBlk, %function
49765323 FtlScanSysBlk:
4977
- .fnstart
4978
- @ args = 0, pretend = 0, frame = 32
4979
- @ frame_needed = 0, uses_anonymous_args = 0
4980
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4981
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
4982
- mov r5, #0
4983
- ldr r4, .L826
5324
+ @ args = 0, pretend = 0, frame = 24
5325
+ @ frame_needed = 1, uses_anonymous_args = 0
5326
+ mov ip, sp
5327
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
5328
+ sub fp, ip, #4
5329
+ sub sp, sp, #28
5330
+ push {lr}
5331
+ bl __gnu_mcount_nc
5332
+ ldr r4, .L756
49845333 movw r3, #3436
5334
+ mov r5, #0
49855335 mov r1, r5
4986
- .pad #36
4987
- sub sp, sp, #36
4988
- ldr r2, [r4, #328]
4989
- add r7, r4, #344
4990
- ldr r0, [r4, #3380]
49915336 add r6, r4, #320
5337
+ ldr r2, [r4, #328]
49925338 strh r5, [r4, r3] @ movhi
4993
- strh r5, [r7] @ movhi
5339
+ add r3, r4, #344
5340
+ ldr r0, [r4, #3380]
49945341 lsl r2, r2, #2
5342
+ strh r5, [r3] @ movhi
49955343 bl ftl_memset
49965344 ldr r2, [r4, #328]
49975345 mov r1, r5
....@@ -5006,470 +5354,462 @@
50065354 ldrh r2, [r6]
50075355 mov r1, r5
50085356 ldr r0, [r4, #348]
5009
- add r5, r4, #2624
50105357 lsl r2, r2, #1
50115358 bl ftl_memset
5359
+ add r0, r4, #2624
50125360 mov r2, #16
50135361 mov r1, #255
5014
- add r0, r4, #2624
50155362 bl ftl_memset
50165363 ldrh r3, [r4, #240]
5017
- str r7, [sp, #20]
5018
- str r6, [sp, #12]
5019
- str r3, [sp, #4]
5020
-.L745:
5364
+.L755:
5365
+ str r3, [fp, #-48]
5366
+ ldr r2, [fp, #-48]
50215367 ldrh r3, [r4, #242]
5022
- ldr r2, [sp, #4]
50235368 cmp r3, r2
5024
- bls .L786
5025
- ldr r1, [r4, #3180]
5026
- mov r6, #0
5027
- ldr r7, .L826+4
5028
- mov fp, r6
5029
- ldrh r2, [r4, #232]
5369
+ bls .L716
5370
+ ldr r5, .L756+4
5371
+ mov r7, #0
5372
+ ldrh r6, [r4, #232]
50305373 mov r9, #20
50315374 ldr r8, [r4, #3288]
5032
- ldr r3, [r4, #3176]
5033
- str r1, [sp, #8]
5034
- ldrh r10, [r7], #-52
5035
- b .L787
5036
-.L747:
5037
- ldr r1, [sp, #4]
5038
- ldrb r0, [r7, r6] @ zero_extendqisi2
5039
- str r3, [sp, #28]
5040
- str r2, [sp, #24]
5375
+ ldr r2, [r4, #3176]
5376
+ ldrh r10, [r5], #-52
5377
+ ldr r3, [r4, #3180]
5378
+ add r6, r6, r5
5379
+ b .L717
5380
+.L679:
5381
+ ldr r1, [fp, #-48]
5382
+ ldrb r0, [r5], #1 @ zero_extendqisi2
5383
+ str r3, [fp, #-60]
5384
+ str r2, [fp, #-56]
50415385 bl V2P_block
5042
- str r0, [sp, #16]
5386
+ str r0, [fp, #-52]
50435387 bl FtlBbmIsBadBlock
5388
+ ldr r2, [fp, #-56]
50445389 cmp r0, #0
5045
- ldr r2, [sp, #24]
5046
- ldr r3, [sp, #28]
5047
- bne .L746
5048
- ldr r1, [sp, #16]
5049
- mla r0, r9, fp, r8
5390
+ ldr r3, [fp, #-60]
5391
+ bne .L717
5392
+ mla ip, r9, r7, r8
5393
+ ldr r1, [fp, #-52]
5394
+ mul r0, r10, r7
5395
+ add r7, r7, #1
5396
+ cmp r0, #0
50505397 lsl r1, r1, #10
5051
- stmib r0, {r1, r3}
5052
- mul r1, r10, fp
5053
- add ip, r1, #3
5054
- cmp r1, #0
5055
- movlt r1, ip
5056
- ldr ip, [sp, #8]
5398
+ stmib ip, {r1, r2}
5399
+ add r1, r0, #3
5400
+ movge r1, r0
5401
+ uxth r7, r7
50575402 bic r1, r1, #3
5058
- add r1, ip, r1
5059
- str r1, [r0, #12]
5060
- add r1, fp, #1
5061
- uxth fp, r1
5062
-.L746:
5063
- add r6, r6, #1
5064
-.L787:
5065
- uxth r1, r6
5066
- cmp r2, r1
5067
- bhi .L747
5068
- cmp fp, #0
5069
- bne .L748
5070
-.L785:
5071
- ldr r3, [sp, #4]
5403
+ add r1, r3, r1
5404
+ str r1, [ip, #12]
5405
+.L717:
5406
+ cmp r6, r5
5407
+ bne .L679
5408
+ cmp r7, #0
5409
+ bne .L680
5410
+.L715:
5411
+ ldr r3, [fp, #-48]
50725412 add r3, r3, #1
50735413 uxth r3, r3
5074
- str r3, [sp, #4]
5075
- b .L745
5076
-.L748:
5414
+ b .L755
5415
+.L680:
5416
+ mov r1, r7
50775417 mov r0, r8
5078
- ldr r8, .L826+8
50795418 mov r2, #1
5080
- mov r1, fp
50815419 bl FlashReadPages
50825420 mov r3, #0
5083
- str r3, [sp, #8]
5084
-.L749:
5085
- ldrh r3, [sp, #8]
5086
- cmp fp, r3
5087
- bls .L785
5088
- ldr r3, [sp, #8]
5089
- mov r9, #20
5090
- mul r9, r9, r3
5421
+ str r3, [fp, #-52]
5422
+.L714:
5423
+ ldr r3, [fp, #-52]
5424
+ mov r8, #20
5425
+ mul r8, r8, r3
50915426 ldr r3, [r4, #3288]
5092
- add r2, r3, r9
5093
- ldr r3, [r3, r9]
5094
- ldr r6, [r2, #4]
5095
- ldr r7, [r2, #12]
5427
+ add r2, r3, r8
5428
+ ldr r3, [r3, r8]
5429
+ ldr r5, [r2, #4]
5430
+ ldr r6, [r2, #12]
50965431 cmn r3, #1
5097
- ubfx r6, r6, #10, #16
5098
- bne .L752
5099
- mov r10, #16
5100
-.L754:
5432
+ ubfx r5, r5, #10, #16
5433
+ bne .L683
5434
+ mov r9, #16
5435
+ movw r10, #65535
5436
+.L685:
51015437 ldr r0, [r4, #3288]
51025438 mov r2, #1
51035439 mov r1, r2
5104
- add r0, r0, r9
5440
+ add r0, r0, r8
51055441 ldr r3, [r0, #4]
51065442 add r3, r3, #1
51075443 str r3, [r0, #4]
51085444 bl FlashReadPages
5109
- ldrh r3, [r7]
5110
- movw r2, #65535
5111
- cmp r3, r2
5445
+ ldrh r3, [r6]
5446
+ cmp r3, r10
51125447 ldr r3, [r4, #3288]
5113
- bne .L751
5448
+ bne .L682
51145449 mvn r2, #0
5115
- str r2, [r3, r9]
5450
+ str r2, [r3, r8]
51165451 ldr r3, [r4, #3288]
5117
- ldr r3, [r3, r9]
5452
+ ldr r3, [r3, r8]
51185453 cmp r3, r2
5119
- bne .L752
5120
-.L753:
5121
- mov r1, #1
5122
- b .L825
5123
-.L751:
5124
- ldr r3, [r3, r9]
5125
- cmn r3, #1
5126
- bne .L752
5127
- sub r10, r10, #1
5128
- uxth r10, r10
5129
- cmp r10, #0
5130
- bne .L754
5131
- b .L753
5132
-.L752:
5454
+ beq .L684
5455
+.L683:
51335456 ldr r2, [r4, #2588]
5134
- ldr r3, [r7, #4]
5457
+ ldr r3, [r6, #4]
51355458 cmn r2, #1
5136
- beq .L755
5459
+ beq .L732
51375460 cmp r2, r3
5138
- bhi .L756
5139
-.L755:
5461
+ bhi .L686
5462
+.L732:
51405463 cmn r3, #1
51415464 addne r2, r3, #1
51425465 strne r2, [r4, #2588]
5143
-.L756:
5144
- ldrh r2, [r7]
5466
+.L686:
5467
+ ldrh r2, [r6]
5468
+ movw r1, #61634
5469
+ cmp r2, r1
5470
+ beq .L687
5471
+ bhi .L688
5472
+ movw r1, #61574
5473
+ cmp r2, r1
5474
+ beq .L689
51455475 movw r1, #61604
51465476 cmp r2, r1
5147
- beq .L758
5148
- bhi .L759
5149
- movw r3, #61574
5150
- cmp r2, r3
5151
- beq .L760
5152
-.L757:
5153
- ldr r3, [sp, #8]
5477
+ beq .L690
5478
+.L691:
5479
+ ldr r3, [fp, #-52]
51545480 add r3, r3, #1
5155
- str r3, [sp, #8]
5156
- b .L749
5157
-.L759:
5158
- movw r3, #61634
5159
- cmp r2, r3
5160
- beq .L761
5481
+ str r3, [fp, #-52]
5482
+ ldrh r3, [fp, #-52]
5483
+ cmp r7, r3
5484
+ bhi .L714
5485
+ b .L715
5486
+.L682:
5487
+ ldr r3, [r3, r8]
5488
+ cmn r3, #1
5489
+ bne .L683
5490
+ sub r9, r9, #1
5491
+ uxth r9, r9
5492
+ cmp r9, #0
5493
+ bne .L685
5494
+.L684:
5495
+ mov r1, #1
5496
+ b .L753
5497
+.L688:
51615498 movw r3, #65535
51625499 cmp r2, r3
51635500 moveq r1, #0
5164
- bne .L757
5165
-.L825:
5166
- mov r0, r6
5501
+ bne .L691
5502
+.L753:
5503
+ mov r0, r5
51675504 bl FtlFreeSysBlkQueueIn
5168
- b .L757
5169
-.L761:
5170
- ldrh r2, [r8]
5505
+ b .L691
5506
+.L687:
5507
+ ldr r8, .L756+8
51715508 ldr r3, [r4, #328]
5509
+ ldrh r2, [r8]
51725510 cmp r2, r3
5173
- bls .L763
5511
+ bls .L693
5512
+ ldr r1, .L756+12
51745513 mov r2, #1232
5175
- ldr r1, .L826+12
5176
- ldr r0, .L826+16
5514
+ ldr r0, .L756+16
51775515 bl sftl_printk
5178
-.L763:
5179
- ldr r0, [r4, #328]
5180
- ldrh r2, [r8]
5181
- ldr ip, [r4, #3380]
5182
- uxth r1, r0
5183
- sub r3, r1, #1
5184
- sub r1, r1, r2
5185
- sub r1, r1, #1
5516
+.L693:
5517
+ ldr lr, [r4, #328]
5518
+ ldrh r1, [r8]
5519
+ uxth r2, lr
5520
+ sub r3, r2, #1
5521
+ sub r2, r2, r1
5522
+ sub r2, r2, #1
51865523 sxth r3, r3
5187
- sxth r1, r1
5188
-.L764:
5189
- cmp r3, r1
5190
- bgt .L770
5191
- cmp r3, #0
5192
- bge .L802
5193
- b .L757
5194
-.L770:
5195
- ldr r10, [r7, #4]
5196
- lsl lr, r3, #2
5197
- ldr r9, [ip, r3, lsl #2]
5198
- cmp r10, r9
5199
- bls .L765
5200
- ldr r1, [ip]
5201
- cmp r1, #0
5202
- bne .L766
5203
- cmp r0, r2
5204
- addne r2, r2, #1
5205
- strhne r2, [r8] @ movhi
5206
-.L766:
5207
- uxth ip, r3
5208
- mov r1, #0
5209
-.L767:
5210
- uxth r0, r1
5211
- sxth r2, r1
5212
- cmp ip, r0
5213
- bhi .L768
5214
- ldr r1, [r7, #4]
5215
- cmp r3, #0
5524
+ sxth r2, r2
5525
+ str r2, [fp, #-60]
52165526 ldr r2, [r4, #3380]
5217
- str r1, [r2, lr]
5218
- lsl r2, r3, #1
5527
+ str r2, [fp, #-56]
5528
+ mov r2, r3
5529
+ ldr r0, [fp, #-56]
5530
+ add r10, r0, #4
5531
+.L694:
5532
+ ldr r0, [fp, #-60]
5533
+ cmp r0, r3
5534
+ bge .L699
5535
+ lsl r0, r2, #2
5536
+ str r0, [fp, #-64]
5537
+ sub r0, r2, #1
5538
+ ldr r9, [r6, #4]
5539
+ ldr ip, [r10, r0, lsl #2]
5540
+ cmp r9, ip
5541
+ bls .L695
5542
+ ldr r0, [fp, #-56]
5543
+ ldr r0, [r0]
5544
+ cmp r0, #0
5545
+ bne .L696
5546
+ cmp lr, r1
5547
+ addne r1, r1, #1
5548
+ strhne r1, [r8] @ movhi
5549
+.L696:
5550
+ uxth lr, r3
5551
+ mov ip, #0
5552
+.L697:
5553
+ uxth r8, ip
5554
+ ldr r0, [r4, #3380]
5555
+ sxth r1, ip
5556
+ cmp lr, r8
5557
+ bhi .L698
5558
+ ldr ip, [fp, #-64]
5559
+ lsl r2, r2, #1
5560
+ ldr r1, [r6, #4]
5561
+ str r1, [r0, ip]
52195562 ldr r1, [r4, #3356]
5220
- strh r6, [r1, r2] @ movhi
5221
- blt .L757
5222
- ldrh r2, [r8]
5223
- ldr r1, [r4, #328]
5224
- sub r1, r1, r2
5225
- sub r1, r1, #1
5226
- sxth r1, r1
5227
- cmp r3, r1
5228
- bgt .L757
5229
-.L802:
5230
- add r2, r2, #1
5231
- ldr r1, [r7, #4]
5232
- strh r2, [r8] @ movhi
5563
+ strh r5, [r1, r2] @ movhi
5564
+.L699:
5565
+ cmp r3, #0
5566
+ blt .L691
5567
+ ldr r0, .L756+8
5568
+ ldr r2, [r4, #328]
5569
+ ldrh r1, [r0]
5570
+ sub r2, r2, r1
5571
+ sub r2, r2, #1
5572
+ sxth r2, r2
5573
+ cmp r2, r3
5574
+ blt .L691
52335575 ldr r2, [r4, #3380]
5576
+ add r1, r1, #1
5577
+ strh r1, [r0] @ movhi
5578
+ ldr r1, [r6, #4]
52345579 str r1, [r2, r3, lsl #2]
52355580 lsl r3, r3, #1
52365581 ldr r2, [r4, #3356]
5237
-.L823:
5238
- strh r6, [r2, r3] @ movhi
5239
- b .L757
5240
-.L768:
5241
- ldr r0, [r4, #3380]
5582
+.L752:
5583
+ strh r5, [r2, r3] @ movhi
5584
+ b .L691
5585
+.L698:
52425586 add r1, r1, #1
5243
- add r9, r0, r2, lsl #2
5244
- ldr r9, [r9, #4]
5245
- str r9, [r0, r2, lsl #2]
5246
- lsl r2, r2, #1
5587
+ add ip, ip, #1
5588
+ ldr r8, [r0, r1, lsl #2]
5589
+ add r0, r0, r1, lsl #2
5590
+ lsl r1, r1, #1
5591
+ str r8, [r0, #-4]
52475592 ldr r0, [r4, #3356]
5248
- add r9, r0, r2
5249
- ldrh r9, [r9, #2]
5250
- strh r9, [r0, r2] @ movhi
5251
- b .L767
5252
-.L765:
5593
+ ldrh r1, [r0, r1]!
5594
+ strh r1, [r0, #-2] @ movhi
5595
+ b .L697
5596
+.L695:
52535597 sub r3, r3, #1
5598
+ mov r2, r0
52545599 sxth r3, r3
5255
- b .L764
5256
-.L760:
5257
- ldr r3, [sp, #20]
5258
- ldrh r2, [r3]
5259
- ldr r3, [sp, #12]
5260
- ldrh r3, [r3]
5600
+ b .L694
5601
+.L689:
5602
+ ldr r8, .L756+20
5603
+ ldrh r2, [r8]
5604
+ ldrh r3, [r8, #-24]
52615605 cmp r2, r3
5262
- bls .L773
5606
+ bls .L703
5607
+ ldr r1, .L756+12
52635608 movw r2, #1273
5264
- ldr r1, .L826+12
5265
- ldr r0, .L826+16
5609
+ ldr r0, .L756+16
52665610 bl sftl_printk
5267
-.L773:
5268
- ldr r3, [sp, #12]
5269
- ldr lr, .L826+20
5270
- ldr ip, [r4, #3368]
5271
- ldrh r2, [r3]
5272
- ldrh r1, [lr]
5611
+.L703:
5612
+ ldrh r2, [r8, #-24]
5613
+ ldrh r1, [r8]
52735614 sub r0, r2, #1
5615
+ ldr ip, [r4, #3368]
52745616 sxth r3, r0
52755617 sub r0, r0, r1
5276
- str r0, [sp, #16]
5277
-.L774:
5278
- ldr r0, [sp, #16]
5618
+.L704:
52795619 cmp r3, r0
5280
- ble .L779
5281
- ldr r10, [r7, #4]
5282
- lsl r9, r3, #2
5283
- ldr r0, [ip, r3, lsl #2]
5284
- cmp r10, r0
5285
- bls .L775
5620
+ ble .L709
5621
+ ldr r10, [r6, #4]
5622
+ lsl lr, r3, #2
5623
+ ldr r9, [ip, r3, lsl #2]
5624
+ cmp r10, r9
5625
+ bls .L705
52865626 sub r2, r2, r1
52875627 ldr r0, [ip]
52885628 clz r2, r2
5289
- uxth ip, r3
52905629 lsr r2, r2, #5
52915630 cmp r0, #0
52925631 orrne r2, r2, #1
5632
+ uxth r0, r3
52935633 cmp r2, #0
52945634 addeq r1, r1, #1
5295
- strheq r1, [lr] @ movhi
5635
+ strheq r1, [r8] @ movhi
52965636 mov r1, #0
5297
-.L777:
5298
- uxth r0, r1
5637
+.L707:
5638
+ uxth r8, r1
5639
+ ldr ip, [r4, #3368]
52995640 sxth r2, r1
5300
- cmp ip, r0
5301
- bhi .L778
5302
- ldr r1, [r7, #4]
5303
- ldr r2, [r4, #3368]
5304
- str r1, [r2, r9]
5641
+ cmp r0, r8
5642
+ bhi .L708
5643
+ ldr r2, [r6, #4]
5644
+ str r2, [ip, lr]
53055645 lsl r2, r3, #1
53065646 ldr r1, [r4, #348]
5307
- strh r6, [r1, r2] @ movhi
5308
-.L779:
5647
+ strh r5, [r1, r2] @ movhi
5648
+.L709:
53095649 cmp r3, #0
5310
- blt .L757
5311
- ldr r0, .L826+20
5650
+ blt .L691
5651
+ ldr r0, .L756+20
53125652 ldrh r2, [r0, #-24]
53135653 ldrh r1, [r0]
53145654 sub r2, r2, #1
53155655 sub r2, r2, r1
53165656 sxth r2, r2
5317
- cmp r3, r2
5318
- bgt .L757
5319
- add r1, r1, #1
5657
+ cmp r2, r3
5658
+ blt .L691
53205659 ldr r2, [r4, #3368]
5660
+ add r1, r1, #1
53215661 strh r1, [r0] @ movhi
5322
- ldr r1, [r7, #4]
5662
+ ldr r1, [r6, #4]
53235663 str r1, [r2, r3, lsl #2]
53245664 lsl r3, r3, #1
53255665 ldr r2, [r4, #348]
5326
- b .L823
5327
-.L778:
5328
- ldr r0, [r4, #3368]
5666
+ b .L752
5667
+.L708:
5668
+ add r2, r2, #1
53295669 add r1, r1, #1
5330
- add lr, r0, r2, lsl #2
5331
- ldr lr, [lr, #4]
5332
- str lr, [r0, r2, lsl #2]
5670
+ ldr r8, [ip, r2, lsl #2]
5671
+ add ip, ip, r2, lsl #2
53335672 lsl r2, r2, #1
5334
- ldr r0, [r4, #348]
5335
- add lr, r0, r2
5336
- ldrh lr, [lr, #2]
5337
- strh lr, [r0, r2] @ movhi
5338
- b .L777
5339
-.L775:
5673
+ str r8, [ip, #-4]
5674
+ ldr ip, [r4, #348]
5675
+ ldrh r2, [ip, r2]!
5676
+ strh r2, [ip, #-2] @ movhi
5677
+ b .L707
5678
+.L705:
53405679 sub r3, r3, #1
53415680 sxth r3, r3
5342
- b .L774
5343
-.L758:
5344
- ldrh r1, [r5]
5681
+ b .L704
5682
+.L690:
5683
+ ldr r8, .L756+24
53455684 movw r2, #65535
5685
+ ldrh r1, [r8]
53465686 cmp r1, r2
5347
- strheq r6, [r5] @ movhi
5348
- beq .L824
5349
- ldrh r0, [r5, #4]
5687
+ strheq r5, [r8] @ movhi
5688
+ beq .L754
5689
+ ldrh r0, [r8, #4]
53505690 cmp r0, r2
5351
- beq .L782
5691
+ beq .L712
53525692 mov r1, #1
53535693 bl FtlFreeSysBlkQueueIn
5354
-.L782:
5355
- ldr r3, [r7, #4]
5694
+.L712:
5695
+ ldr r3, [r6, #4]
53565696 ldr r2, [r4, #2632]
53575697 cmp r2, r3
5358
- strhcs r6, [r5, #4] @ movhi
5359
- bcs .L757
5360
- ldrh r3, [r5]
5361
- strh r6, [r5] @ movhi
5362
- strh r3, [r5, #4] @ movhi
5363
- ldr r3, [r7, #4]
5364
-.L824:
5698
+ strhcs r5, [r8, #4] @ movhi
5699
+ bcs .L691
5700
+ ldrh r3, [r8]
5701
+ strh r3, [r8, #4] @ movhi
5702
+ strh r5, [r8] @ movhi
5703
+ ldr r3, [r6, #4]
5704
+.L754:
53655705 str r3, [r4, #2632]
5366
- b .L757
5367
-.L786:
5706
+ b .L691
5707
+.L716:
53685708 ldr r1, [r4, #3356]
53695709 ldrh r3, [r1]
53705710 cmp r3, #0
5371
- beq .L788
5372
-.L791:
5373
- ldr r1, [r4, #348]
5374
- ldrh r2, [r1]
5711
+ beq .L718
5712
+.L721:
5713
+ ldr r0, [r4, #348]
5714
+ ldrh r2, [r0]
53755715 cmp r2, #0
5376
- beq .L789
5377
-.L790:
5716
+ beq .L719
5717
+.L720:
53785718 movw r3, #3436
53795719 ldrh r2, [r4, r3]
53805720 ldr r3, [r4, #328]
53815721 cmp r2, r3
5382
- bls .L821
5722
+ bls .L750
5723
+ ldr r1, .L756+12
53835724 movw r2, #1398
5384
- ldr r1, .L826+12
5385
- ldr r0, .L826+16
5725
+ ldr r0, .L756+16
53865726 bl sftl_printk
5387
-.L821:
5727
+.L750:
53885728 mov r0, #0
5389
- add sp, sp, #36
5390
- @ sp needed
5391
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5392
-.L788:
5729
+ sub sp, fp, #40
5730
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
5731
+.L718:
53935732 movw r2, #3436
53945733 ldrh r2, [r4, r2]
53955734 cmp r2, #0
53965735 ldrne r0, [r4, #328]
5397
- beq .L791
5398
-.L792:
5736
+ beq .L721
5737
+.L722:
53995738 sxth r2, r3
54005739 cmp r2, r0
5401
- bcs .L791
5740
+ bcs .L721
54025741 lsl ip, r2, #1
54035742 add r3, r3, #1
54045743 ldrh ip, [r1, ip]
54055744 cmp ip, #0
5406
- beq .L792
5745
+ beq .L722
54075746 mov r3, r2
54085747 mov lr, #0
5409
-.L793:
5410
- ldr r1, [r4, #328]
5411
- cmp r3, r1
5412
- bcs .L791
5748
+ b .L723
5749
+.L724:
5750
+ sub ip, r3, r2
54135751 ldr r0, [r4, #3356]
54145752 lsl r1, r3, #1
5415
- sub ip, r3, r2
54165753 lsl r5, ip, #1
54175754 ldrh r6, [r0, r1]
54185755 strh r6, [r0, r5] @ movhi
54195756 ldr r0, [r4, #3380]
54205757 ldr r5, [r0, r3, lsl #2]
54215758 add r3, r3, #1
5422
- sxth r3, r3
54235759 str r5, [r0, ip, lsl #2]
5760
+ sxth r3, r3
54245761 ldr r0, [r4, #3356]
54255762 strh lr, [r0, r1] @ movhi
5426
- b .L793
5427
-.L789:
5428
- ldr r3, .L826+20
5429
- ldrh r0, [r3]
5430
- cmp r0, #0
5431
- ldrhne r0, [r3, #-24]!
5432
- movne lr, r3
5433
- beq .L790
5434
-.L798:
5763
+.L723:
5764
+ ldr r1, [r4, #328]
5765
+ cmp r3, r1
5766
+ bcc .L724
5767
+ b .L721
5768
+.L719:
5769
+ ldr r1, .L756+20
5770
+ ldrh r3, [r1]
5771
+ cmp r3, #0
5772
+ ldrhne ip, [r1, #-24]!
5773
+ beq .L720
5774
+.L728:
54355775 sxth r3, r2
5436
- cmp r3, r0
5437
- mov r5, r3
5438
- bge .L790
5439
- lsl ip, r3, #1
5776
+ mov lr, r3
5777
+ cmp r3, ip
5778
+ bge .L720
5779
+ lsl r5, r3, #1
54405780 add r2, r2, #1
5441
- ldrh ip, [r1, ip]
5442
- cmp ip, #0
5443
- beq .L798
5444
- mov ip, #0
5445
-.L799:
5446
- ldrh r2, [lr]
5781
+ ldrh r5, [r0, r5]
5782
+ cmp r5, #0
5783
+ beq .L728
5784
+ mov r5, #0
5785
+.L729:
5786
+ ldrh r2, [r1]
54475787 cmp r3, r2
5448
- bge .L790
5449
- ldr r1, [r4, #348]
5788
+ bge .L720
5789
+ sub ip, r3, lr
5790
+ ldr r0, [r4, #348]
54505791 lsl r2, r3, #1
5451
- sub r0, r3, r5
5452
- lsl r6, r0, #1
5453
- ldrh r7, [r1, r2]
5454
- strh r7, [r1, r6] @ movhi
5455
- ldr r1, [r4, #3368]
5456
- ldr r6, [r1, r3, lsl #2]
5457
- str r6, [r1, r0, lsl #2]
5458
- ldr r1, [r4, #348]
5459
- strh ip, [r1, r2] @ movhi
5460
- add r2, r3, #1
5461
- sxth r3, r2
5462
- b .L799
5463
-.L827:
5792
+ lsl r6, ip, #1
5793
+ ldrh r7, [r0, r2]
5794
+ strh r7, [r0, r6] @ movhi
5795
+ ldr r0, [r4, #3368]
5796
+ ldr r6, [r0, r3, lsl #2]
5797
+ add r3, r3, #1
5798
+ str r6, [r0, ip, lsl #2]
5799
+ sxth r3, r3
5800
+ ldr r0, [r4, #348]
5801
+ strh r5, [r0, r2] @ movhi
5802
+ b .L729
5803
+.L757:
54645804 .align 2
5465
-.L826:
5805
+.L756:
54665806 .word .LANCHOR0
54675807 .word .LANCHOR0+312
54685808 .word .LANCHOR0+3436
54695809 .word .LANCHOR1+231
54705810 .word .LC8
54715811 .word .LANCHOR0+344
5472
- .fnend
5812
+ .word .LANCHOR0+2624
54735813 .size FtlScanSysBlk, .-FtlScanSysBlk
54745814 .align 2
54755815 .global FtlLoadBbt
....@@ -5478,16 +5818,18 @@
54785818 .fpu softvfp
54795819 .type FtlLoadBbt, %function
54805820 FtlLoadBbt:
5481
- .fnstart
54825821 @ args = 0, pretend = 0, frame = 0
5483
- @ frame_needed = 0, uses_anonymous_args = 0
5484
- push {r4, r5, r6, r7, r8, r9, r10, lr}
5485
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
5486
- ldr r4, .L861
5487
- ldr r8, .L861+4
5822
+ @ frame_needed = 1, uses_anonymous_args = 0
5823
+ mov ip, sp
5824
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
5825
+ sub fp, ip, #4
5826
+ push {lr}
5827
+ bl __gnu_mcount_nc
5828
+ ldr r4, .L792
5829
+ ldr r7, .L792+4
5830
+ ldr r8, .L792+8
54885831 ldr r3, [r4, #3300]
54895832 ldr r6, [r4, #3332]
5490
- ldr r7, .L861+8
54915833 str r3, [r4, #3460]
54925834 str r6, [r4, #3464]
54935835 bl FtlBbtMemInit
....@@ -5495,162 +5837,180 @@
54955837 ldrh r5, [r4, r3]
54965838 sub r5, r5, #1
54975839 uxth r5, r5
5498
-.L829:
5499
- ldrh r3, [r8]
5840
+.L759:
5841
+ ldrh r3, [r7]
55005842 sub r3, r3, #16
55015843 cmp r5, r3
5502
- ble .L832
5844
+ ble .L764
5845
+ mov r2, #1
5846
+ mov r0, r8
5847
+ mov r1, r2
55035848 lsl r3, r5, #10
5504
- mov r2, #1
5505
- mov r1, r2
5506
- mov r0, r7
55075849 str r3, [r4, #3456]
55085850 bl FlashReadPages
55095851 ldr r3, [r4, #3452]
55105852 cmn r3, #1
5511
- bne .L830
5512
- ldr r3, [r4, #3456]
5513
- mov r2, #1
5514
- mov r1, r2
5515
- mov r0, r7
5516
- add r3, r3, #1
5517
- str r3, [r4, #3456]
5518
- bl FlashReadPages
5519
-.L830:
5520
- ldr r3, [r4, #3452]
5521
- cmn r3, #1
5522
- beq .L831
5853
+ beq .L760
5854
+.L763:
55235855 ldrh r2, [r6]
55245856 movw r3, #61649
55255857 cmp r2, r3
5526
- bne .L831
5858
+ bne .L762
55275859 ldr r2, [r6, #4]
5528
- ldr r3, .L861+12
5860
+ ldr r3, .L792+12
55295861 str r2, [r4, #360]
55305862 ldrh r2, [r6, #8]
55315863 strh r5, [r3] @ movhi
55325864 strh r2, [r3, #4] @ movhi
5533
-.L832:
5534
- ldr r5, .L861+12
5865
+.L764:
5866
+ ldr r5, .L792+12
55355867 movw r2, #65535
55365868 ldrh r3, [r5]
55375869 cmp r3, r2
5538
- beq .L846
5870
+ beq .L778
55395871 ldrh r3, [r5, #4]
55405872 cmp r3, r2
5541
- beq .L836
5542
- lsl r3, r3, #10
5873
+ beq .L768
55435874 mov r2, #1
5875
+ ldr r0, .L792+8
55445876 mov r1, r2
5545
- ldr r0, .L861+8
5877
+ lsl r3, r3, #10
55465878 str r3, [r4, #3456]
55475879 bl FlashReadPages
55485880 ldr r3, [r4, #3452]
55495881 cmn r3, #1
5550
- beq .L836
5882
+ beq .L768
55515883 ldrh r2, [r6]
55525884 movw r3, #61649
55535885 cmp r2, r3
5554
- bne .L836
5886
+ bne .L768
55555887 ldr r3, [r6, #4]
55565888 ldr r2, [r4, #360]
55575889 cmp r3, r2
5558
- ldrhhi r2, [r5, #4]
5559
- strhi r3, [r4, #360]
5560
- ldrhhi r3, [r6, #8]
5561
- strhhi r2, [r5] @ movhi
5562
- strhhi r3, [r5, #4] @ movhi
5563
-.L836:
5564
- ldr r8, .L861+8
5565
- mov r1, #1
5890
+ bls .L768
5891
+ str r3, [r4, #360]
5892
+ ldrh r2, [r5, #4]
5893
+ ldrh r3, [r6, #8]
5894
+ strh r2, [r5] @ movhi
5895
+ strh r3, [r5, #4] @ movhi
5896
+.L768:
55665897 ldrh r0, [r5]
5567
- movw r9, #61649
5898
+ mov r1, #1
5899
+ ldr r10, .L792+8
55685900 bl FtlGetLastWrittenPage
5569
- sxth r7, r0
5570
- add r0, r0, #1
5571
- strh r0, [r5, #2] @ movhi
5572
-.L838:
5573
- cmp r7, #0
5574
- bge .L841
5901
+ sxth r9, r0
5902
+ mov r8, r0
5903
+ add r3, r9, #1
5904
+ mov r7, #0
5905
+ strh r3, [r5, #2] @ movhi
5906
+.L770:
5907
+ sub r3, r8, r7
5908
+ tst r3, #32768
5909
+ beq .L773
5910
+ ldr r1, .L792+16
55755911 mov r2, #251
5576
- ldr r1, .L861+16
5577
- ldr r0, .L861+20
5912
+ ldr r0, .L792+20
55785913 bl sftl_printk
5579
-.L840:
5580
- ldrh r3, [r6, #10]
5914
+.L772:
55815915 ldrh r0, [r6, #12]
5916
+ ldrh r3, [r6, #10]
55825917 strh r3, [r5, #6] @ movhi
55835918 movw r3, #65535
55845919 cmp r0, r3
5585
- beq .L843
5920
+ beq .L775
55865921 ldr r2, [r4, #228]
55875922 cmp r0, r2
5588
- beq .L843
5589
- ldrh r3, [r4, #242]
5590
- lsr r3, r3, #2
5591
- cmp r0, r3
5592
- cmpcc r2, r3
5593
- bcs .L843
5923
+ beq .L775
5924
+ ldrh r1, [r4, #242]
5925
+ cmp r0, r1, lsr #2
5926
+ movcc r3, #1
5927
+ movcs r3, #0
5928
+ cmp r2, r1, lsr #2
5929
+ andcc r3, r3, #1
5930
+ movcs r3, #0
5931
+ cmp r3, #0
5932
+ beq .L775
55945933 bl FtlSysBlkNumInit
5595
-.L843:
5596
- ldr r6, .L861+24
5934
+.L775:
5935
+ ldr r6, .L792+24
55975936 mov r5, #0
5598
- ldr r7, .L861+28
5599
-.L844:
5937
+ add r7, r6, #3008
5938
+.L776:
56005939 ldrh r3, [r4, #254]
5601
- cmp r5, r3
5602
- bcc .L845
5940
+ cmp r3, r5
5941
+ bhi .L777
56035942 mov r0, #0
5604
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
5605
-.L831:
5943
+ ldmfd sp, {r3, r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
5944
+.L760:
5945
+ ldr r3, [r4, #3456]
5946
+ mov r2, #1
5947
+ mov r0, r8
5948
+ mov r1, r2
5949
+ add r3, r3, #1
5950
+ str r3, [r4, #3456]
5951
+ bl FlashReadPages
5952
+ ldr r3, [r4, #3452]
5953
+ cmn r3, #1
5954
+ bne .L763
5955
+.L762:
56065956 sub r5, r5, #1
56075957 uxth r5, r5
5608
- b .L829
5609
-.L841:
5610
- ldrh r3, [r5]
5958
+ b .L759
5959
+.L773:
5960
+ ldrh r2, [r5]
5961
+ sub r3, r9, r7
5962
+ mov r0, r10
5963
+ orr r3, r3, r2, lsl #10
56115964 mov r2, #1
5612
- mov r1, r2
5613
- mov r0, r8
5614
- orr r3, r7, r3, lsl #10
56155965 str r3, [r4, #3456]
5966
+ mov r1, r2
56165967 ldr r3, [r4, #3300]
56175968 str r3, [r4, #3460]
56185969 bl FlashReadPages
56195970 ldr r3, [r4, #3452]
56205971 cmn r3, #1
5621
- beq .L839
5622
- ldrh r3, [r6]
5623
- cmp r3, r9
5624
- beq .L840
5625
-.L839:
5626
- sub r7, r7, #1
5627
- sxth r7, r7
5628
- b .L838
5629
-.L845:
5972
+ beq .L771
5973
+ ldrh r2, [r6]
5974
+ movw r3, #61649
5975
+ cmp r2, r3
5976
+ beq .L772
5977
+.L771:
5978
+ add r7, r7, #1
5979
+ b .L770
5980
+.L777:
56305981 ldrh r2, [r7]
5631
- ldr r1, [r4, #3460]
5632
- ldr r0, [r6, #4]!
5982
+ ldr r3, [r4, #3460]
5983
+ ldr r0, [r6], #4
5984
+ mul r1, r5, r2
56335985 lsl r2, r2, #2
5634
- mla r1, r5, r2, r1
56355986 add r5, r5, #1
5987
+ add r1, r3, r1, lsl #2
56365988 bl ftl_memcpy
5637
- b .L844
5638
-.L846:
5989
+ b .L776
5990
+.L778:
56395991 mvn r0, #0
5640
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
5641
-.L862:
5992
+ ldmfd sp, {r3, r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
5993
+.L793:
56425994 .align 2
5643
-.L861:
5995
+.L792:
56445996 .word .LANCHOR0
56455997 .word .LANCHOR0+298
56465998 .word .LANCHOR0+3452
56475999 .word .LANCHOR0+352
56486000 .word .LANCHOR1+245
56496001 .word .LC8
5650
- .word .LANCHOR0+376
5651
- .word .LANCHOR0+3388
5652
- .fnend
6002
+ .word .LANCHOR0+380
56536003 .size FtlLoadBbt, .-FtlLoadBbt
6004
+ .section .rodata.str1.1
6005
+.LC95:
6006
+ .ascii "prog read error: = %x\012\000"
6007
+.LC96:
6008
+ .ascii "prog read REFRESH: = %x\012\000"
6009
+.LC97:
6010
+ .ascii "prog read s error: = %x %x %x %x %x\012\000"
6011
+.LC98:
6012
+ .ascii "prog read d error: = %x %x %x %x %x\012\000"
6013
+ .text
56546014 .align 2
56556015 .global FlashProgPages
56566016 .syntax unified
....@@ -5658,231 +6018,233 @@
56586018 .fpu softvfp
56596019 .type FlashProgPages, %function
56606020 FlashProgPages:
5661
- .fnstart
56626021 @ args = 0, pretend = 0, frame = 48
5663
- @ frame_needed = 0, uses_anonymous_args = 0
5664
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5665
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5666
- .pad #60
6022
+ @ frame_needed = 1, uses_anonymous_args = 0
6023
+ mov ip, sp
6024
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
6025
+ sub fp, ip, #4
56676026 sub sp, sp, #60
5668
- ldr r6, .L904
6027
+ push {lr}
6028
+ bl __gnu_mcount_nc
6029
+ mov r3, sp
6030
+ ldr r6, .L833
6031
+ bic r3, r3, #8128
6032
+ mov r7, r0
6033
+ bic r3, r3, #63
56696034 mov r10, r1
56706035 mov r4, r0
56716036 mov r5, r0
5672
- ldr r3, .L904+4
5673
- mov r8, #0
5674
- ldrh fp, [r6, #12]
5675
- mov r9, r6
5676
- str r2, [sp, #16]
5677
- ldr r2, [r3]
5678
- str r3, [sp, #20]
5679
- str r2, [sp, #52]
5680
- lsl r2, fp, #3
5681
- str r2, [sp, #12]
5682
-.L864:
5683
- cmp r8, r10
5684
- bne .L878
5685
- ldr r7, .L904+8
5686
- mov r5, #0
5687
- ldr r9, .L904+12
5688
- ldr r10, .L904+16
5689
-.L879:
5690
- cmp r8, r5
5691
- beq .L872
6037
+ str r2, [fp, #-88]
6038
+ mov r9, #0
6039
+ ldr r3, [r3, #24]
6040
+ str r3, [fp, #-48]
6041
+ ldrh r3, [r6, #12]
6042
+ str r3, [fp, #-80]
6043
+ lsl r3, r3, #3
6044
+ str r3, [fp, #-84]
6045
+.L795:
6046
+ cmp r9, r10
6047
+ bne .L808
6048
+ mov r0, #20
6049
+ ldr r5, .L833+4
6050
+ ldr r8, .L833+8
6051
+ mla r7, r0, r9, r7
6052
+.L809:
6053
+ cmp r7, r4
6054
+ beq .L802
56926055 ldr r2, [r6, #3320]
56936056 mov r3, #0
6057
+ sub r0, fp, #68
56946058 mov r1, #1
5695
- add r0, sp, #32
56966059 str r3, [r2]
56976060 ldr r2, [r6, #3328]
56986061 str r3, [r2]
6062
+ ldr r2, [fp, #-88]
56996063 ldr r3, [r4, #4]
5700
- ldr r2, [sp, #16]
5701
- str r3, [sp, #36]
6064
+ str r3, [fp, #-64]
57026065 ldr r3, [r6, #3320]
5703
- str r3, [sp, #40]
6066
+ str r3, [fp, #-60]
57046067 ldr r3, [r6, #3328]
5705
- str r3, [sp, #44]
6068
+ str r3, [fp, #-56]
57066069 bl FlashReadPages
5707
- ldr fp, [sp, #32]
5708
- cmn fp, #1
5709
- bne .L880
6070
+ ldr r9, [fp, #-68]
6071
+ cmn r9, #1
6072
+ bne .L810
57106073 ldr r1, [r4, #4]
5711
- mov r0, r7
6074
+ mov r0, r5
57126075 bl sftl_printk
5713
- str fp, [r4]
5714
-.L880:
5715
- ldr fp, [sp, #32]
5716
- cmp fp, #256
5717
- bne .L881
6076
+ str r9, [r4]
6077
+.L810:
6078
+ ldr r9, [fp, #-68]
6079
+ cmp r9, #256
6080
+ bne .L811
57186081 ldr r1, [r4, #4]
5719
- mov r0, r9
6082
+ mov r0, r8
57206083 bl sftl_printk
5721
- str fp, [r4]
5722
-.L881:
6084
+ str r9, [r4]
6085
+.L811:
57236086 ldr r3, [r4, #12]
57246087 cmp r3, #0
5725
- beq .L882
5726
- ldr r1, [r6, #3328]
6088
+ beq .L812
6089
+ ldr r1, .L833
57276090 ldr r2, [r3]
6091
+ ldr r1, [r1, #3328]
57286092 ldr r0, [r1]
57296093 cmp r2, r0
5730
- bne .L883
6094
+ bne .L813
57316095 ldr lr, [r3, #8]
57326096 ldr ip, [r1, #8]
57336097 cmp lr, ip
5734
- beq .L882
5735
-.L883:
6098
+ beq .L812
6099
+.L813:
57366100 ldr r1, [r1, #4]
5737
- stm sp, {r0, r1}
5738
- mov r0, r10
6101
+ strd r0, [sp]
6102
+ ldr r0, .L833+12
57396103 ldr r3, [r3, #4]
57406104 ldr r1, [r4, #4]
57416105 bl sftl_printk
57426106 mvn r3, #0
57436107 str r3, [r4]
5744
-.L882:
6108
+.L812:
57456109 ldr r3, [r4, #8]
57466110 cmp r3, #0
5747
- beq .L884
5748
- ldr r1, [r6, #3320]
6111
+ beq .L814
6112
+ ldr r1, .L833
57496113 ldr r2, [r3]
6114
+ ldr r1, [r1, #3320]
57506115 ldr r0, [r1]
57516116 cmp r2, r0
5752
- bne .L885
6117
+ bne .L815
57536118 ldr lr, [r3, #2048]
57546119 ldr ip, [r1, #2048]
57556120 cmp lr, ip
5756
- beq .L884
5757
-.L885:
6121
+ beq .L814
6122
+.L815:
57586123 ldr r1, [r1, #4]
5759
- stm sp, {r0, r1}
5760
- ldr r0, .L904+20
6124
+ strd r0, [sp]
6125
+ ldr r0, .L833+16
57616126 ldr r3, [r3, #4]
57626127 ldr r1, [r4, #4]
57636128 bl sftl_printk
57646129 mvn r3, #0
57656130 str r3, [r4]
5766
-.L884:
5767
- add r5, r5, #1
6131
+.L814:
57686132 add r4, r4, #20
5769
- b .L879
5770
-.L878:
6133
+ b .L809
6134
+.L808:
57716135 ldr r3, [r5, #8]
57726136 cmp r3, #0
5773
- beq .L865
6137
+ beq .L796
57746138 ldr r3, [r5, #12]
57756139 cmp r3, #0
5776
- bne .L866
5777
-.L865:
6140
+ bne .L797
6141
+.L796:
6142
+ ldr r1, .L833+20
57786143 mov r2, #148
5779
- ldr r1, .L904+24
5780
- ldr r0, .L904+28
6144
+ ldr r0, .L833+24
57816145 bl sftl_printk
5782
-.L866:
5783
- add r2, sp, #24
5784
- add r1, sp, #28
6146
+.L797:
6147
+ sub r2, fp, #76
6148
+ sub r1, fp, #72
57856149 mov r0, r5
57866150 bl l2p_addr_tran
5787
- ldr r7, [sp, #24]
5788
- cmp r7, #3
5789
- bls .L867
5790
-.L903:
6151
+ ldr r8, [fp, #-76]
6152
+ cmp r8, #3
6153
+ bls .L798
6154
+.L832:
57916155 mvn r3, #0
57926156 str r3, [r5]
5793
- b .L868
5794
-.L867:
5795
- cmp r7, #0
5796
- bne .L869
5797
- ldr r3, [sp, #28]
5798
- ldr r2, [sp, #12]
6157
+ b .L799
6158
+.L798:
6159
+ cmp r8, #0
6160
+ bne .L800
6161
+ ldr r3, [fp, #-72]
6162
+ ldr r2, [fp, #-84]
57996163 cmp r2, r3
5800
- bls .L869
5801
- ldr r5, .L904+24
5802
- ldr r6, .L904+32
5803
- ldr r8, .L904+36
5804
- b .L901
5805
-.L871:
6164
+ bls .L800
6165
+ ldr r6, .L833+20
6166
+ ldr r5, .L833+28
6167
+.L801:
6168
+ ldr r2, [r4, #4]
58066169 mvn r3, #0
5807
- ldr r2, [r4, #-16]
5808
- str r3, [r4, #-20]
5809
- mov r1, r5
5810
- mov r0, r6
5811
- add r7, r7, #1
6170
+ mov r1, r6
6171
+ str r3, [r4]
6172
+ mov r0, r5
6173
+ add r8, r8, #1
58126174 bl sftl_printk
6175
+ ldr r1, [r4, #8]
6176
+ ldr r0, .L833+32
58136177 mov r3, #16
58146178 mov r2, #4
5815
- ldr r1, [r4, #-12]
5816
- mov r0, r8
6179
+ add r4, r4, #20
58176180 bl rknand_print_hex
58186181 mov r3, #4
58196182 ldr r1, [r4, #-8]
58206183 mov r2, r3
5821
- ldr r0, .L904+40
6184
+ ldr r0, .L833+36
58226185 bl rknand_print_hex
5823
-.L901:
5824
- cmp r7, r10
5825
- add r4, r4, #20
5826
- bne .L871
6186
+ cmp r10, r8
6187
+ bne .L801
58276188 bl dump_stack
5828
-.L872:
5829
- ldr r3, [sp, #20]
5830
- mov r0, #0
5831
- ldr r2, [sp, #52]
5832
- ldr r3, [r3]
6189
+.L802:
6190
+ mov r3, sp
6191
+ ldr r2, [fp, #-48]
6192
+ bic r3, r3, #8128
6193
+ bic r3, r3, #63
6194
+ ldr r3, [r3, #24]
58336195 cmp r2, r3
5834
- beq .L887
6196
+ beq .L817
58356197 bl __stack_chk_fail
5836
-.L869:
6198
+.L800:
58376199 ldr r1, [r5, #8]
58386200 tst r1, #63
5839
- moveq r7, r1
5840
- beq .L873
5841
- ldr r7, [r9, #3320]
5842
- cmp r1, r7
5843
- beq .L873
5844
- ldr r3, .L904+44
5845
- mov r0, r7
6201
+ moveq r8, r1
6202
+ beq .L803
6203
+ ldr r8, [r6, #3320]
6204
+ cmp r8, r1
6205
+ beq .L803
6206
+ ldr r3, .L833+40
6207
+ mov r0, r8
58466208 ldrh r2, [r3]
58476209 lsl r2, r2, #9
58486210 bl ftl_memcpy
5849
-.L873:
6211
+.L803:
58506212 ldr r3, [r5, #12]
5851
- mov r2, r7
5852
- ldr r1, [sp, #28]
5853
- ldrb r0, [sp, #24] @ zero_extendqisi2
5854
- ldr ip, [r9, #3252]
6213
+ mov r2, r8
6214
+ ldr r1, [fp, #-72]
6215
+ ldrb r0, [fp, #-76] @ zero_extendqisi2
6216
+ ldr ip, [r6, #3252]
58556217 blx ip
58566218 cmp r0, #0
5857
- mvnne r3, #0
58586219 streq r0, [r5]
6220
+ mvnne r3, #0
58596221 strne r3, [r5]
5860
- ldrh r3, [r9, #14]
6222
+ ldrh r3, [r6, #14]
58616223 cmp r3, #4
5862
- bne .L868
6224
+ bne .L799
6225
+ ldr r0, [fp, #-80]
6226
+ add r2, r8, #2048
58636227 ldr r3, [r5, #12]
5864
- add r2, r7, #2048
5865
- ldr r1, [sp, #28]
5866
- ldrb r0, [sp, #24] @ zero_extendqisi2
6228
+ ldr r1, [fp, #-72]
6229
+ ldr ip, [r6, #3252]
58676230 add r3, r3, #8
5868
- ldr ip, [r9, #3252]
5869
- add r1, fp, r1
6231
+ add r1, r0, r1
6232
+ ldrb r0, [fp, #-76] @ zero_extendqisi2
58706233 blx ip
58716234 cmp r0, #0
5872
- bne .L903
5873
-.L868:
5874
- add r8, r8, #1
6235
+ bne .L832
6236
+.L799:
6237
+ add r9, r9, #1
58756238 add r5, r5, #20
5876
- b .L864
5877
-.L887:
5878
- add sp, sp, #60
5879
- @ sp needed
5880
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5881
-.L905:
6239
+ b .L795
6240
+.L817:
6241
+ mov r0, #0
6242
+ sub sp, fp, #40
6243
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
6244
+.L834:
58826245 .align 2
5883
-.L904:
6246
+.L833:
58846247 .word .LANCHOR0
5885
- .word __stack_chk_guard
58866248 .word .LC95
58876249 .word .LC96
58886250 .word .LC97
....@@ -5893,7 +6255,6 @@
58936255 .word .LC87
58946256 .word .LC88
58956257 .word .LANCHOR0+258
5896
- .fnend
58976258 .size FlashProgPages, .-FlashProgPages
58986259 .align 2
58996260 .global FtlLowFormatEraseBlock
....@@ -5902,236 +6263,234 @@
59026263 .fpu softvfp
59036264 .type FtlLowFormatEraseBlock, %function
59046265 FtlLowFormatEraseBlock:
5905
- .fnstart
59066266 @ args = 0, pretend = 0, frame = 16
5907
- @ frame_needed = 0, uses_anonymous_args = 0
5908
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5909
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
5910
- mov r10, #0
5911
- ldr r4, .L949
5912
- mov r6, r1
5913
- mov r7, r10
5914
- mov r5, r10
5915
- mov r9, #20
5916
- .pad #20
6267
+ @ frame_needed = 1, uses_anonymous_args = 0
6268
+ mov ip, sp
6269
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
6270
+ sub fp, ip, #4
59176271 sub sp, sp, #20
5918
- add fp, r4, #312
5919
- str r0, [sp, #4]
5920
- str r0, [r4, #3284]
5921
-.L907:
5922
- ldrh r1, [r4, #232]
5923
- uxth r3, r10
5924
- cmp r1, r3
5925
- bhi .L911
5926
- cmp r7, #0
5927
- beq .L906
5928
- mov r8, #0
5929
- mov r9, #20
5930
- mov r2, r7
5931
- mov r1, #0
5932
- ldr r0, [r4, #3268]
5933
- bl FlashEraseBlocks
5934
-.L914:
5935
- uxth r3, r8
5936
- cmp r7, r3
5937
- bhi .L916
5938
-.L917:
5939
- cmp r6, #0
5940
- mov r8, #0
5941
- ldrne r3, .L949+4
5942
- mov fp, #20
5943
- moveq r3, #2
5944
- streq r6, [sp, #8]
5945
- streq r3, [sp, #12]
5946
- ldrhne r3, [r3]
5947
- strne r3, [sp, #12]
5948
- movne r3, #1
5949
- strne r3, [sp, #8]
5950
-.L926:
5951
- mov r10, #0
5952
- mov r7, r10
5953
-.L918:
5954
- ldrh r1, [r4, #232]
5955
- uxth r3, r10
5956
- cmp r1, r3
5957
- bhi .L921
5958
- cmp r7, #0
5959
- beq .L906
6272
+ push {lr}
6273
+ bl __gnu_mcount_nc
6274
+ ldr r4, .L877
59606275 mov r9, #0
5961
- mov r3, #1
5962
- ldr r2, [sp, #8]
5963
- mov r1, r7
5964
- ldr r0, [r4, #3268]
5965
- bl FlashProgPages
5966
-.L923:
5967
- uxth r3, r9
5968
- cmp r7, r3
5969
- bhi .L925
5970
- add r8, r8, #1
5971
- ldr r2, [sp, #12]
5972
- uxth r3, r8
5973
- cmp r2, r3
5974
- bhi .L926
5975
- mov r8, #0
5976
- mov r9, #20
5977
-.L927:
5978
- uxth r3, r8
5979
- cmp r7, r3
5980
- bhi .L929
5981
- ldr r3, [sp, #4]
5982
- adds r6, r6, #0
5983
- movne r6, #1
5984
- cmp r3, #63
5985
- orrls r6, r6, #1
6276
+ mov r6, r9
6277
+ mov r5, r9
6278
+ add r10, r4, #312
6279
+ strd r0, [fp, #-52]
6280
+ mov r8, #20
6281
+ str r0, [r4, #3284]
6282
+.L836:
6283
+ ldrh r1, [r4, #232]
6284
+ uxth r2, r9
6285
+ cmp r1, r2
6286
+ bhi .L840
59866287 cmp r6, #0
5987
- beq .L906
5988
- mov r2, r7
5989
- ldr r1, [sp, #8]
6288
+ beq .L835
6289
+ mov r7, #0
6290
+ mov r8, #20
59906291 ldr r0, [r4, #3268]
6292
+ mov r2, r6
6293
+ mov r1, #0
59916294 bl FlashEraseBlocks
5992
-.L906:
5993
- mov r0, r5
5994
- add sp, sp, #20
5995
- @ sp needed
5996
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
5997
-.L911:
5998
- uxth r3, r10
5999
- ldr r0, [r4, #3268]
6000
- mov r2, #0
6001
- mul r1, r9, r3
6002
- add r3, r4, r3
6003
- str r2, [r0, r1]
6004
- ldr r1, [sp, #4]
6005
- ldrb r0, [r3, #260] @ zero_extendqisi2
6006
- bl V2P_block
6007
- cmp r6, #0
6008
- mov r8, r0
6009
- beq .L908
6010
- bl IsBlkInVendorPart
6011
- cmp r0, #0
6012
- bne .L909
6013
-.L908:
6014
- mov r0, r8
6015
- bl FtlBbmIsBadBlock
6016
- cmp r0, #0
6017
- addne r5, r5, #1
6018
- uxthne r5, r5
6019
- bne .L909
6020
- ldr r1, [r4, #3268]
6021
- lsl r8, r8, #10
6022
- ldr r3, [r4, #3316]
6023
- mla r1, r9, r7, r1
6024
- str r3, [r1, #8]
6025
- ldrh r3, [fp]
6026
- str r8, [r1, #4]
6027
- mul r3, r7, r3
6028
- add r7, r7, #1
6029
- uxth r7, r7
6030
- add r0, r3, #3
6031
- cmp r3, #0
6032
- movlt r3, r0
6033
- ldr r0, [r4, #3336]
6034
- bic r3, r3, #3
6035
- add r3, r0, r3
6036
- str r3, [r1, #12]
6037
-.L909:
6038
- add r10, r10, #1
6039
- b .L907
6040
-.L916:
6041
- mul r3, r9, r8
6295
+.L844:
6296
+ mul r3, r8, r7
60426297 ldr r2, [r4, #3268]
60436298 add r1, r2, r3
60446299 ldr r3, [r2, r3]
60456300 cmn r3, #1
6046
- bne .L915
6301
+ bne .L843
60476302 ldr r0, [r1, #4]
60486303 add r5, r5, #1
60496304 uxth r5, r5
60506305 ubfx r0, r0, #10, #16
60516306 bl FtlBbmMapBadBlock
6052
-.L915:
6053
- add r8, r8, #1
6054
- b .L914
6055
-.L921:
6056
- uxth r3, r10
6057
- ldr r0, [r4, #3268]
6058
- mov r2, #0
6059
- mul r1, fp, r3
6060
- add r3, r4, r3
6061
- str r2, [r0, r1]
6062
- ldr r1, [sp, #4]
6063
- ldrb r0, [r3, #260] @ zero_extendqisi2
6064
- bl V2P_block
6065
- cmp r6, #0
6066
- mov r9, r0
6067
- beq .L919
6068
- bl IsBlkInVendorPart
6069
- cmp r0, #0
6070
- bne .L920
6071
-.L919:
6072
- mov r0, r9
6073
- bl FtlBbmIsBadBlock
6074
- cmp r0, #0
6075
- bne .L920
6076
- ldr r1, [r4, #3268]
6077
- add r9, r8, r9, lsl #10
6078
- ldr r3, [r4, #3312]
6079
- mla r1, fp, r7, r1
6080
- str r3, [r1, #8]
6081
- ldr r3, .L949+8
6082
- str r9, [r1, #4]
6083
- ldrh r3, [r3]
6084
- mul r3, r7, r3
6307
+.L843:
60856308 add r7, r7, #1
6086
- uxth r7, r7
6087
- add r0, r3, #3
6309
+ uxth r3, r7
6310
+ cmp r6, r3
6311
+ bhi .L844
6312
+.L845:
6313
+ ldr r3, [fp, #-48]
6314
+ mov r9, #0
60886315 cmp r3, #0
6089
- movlt r3, r0
6090
- ldr r0, [r4, #3316]
6091
- bic r3, r3, #3
6092
- add r3, r0, r3
6093
- str r3, [r1, #12]
6094
-.L920:
6095
- add r10, r10, #1
6096
- b .L918
6097
-.L925:
6098
- mul r3, fp, r9
6316
+ moveq r3, #2
6317
+ movne r8, #1
6318
+ ldrne r3, .L877+4
6319
+ ldreq r8, [fp, #-48]
6320
+ streq r3, [fp, #-56]
6321
+ ldrhne r3, [r3]
6322
+ strne r3, [fp, #-56]
6323
+.L853:
6324
+ mov r10, #0
6325
+ mov r6, r10
6326
+.L846:
6327
+ ldrh r1, [r4, #232]
6328
+ uxth r2, r10
6329
+ cmp r1, r2
6330
+ bhi .L849
6331
+ cmp r6, #0
6332
+ beq .L835
6333
+ mov r7, #0
6334
+ mov r10, #20
6335
+ ldr r0, [r4, #3268]
6336
+ mov r2, r8
6337
+ mov r1, r6
6338
+ mov r3, #1
6339
+ bl FlashProgPages
6340
+.L852:
6341
+ mul r3, r10, r7
60996342 ldr r2, [r4, #3268]
61006343 add r1, r2, r3
61016344 ldr r3, [r2, r3]
61026345 cmp r3, #0
6103
- beq .L924
6346
+ beq .L851
61046347 ldr r0, [r1, #4]
61056348 add r5, r5, #1
61066349 uxth r5, r5
61076350 ubfx r0, r0, #10, #16
61086351 bl FtlBbmMapBadBlock
6109
-.L924:
6352
+.L851:
6353
+ add r7, r7, #1
6354
+ uxth r3, r7
6355
+ cmp r6, r3
6356
+ bhi .L852
61106357 add r9, r9, #1
6111
- b .L923
6112
-.L929:
6113
- cmp r6, #0
6114
- beq .L928
6115
- mul r3, r9, r8
6358
+ ldr r2, [fp, #-56]
6359
+ uxth r3, r9
6360
+ cmp r2, r3
6361
+ bhi .L853
6362
+ mov r7, #0
6363
+ mov r9, #20
6364
+.L855:
6365
+ ldr r3, [fp, #-48]
6366
+ cmp r3, #0
6367
+ beq .L854
6368
+ mul r3, r9, r7
61166369 ldr r2, [r4, #3268]
61176370 add r1, r2, r3
61186371 ldr r3, [r2, r3]
61196372 cmp r3, #0
6120
- bne .L928
6373
+ bne .L854
61216374 ldr r0, [r1, #4]
61226375 mov r1, #1
61236376 ubfx r0, r0, #10, #16
61246377 bl FtlFreeSysBlkQueueIn
6125
-.L928:
6126
- add r8, r8, #1
6127
- b .L927
6128
-.L950:
6378
+.L854:
6379
+ add r7, r7, #1
6380
+ uxth r3, r7
6381
+ cmp r6, r3
6382
+ bhi .L855
6383
+ ldr r3, [fp, #-48]
6384
+ subs r1, r3, #0
6385
+ ldr r3, [fp, #-52]
6386
+ movne r1, #1
6387
+ cmp r3, #63
6388
+ orrls r1, r1, #1
6389
+ cmp r1, #0
6390
+ beq .L835
6391
+ ldr r0, [r4, #3268]
6392
+ mov r2, r6
6393
+ mov r1, r8
6394
+ bl FlashEraseBlocks
6395
+.L835:
6396
+ mov r0, r5
6397
+ sub sp, fp, #40
6398
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
6399
+.L840:
6400
+ uxth r2, r9
6401
+ ldr r0, [r4, #3268]
6402
+ mov r3, #0
6403
+ mul r1, r8, r2
6404
+ add r2, r4, r2
6405
+ str r3, [r0, r1]
6406
+ ldr r1, [fp, #-52]
6407
+ ldrb r0, [r2, #260] @ zero_extendqisi2
6408
+ bl V2P_block
6409
+ ldr r3, [fp, #-48]
6410
+ mov r7, r0
6411
+ cmp r3, #0
6412
+ beq .L837
6413
+ bl IsBlkInVendorPart
6414
+ cmp r0, #0
6415
+ bne .L838
6416
+.L837:
6417
+ mov r0, r7
6418
+ bl FtlBbmIsBadBlock
6419
+ cmp r0, #0
6420
+ addne r5, r5, #1
6421
+ uxthne r5, r5
6422
+ bne .L838
6423
+ ldr r2, [r4, #3268]
6424
+ lsl r7, r7, #10
6425
+ ldrh r0, [r10]
6426
+ ldr r1, [r4, #3316]
6427
+ mla r2, r8, r6, r2
6428
+ mul r0, r6, r0
6429
+ add r6, r6, #1
6430
+ cmp r0, #0
6431
+ uxth r6, r6
6432
+ str r1, [r2, #8]
6433
+ add r1, r0, #3
6434
+ movge r1, r0
6435
+ ldr r0, [r4, #3336]
6436
+ bic r1, r1, #3
6437
+ str r7, [r2, #4]
6438
+ add r1, r0, r1
6439
+ str r1, [r2, #12]
6440
+.L838:
6441
+ add r9, r9, #1
6442
+ b .L836
6443
+.L849:
6444
+ uxth r2, r10
6445
+ mov r3, #20
6446
+ ldr r0, [r4, #3268]
6447
+ mul r1, r3, r2
6448
+ add r2, r4, r2
6449
+ mov r3, #0
6450
+ str r3, [r0, r1]
6451
+ ldr r1, [fp, #-52]
6452
+ ldrb r0, [r2, #260] @ zero_extendqisi2
6453
+ bl V2P_block
6454
+ ldr r3, [fp, #-48]
6455
+ mov r7, r0
6456
+ cmp r3, #0
6457
+ beq .L847
6458
+ bl IsBlkInVendorPart
6459
+ cmp r0, #0
6460
+ bne .L848
6461
+.L847:
6462
+ mov r0, r7
6463
+ bl FtlBbmIsBadBlock
6464
+ cmp r0, #0
6465
+ bne .L848
6466
+ ldr r2, [r4, #3268]
6467
+ mov r3, #20
6468
+ ldr r1, [r4, #3312]
6469
+ add r7, r9, r7, lsl #10
6470
+ mla r2, r3, r6, r2
6471
+ ldr r3, .L877+8
6472
+ ldrh r0, [r3]
6473
+ str r1, [r2, #8]
6474
+ str r7, [r2, #4]
6475
+ mul r0, r6, r0
6476
+ add r6, r6, #1
6477
+ cmp r0, #0
6478
+ add r1, r0, #3
6479
+ movge r1, r0
6480
+ ldr r0, [r4, #3316]
6481
+ bic r1, r1, #3
6482
+ uxth r6, r6
6483
+ add r1, r0, r1
6484
+ str r1, [r2, #12]
6485
+.L848:
6486
+ add r10, r10, #1
6487
+ b .L846
6488
+.L878:
61296489 .align 2
6130
-.L949:
6490
+.L877:
61316491 .word .LANCHOR0
61326492 .word .LANCHOR0+304
61336493 .word .LANCHOR0+312
6134
- .fnend
61356494 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
61366495 .align 2
61376496 .global FlashTestBlk
....@@ -6140,83 +6499,90 @@
61406499 .fpu softvfp
61416500 .type FlashTestBlk, %function
61426501 FlashTestBlk:
6143
- .fnstart
61446502 @ args = 0, pretend = 0, frame = 88
6145
- @ frame_needed = 0, uses_anonymous_args = 0
6146
- ldr r3, .L958
6503
+ @ frame_needed = 1, uses_anonymous_args = 0
6504
+ mov ip, sp
6505
+ push {r4, r5, r6, fp, ip, lr, pc}
6506
+ sub fp, ip, #4
6507
+ sub sp, sp, #92
6508
+ push {lr}
6509
+ bl __gnu_mcount_nc
6510
+ mov r3, sp
61476511 cmp r0, #11
6148
- push {r4, r5, r6, lr}
6149
- .save {r4, r5, r6, lr}
6150
- .pad #88
6151
- sub sp, sp, #88
6152
- movls r4, #0
6153
- mov r6, r3
6154
- ldr r2, [r3]
6155
- str r2, [sp, #84]
6156
- bls .L951
6157
- ldr r4, .L958+4
6158
- mov r5, r0
6512
+ bic r6, r3, #8128
6513
+ mov r4, r0
6514
+ bic r6, r6, #63
6515
+ movls r5, #0
6516
+ ldr r3, [r6, #24]
6517
+ str r3, [fp, #-32]
6518
+ bls .L879
6519
+ ldr r5, .L885
6520
+ sub r0, fp, #96
61596521 mov r2, #32
6160
- add r0, sp, #20
61616522 mov r1, #165
6162
- str r0, [sp, #12]
6163
- ldr r3, [r4, #3324]
6164
- lsl r5, r5, #10
6165
- str r3, [sp, #8]
6523
+ str r0, [fp, #-104]
6524
+ lsl r4, r4, #10
6525
+ ldr r3, [r5, #3324]
6526
+ str r3, [fp, #-108]
61666527 bl ftl_memset
6528
+ ldr r0, [r5, #3324]
61676529 mov r2, #8
61686530 mov r1, #90
6169
- ldr r0, [r4, #3324]
61706531 bl ftl_memset
61716532 mov r2, #1
6172
- mov r0, sp
6533
+ sub r0, fp, #116
61736534 mov r1, r2
6174
- str r5, [sp, #4]
6535
+ str r4, [fp, #-112]
61756536 bl FlashEraseBlocks
61766537 mov r3, #1
6177
- mov r0, sp
6538
+ sub r0, fp, #116
61786539 mov r2, r3
61796540 mov r1, r3
61806541 bl FlashProgPages
6181
- ldr r3, [sp]
6542
+ ldr r3, [fp, #-116]
61826543 cmp r3, #0
6183
- mvnne r4, #0
6184
- bne .L953
6185
- add r3, r5, #1
6186
- mov r0, sp
6187
- str r3, [sp, #4]
6544
+ mvnne r5, #0
6545
+ bne .L881
6546
+ add r3, r4, #1
6547
+ sub r0, fp, #116
6548
+ str r3, [fp, #-112]
61886549 mov r3, #1
61896550 mov r2, r3
61906551 mov r1, r3
61916552 bl FlashProgPages
6192
- ldr r4, [sp]
6193
- adds r4, r4, #0
6194
- movne r4, #1
6195
- rsb r4, r4, #0
6196
-.L953:
6553
+ ldr r5, [fp, #-116]
6554
+ subs r5, r5, #0
6555
+ movne r5, #1
6556
+ rsb r5, r5, #0
6557
+.L881:
6558
+ sub r0, fp, #116
61976559 mov r2, #1
61986560 mov r1, #0
6199
- mov r0, sp
6200
- str r5, [sp, #4]
6561
+ str r4, [fp, #-112]
62016562 bl FlashEraseBlocks
6202
-.L951:
6203
- ldr r2, [sp, #84]
6204
- mov r0, r4
6205
- ldr r3, [r6]
6563
+.L879:
6564
+ ldr r2, [fp, #-32]
6565
+ ldr r3, [r6, #24]
62066566 cmp r2, r3
6207
- beq .L954
6567
+ beq .L882
62086568 bl __stack_chk_fail
6209
-.L954:
6210
- add sp, sp, #88
6211
- @ sp needed
6212
- pop {r4, r5, r6, pc}
6213
-.L959:
6569
+.L882:
6570
+ mov r0, r5
6571
+ sub sp, fp, #24
6572
+ ldmfd sp, {r4, r5, r6, fp, sp, pc}
6573
+.L886:
62146574 .align 2
6215
-.L958:
6216
- .word __stack_chk_guard
6575
+.L885:
62176576 .word .LANCHOR0
6218
- .fnend
62196577 .size FlashTestBlk, .-FlashTestBlk
6578
+ .section .rodata.str1.1
6579
+.LC99:
6580
+ .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
6581
+.LC100:
6582
+ .ascii "FtlBbmTblFlush error:%x\012\000"
6583
+.LC101:
6584
+ .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
6585
+ .text
62206586 .align 2
62216587 .global FtlBbmTblFlush
62226588 .syntax unified
....@@ -6224,150 +6590,143 @@
62246590 .fpu softvfp
62256591 .type FtlBbmTblFlush, %function
62266592 FtlBbmTblFlush:
6227
- .fnstart
62286593 @ args = 0, pretend = 0, frame = 0
6229
- @ frame_needed = 0, uses_anonymous_args = 0
6230
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
6231
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
6232
- .pad #12
6594
+ @ frame_needed = 1, uses_anonymous_args = 0
6595
+ mov ip, sp
6596
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
6597
+ sub fp, ip, #4
6598
+ sub sp, sp, #12
6599
+ push {lr}
6600
+ bl __gnu_mcount_nc
6601
+ ldr r4, .L895
62336602 mov r5, #0
6234
- ldr r4, .L973
62356603 mov r1, #0
6236
- ldr r7, .L973+4
6604
+ add r6, r4, #380
6605
+ add r7, r6, #3008
62376606 ldr r3, [r4, #3332]
6238
- add r6, r4, #376
6239
- ldr r0, [r4, #3300]
62406607 str r3, [r4, #3464]
62416608 movw r3, #310
6609
+ ldr r0, [r4, #3300]
62426610 ldrh r2, [r4, r3]
62436611 str r0, [r4, #3460]
62446612 bl ftl_memset
6245
-.L961:
6613
+.L888:
62466614 ldrh r3, [r4, #254]
6247
- cmp r5, r3
6248
- blt .L962
6249
- ldr r7, [r4, #3464]
6615
+ cmp r3, r5
6616
+ bgt .L889
6617
+ ldr r6, [r4, #3464]
62506618 mov r2, #16
6619
+ ldr r5, .L895+4
62516620 mov r1, #255
6252
- ldr r6, .L973+8
6253
- ldr r10, .L973+12
6254
- mov r5, #0
6255
- mov r0, r7
6256
- mov r8, r5
6621
+ mov r0, r6
6622
+ mov r7, #0
62576623 bl ftl_memset
6258
- ldr r3, .L973+16
6259
- sub r9, r6, #48
6260
- strh r3, [r7] @ movhi
6624
+ ldr r3, .L895+8
6625
+ strh r3, [r6] @ movhi
6626
+ mov r9, r5
6627
+ mov r8, r7
62616628 ldr r3, [r4, #360]
6262
- str r3, [r7, #4]
6263
- ldrh r3, [r6]
6264
- strh r3, [r7, #2] @ movhi
6265
- ldrh r3, [r6, #4]
6266
- strh r3, [r7, #8] @ movhi
6267
- ldrh r3, [r6, #6]
6268
- strh r3, [r7, #10] @ movhi
6629
+ str r3, [r6, #4]
6630
+ ldrh r3, [r9], #-48
6631
+ strh r3, [r6, #2] @ movhi
6632
+ ldr r3, [r4, #356]
6633
+ str r3, [r6, #8]
62696634 ldr r3, [r4, #228]
6270
- strh r3, [r7, #12] @ movhi
6635
+ strh r3, [r6, #12] @ movhi
62716636 ldr r3, [r4, #2604]
6272
- strh r3, [r7, #14] @ movhi
6273
-.L963:
6637
+ strh r3, [r6, #14] @ movhi
6638
+.L890:
62746639 ldr r3, [r4, #3300]
6275
- mov fp, #0
6276
- ldrh r2, [r6, #2]
6277
- ldrh r1, [r6]
6640
+ mov r10, #0
6641
+ ldrh r2, [r5, #2]
6642
+ ldrh r1, [r5]
62786643 str r3, [r4, #3460]
62796644 ldr r3, [r4, #3332]
6280
- str fp, [r4, #3452]
62816645 str r3, [r4, #3464]
62826646 orr r3, r2, r1, lsl #10
6283
- ldrh r0, [r7, #10]
62846647 str r3, [r4, #3456]
6285
- ldrh r3, [r6, #4]
6286
- str r0, [sp]
6287
- mov r0, r10
6648
+ ldrh r3, [r6, #10]
6649
+ str r3, [sp]
6650
+ ldr r0, .L895+12
6651
+ ldrh r3, [r5, #4]
6652
+ str r10, [r4, #3452]
62886653 bl sftl_printk
62896654 ldrh r3, [r9]
6290
- ldrh r2, [r6, #2]
6655
+ ldrh r2, [r5, #2]
62916656 sub r3, r3, #1
62926657 cmp r2, r3
6293
- blt .L964
6658
+ blt .L891
62946659 ldr r3, [r4, #360]
6295
- ldrh r2, [r6]
62966660 ldr r0, [r4, #3268]
62976661 add r3, r3, #1
6298
- strh fp, [r6, #2] @ movhi
62996662 str r3, [r4, #360]
6300
- str r3, [r7, #4]
6301
- ldrh r3, [r6, #4]
6302
- strh r2, [r7, #8] @ movhi
6303
- strh r2, [r6, #4] @ movhi
6663
+ str r3, [r6, #4]
6664
+ ldrh r2, [r5]
6665
+ ldrh r3, [r5, #4]
6666
+ strh r2, [r6, #8] @ movhi
6667
+ strh r2, [r5, #4] @ movhi
63046668 mov r2, #1
6305
- strh r3, [r6] @ movhi
6669
+ strh r3, [r5] @ movhi
63066670 mov r1, r2
63076671 lsl r3, r3, #10
63086672 str r3, [r4, #3456]
63096673 str r3, [r0, #4]
6674
+ strh r10, [r5, #2] @ movhi
63106675 bl FlashEraseBlocks
6311
-.L964:
6676
+.L891:
63126677 mov r3, #1
6313
- ldr r0, .L973+20
6678
+ ldr r0, .L895+16
63146679 mov r2, r3
63156680 mov r1, r3
63166681 bl FlashProgPages
6317
- ldrh r3, [r6, #2]
6682
+ ldrh r3, [r5, #2]
6683
+ ldr r0, [r4, #3452]
63186684 add r3, r3, #1
6319
- strh r3, [r6, #2] @ movhi
6320
- ldr r3, [r4, #3452]
6321
- cmn r3, #1
6322
- bne .L965
6323
- add r5, r5, #1
6685
+ strh r3, [r5, #2] @ movhi
6686
+ cmn r0, #1
6687
+ bne .L892
6688
+ add r7, r7, #1
63246689 ldr r1, [r4, #3456]
6325
- uxth r5, r5
6326
- ldr r0, .L973+24
6690
+ ldr r0, .L895+20
6691
+ uxth r7, r7
63276692 bl sftl_printk
6328
- cmp r5, #3
6329
- bls .L963
6330
- mov r2, r5
6693
+ cmp r7, #3
6694
+ bls .L890
63316695 ldr r1, [r4, #3456]
6332
- ldr r0, .L973+28
6696
+ mov r2, r7
6697
+ ldr r0, .L895+24
63336698 bl sftl_printk
6334
-.L967:
6335
- b .L967
6336
-.L962:
6699
+.L894:
6700
+ b .L894
6701
+.L889:
63376702 ldrh r2, [r7]
63386703 ldr r3, [r4, #3460]
6339
- ldr r1, [r6, #4]!
6340
- mul r0, r2, r5
6704
+ ldr r1, [r6], #4
6705
+ mul r0, r5, r2
63416706 lsl r2, r2, #2
63426707 add r5, r5, #1
63436708 add r0, r3, r0, lsl #2
63446709 bl ftl_memcpy
6345
- b .L961
6346
-.L968:
6347
- mov r8, #1
6348
- b .L963
6349
-.L965:
6710
+ b .L888
6711
+.L892:
63506712 add r8, r8, #1
6351
- cmp r8, #1
6352
- ble .L968
6353
- cmp r3, #256
6354
- beq .L963
6355
- mov r0, #0
6356
- add sp, sp, #12
6357
- @ sp needed
6358
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
6359
-.L974:
6713
+ cmp r0, #256
6714
+ cmpne r8, #1
6715
+ movle r0, #1
6716
+ movgt r0, #0
6717
+ ble .L890
6718
+ sub sp, fp, #40
6719
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
6720
+.L896:
63606721 .align 2
6361
-.L973:
6722
+.L895:
63626723 .word .LANCHOR0
6363
- .word .LANCHOR0+3388
63646724 .word .LANCHOR0+352
6365
- .word .LC99
63666725 .word -3887
6726
+ .word .LC99
63676727 .word .LANCHOR0+3452
63686728 .word .LC100
63696729 .word .LC101
6370
- .fnend
63716730 .size FtlBbmTblFlush, .-FtlBbmTblFlush
63726731 .align 2
63736732 .global allocate_data_superblock
....@@ -6376,246 +6735,250 @@
63766735 .fpu softvfp
63776736 .type allocate_data_superblock, %function
63786737 allocate_data_superblock:
6379
- .fnstart
6380
- @ args = 0, pretend = 0, frame = 16
6381
- @ frame_needed = 0, uses_anonymous_args = 0
6382
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
6383
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
6738
+ @ args = 0, pretend = 0, frame = 8
6739
+ @ frame_needed = 1, uses_anonymous_args = 0
6740
+ mov ip, sp
6741
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
6742
+ sub fp, ip, #4
6743
+ sub sp, sp, #12
6744
+ push {lr}
6745
+ bl __gnu_mcount_nc
6746
+ ldr r4, .L929
63846747 mov r5, r0
6385
- ldr r4, .L1012
6386
- .pad #20
6387
- sub sp, sp, #20
6388
- add fp, r4, #2528
6389
-.L976:
6390
- ldr r2, .L1012+4
6748
+.L898:
6749
+ ldr r2, .L929+4
63916750 ldrh r3, [r4, #224]
63926751 ldrh r2, [r2]
63936752 add r3, r3, r2
63946753 ldrh r2, [r4, #240]
63956754 cmp r3, r2
6396
- ble .L977
6755
+ ble .L899
6756
+ ldr r1, .L929+8
63976757 movw r2, #2667
6398
- ldr r1, .L1012+8
6399
- ldr r0, .L1012+12
6758
+ ldr r0, .L929+12
64006759 bl sftl_printk
6401
-.L977:
6402
- ldr r3, .L1012+16
6760
+.L899:
6761
+ ldr r3, .L929+16
64036762 cmp r5, r3
64046763 movne r1, #0
6405
- bne .L978
6764
+ bne .L900
64066765 ldrh r3, [r4, #224]
64076766 ldr r1, [r4, #3164]
64086767 mul r2, r1, r3
64096768 lsr r1, r3, #1
6410
- add r1, r1, #1
6769
+ movw r3, #65535
64116770 add r1, r1, r2, lsr #2
64126771 uxth r1, r1
6413
- cmp r1, #0
6414
- subne r1, r1, #1
6415
- uxthne r1, r1
6416
-.L978:
6417
- ldr r0, .L1012+20
6772
+ cmp r1, r3
6773
+ moveq r1, #0
6774
+.L900:
6775
+ ldr r0, .L929+20
64186776 bl List_pop_index_node
64196777 ldrh r3, [r4, #224]
64206778 mov r6, r0
64216779 uxth r8, r0
64226780 cmp r3, #0
6423
- bne .L979
6781
+ bne .L901
6782
+ ldr r1, .L929+8
64246783 movw r2, #2676
6425
- ldr r1, .L1012+8
6426
- ldr r0, .L1012+12
6784
+ ldr r0, .L929+12
64276785 bl sftl_printk
6428
-.L979:
6786
+.L901:
64296787 ldrh r3, [r4, #224]
64306788 sub r3, r3, #1
64316789 strh r3, [r4, #224] @ movhi
64326790 ldrh r3, [r4, #240]
64336791 cmp r3, r8
6434
- bls .L976
6792
+ bls .L898
64356793 uxth r6, r6
64366794 ldr r3, [r4, #72]
64376795 lsl r6, r6, #1
64386796 ldrh r7, [r3, r6]
64396797 cmp r7, #0
6440
- bne .L976
6441
- strh r8, [r5] @ movhi
6798
+ bne .L898
64426799 mov r0, r5
6800
+ strh r8, [r5] @ movhi
64436801 bl make_superblock
64446802 ldrb r3, [r5, #7] @ zero_extendqisi2
64456803 cmp r3, #0
6446
- bne .L981
6804
+ bne .L903
64476805 ldr r3, [r4, #72]
64486806 mvn r2, #0
64496807 mov r0, r8
64506808 strh r2, [r3, r6] @ movhi
64516809 bl INSERT_DATA_LIST
6452
- ldrh r2, [fp]
6810
+ ldr r2, .L929+4
64536811 ldrh r3, [r4, #224]
6812
+ ldrh r2, [r2]
64546813 add r3, r3, r2
64556814 ldrh r2, [r4, #240]
64566815 cmp r3, r2
6457
- ble .L976
6816
+ ble .L898
6817
+ ldr r1, .L929+8
64586818 movw r2, #2690
6459
- ldr r1, .L1012+8
6460
- ldr r0, .L1012+12
6819
+ ldr r0, .L929+12
64616820 bl sftl_printk
6462
- b .L976
6463
-.L981:
6464
- ldrh r2, [fp]
6821
+ b .L898
6822
+.L903:
6823
+ ldr r2, .L929+4
64656824 ldrh r3, [r4, #224]
6825
+ ldrh r2, [r2]
64666826 add r3, r3, r2
64676827 ldrh r2, [r4, #240]
64686828 cmp r3, r2
6469
- ble .L983
6829
+ ble .L905
6830
+ ldr r1, .L929+8
64706831 movw r2, #2693
6471
- ldr r1, .L1012+8
6472
- ldr r0, .L1012+12
6832
+ ldr r0, .L929+12
64736833 bl sftl_printk
6474
-.L983:
6475
- ldr r1, [r4, #3268]
6476
- mov r9, #20
6477
- ldrh r2, [r4, #232]
6834
+.L905:
6835
+ ldr r0, [r4, #3268]
64786836 add r10, r5, #16
6479
- mov r0, r10
6480
- mov ip, #0
6481
- mov r3, r1
6482
- mla r2, r9, r2, r1
6483
- str r2, [sp, #4]
6484
-.L984:
6485
- ldr r2, [sp, #4]
6486
- cmp r2, r3
6487
- bne .L986
6837
+ ldrh r3, [r4, #232]
6838
+ mov r9, r10
6839
+ str r3, [fp, #-48]
6840
+ mov r2, r0
6841
+ mov r3, #0
6842
+ mov ip, r3
6843
+.L906:
6844
+ ldr lr, [fp, #-48]
6845
+ uxth r1, r3
6846
+ cmp lr, r1
6847
+ bhi .L908
64886848 cmp r7, #0
6489
- bne .L987
6849
+ bne .L909
6850
+ ldr r1, .L929+8
64906851 mov r2, #2704
6491
- ldr r1, .L1012+8
6492
- ldr r0, .L1012+12
6852
+ ldr r0, .L929+12
64936853 bl sftl_printk
6494
-.L987:
6854
+.L909:
64956855 ldrh r3, [r4, #172]
64966856 cmp r3, r8
6497
- bne .L988
6857
+ bne .L910
6858
+ ldr r1, .L929+8
64986859 movw r2, #2706
6499
- ldr r1, .L1012+8
6500
- ldr r0, .L1012+12
6860
+ ldr r0, .L929+12
65016861 bl sftl_printk
6502
-.L988:
6503
- ldrb r3, [r5, #8] @ zero_extendqisi2
6862
+.L910:
65046863 ldr r1, [r4, #2536]
6505
- ldr r2, .L1012+24
6506
- cmp r3, #0
6864
+ ldrb r2, [r5, #8] @ zero_extendqisi2
65076865 ldrh r3, [r1, r6]
6508
- bne .L989
6866
+ cmp r2, #0
6867
+ ldr r2, .L929+24
6868
+ bne .L911
65096869 cmp r3, #0
6510
- ldrhne r0, [r2]
65116870 moveq r3, #2
6871
+ ldrhne r0, [r2]
65126872 addne r3, r3, r0
6873
+ uxthne r3, r3
65136874 strh r3, [r1, r6] @ movhi
65146875 ldr r3, [r4, #2596]
65156876 add r3, r3, #1
65166877 str r3, [r4, #2596]
6517
-.L992:
6878
+.L913:
65186879 ldr r3, [r4, #2536]
65196880 ldr r1, [r4, #2612]
65206881 ldrh r2, [r2]
65216882 ldrh r3, [r3, r6]
65226883 ldr r0, [r4, #2596]
65236884 cmp r3, r1
6524
- ldrh r1, [r4, #240]
65256885 strhi r3, [r4, #2612]
65266886 ldr r3, [r4, #2600]
6887
+ ldrh r1, [r4, #240]
65276888 mla r0, r0, r2, r3
65286889 bl __aeabi_uidiv
65296890 ldr r2, [r4, #3348]
6530
- ldr r1, [r4, #3268]
65316891 str r0, [r4, #2604]
6892
+ ldr r0, [r4, #3268]
65326893 ldr r3, [r2, #16]
6533
- ldr r0, .L1012+28
6894
+ ldr ip, .L929+28
65346895 add r3, r3, #1
65356896 str r3, [r2, #16]
6536
- mov r2, #20
6537
- mla r2, r2, r7, r1
6538
- add r3, r1, #4
6539
- add r2, r2, #24
6540
-.L994:
6897
+ add r3, r0, #4
6898
+ mov r2, #0
6899
+.L915:
6900
+ uxth r1, r2
65416901 add r3, r3, #20
6542
- cmp r2, r3
6543
- bne .L995
6902
+ cmp r7, r1
6903
+ bhi .L916
65446904 ldrb r1, [r5, #8] @ zero_extendqisi2
65456905 mov r2, r7
6546
- ldr r0, [r4, #3268]
6547
- mov r9, #0
65486906 bl FlashEraseBlocks
6907
+ mov r9, #0
65496908 mov r3, r9
65506909 mov r1, #20
6551
-.L996:
6910
+.L917:
65526911 uxth r2, r9
65536912 cmp r7, r2
6554
- bhi .L998
6913
+ bhi .L919
65556914 cmp r3, #0
6556
- ble .L999
6915
+ ble .L920
65576916 mov r0, r8
65586917 bl update_multiplier_value
65596918 bl FtlBbmTblFlush
6560
-.L999:
6919
+.L920:
65616920 ldrb r2, [r5, #7] @ zero_extendqisi2
65626921 cmp r2, #0
6563
- bne .L1000
6922
+ bne .L921
65646923 ldr r3, [r4, #72]
65656924 mvn r2, #0
65666925 strh r2, [r3, r6] @ movhi
6567
- b .L976
6568
-.L986:
6569
- str ip, [r3, #8]
6926
+ b .L898
6927
+.L908:
6928
+ str ip, [r2, #8]
65706929 movw lr, #65535
6571
- str ip, [r3, #12]
6572
- add r3, r3, #20
6573
- ldrh r2, [r0], #2
6574
- cmp r2, lr
6575
- mlane lr, r9, r7, r1
6576
- lslne r2, r2, #10
6577
- addne r7, r7, #1
6578
- uxthne r7, r7
6579
- strne r2, [lr, #4]
6580
- b .L984
6581
-.L989:
6930
+ str ip, [r2, #12]
6931
+ ldrh r1, [r9], #2
6932
+ cmp r1, lr
6933
+ beq .L907
6934
+ mov lr, #20
6935
+ lsl r1, r1, #10
6936
+ mla lr, lr, r7, r0
6937
+ add r7, r7, #1
6938
+ uxth r7, r7
6939
+ str r1, [lr, #4]
6940
+.L907:
6941
+ add r3, r3, #1
6942
+ add r2, r2, #20
6943
+ b .L906
6944
+.L911:
65826945 add r3, r3, #1
65836946 strh r3, [r1, r6] @ movhi
65846947 ldr r3, [r4, #2600]
65856948 add r3, r3, #1
65866949 str r3, [r4, #2600]
6587
- b .L992
6588
-.L995:
6950
+ b .L913
6951
+.L916:
65896952 ldr r1, [r3, #-20]
6590
- and r1, r1, r0
6953
+ add r2, r2, #1
6954
+ and r1, r1, ip
65916955 str r1, [r3, #-20]
6592
- b .L994
6593
-.L998:
6956
+ b .L915
6957
+.L919:
65946958 mul r2, r1, r9
65956959 ldr r0, [r4, #3268]
65966960 add ip, r0, r2
65976961 ldr r2, [r0, r2]
65986962 cmn r2, #1
6599
- bne .L997
6963
+ bne .L918
66006964 ldr r0, [ip, #4]
66016965 add r3, r3, #1
6602
- str r1, [sp, #12]
6603
- str r2, [sp, #8]
6966
+ str r2, [fp, #-52]
6967
+ str r3, [fp, #-48]
66046968 ubfx r0, r0, #10, #16
6605
- str r3, [sp, #4]
66066969 bl FtlBbmMapBadBlock
6607
- ldr r2, [sp, #8]
6608
- ldr r1, [sp, #12]
6609
- ldr r3, [sp, #4]
6970
+ ldr r2, [fp, #-52]
66106971 strh r2, [r10] @ movhi
6972
+ mov r1, #20
6973
+ ldr r3, [fp, #-48]
66116974 ldrb r2, [r5, #7] @ zero_extendqisi2
66126975 sub r2, r2, #1
66136976 strb r2, [r5, #7]
6614
-.L997:
6977
+.L918:
66156978 add r9, r9, #1
66166979 add r10, r10, #2
6617
- b .L996
6618
-.L1000:
6980
+ b .L917
6981
+.L921:
66196982 movw r3, #302
66206983 ldrh r3, [r4, r3]
66216984 strh r8, [r5] @ movhi
....@@ -6625,33 +6988,32 @@
66256988 strb r2, [r5, #6]
66266989 ldr r2, [r4, #2588]
66276990 uxth r3, r3
6628
- ldr r1, [r4, #72]
6629
- strh r3, [r5, #4] @ movhi
66306991 str r2, [r5, #12]
66316992 add r2, r2, #1
66326993 str r2, [r4, #2588]
6994
+ ldr r1, [r4, #72]
66336995 ldrh r2, [r5]
6996
+ strh r3, [r5, #4] @ movhi
66346997 lsl r2, r2, #1
66356998 strh r3, [r1, r2] @ movhi
66366999 ldrh r3, [r5, #4]
66377000 cmp r3, #0
6638
- beq .L1001
7001
+ beq .L922
66397002 ldrb r3, [r5, #7] @ zero_extendqisi2
66407003 cmp r3, #0
6641
- bne .L1002
6642
-.L1001:
7004
+ bne .L923
7005
+.L922:
7006
+ ldr r1, .L929+8
66437007 movw r2, #2759
6644
- ldr r1, .L1012+8
6645
- ldr r0, .L1012+12
7008
+ ldr r0, .L929+12
66467009 bl sftl_printk
6647
-.L1002:
7010
+.L923:
66487011 mov r0, #0
6649
- add sp, sp, #20
6650
- @ sp needed
6651
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
6652
-.L1013:
7012
+ sub sp, fp, #40
7013
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
7014
+.L930:
66537015 .align 2
6654
-.L1012:
7016
+.L929:
66557017 .word .LANCHOR0
66567018 .word .LANCHOR0+2528
66577019 .word .LANCHOR1+271
....@@ -6660,8 +7022,11 @@
66607022 .word .LANCHOR0+2532
66617023 .word .LANCHOR0+292
66627024 .word -1024
6663
- .fnend
66647025 .size allocate_data_superblock, .-allocate_data_superblock
7026
+ .section .rodata.str1.1
7027
+.LC102:
7028
+ .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
7029
+ .text
66657030 .align 2
66667031 .global FtlGcFreeBadSuperBlk
66677032 .syntax unified
....@@ -6669,80 +7034,90 @@
66697034 .fpu softvfp
66707035 .type FtlGcFreeBadSuperBlk, %function
66717036 FtlGcFreeBadSuperBlk:
6672
- .fnstart
6673
- @ args = 0, pretend = 0, frame = 8
6674
- @ frame_needed = 0, uses_anonymous_args = 0
6675
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
6676
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
6677
- .pad #12
7037
+ @ args = 0, pretend = 0, frame = 16
7038
+ @ frame_needed = 1, uses_anonymous_args = 0
7039
+ mov ip, sp
7040
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
7041
+ sub fp, ip, #4
7042
+ sub sp, sp, #20
7043
+ push {lr}
7044
+ bl __gnu_mcount_nc
7045
+ ldr r9, .L939
66787046 movw r3, #3206
6679
- ldr r6, .L1027
6680
- ldrh r3, [r6, r3]
7047
+ str r0, [fp, #-48]
7048
+ ldrh r3, [r9, r3]
66817049 cmp r3, #0
6682
- beq .L1015
6683
- ldr fp, .L1027+4
6684
- mov r7, #0
6685
- str r0, [sp, #4]
6686
- add r10, fp, #2
6687
-.L1016:
6688
- ldrh r2, [r6, #232]
6689
- uxth r3, r7
6690
- cmp r2, r3
6691
- bhi .L1022
6692
- bl FtlGcReFreshBadBlk
6693
-.L1015:
7050
+ bne .L938
7051
+.L933:
66947052 mov r0, #0
6695
- add sp, sp, #12
6696
- @ sp needed
6697
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
6698
-.L1022:
6699
- uxtah r3, r6, r7
6700
- ldr r1, [sp, #4]
7053
+ sub sp, fp, #40
7054
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
7055
+.L937:
7056
+ uxtah r3, r9, r7
7057
+ ldr r1, [fp, #-48]
67017058 mov r8, #0
67027059 ldrb r0, [r3, #260] @ zero_extendqisi2
67037060 bl V2P_block
6704
- mov r9, r0
6705
-.L1017:
6706
- ldrh r3, [fp]
6707
- uxth r4, r8
6708
- cmp r3, r4
6709
- addls r7, r7, #1
6710
- bls .L1016
6711
-.L1021:
6712
- uxth r5, r8
6713
- lsl r3, r5, #1
6714
- ldrh r3, [r10, r3]
6715
- cmp r3, r9
6716
- bne .L1018
6717
- mov r1, r9
6718
- ldr r0, .L1027+8
7061
+ mov r4, r0
7062
+.L934:
7063
+ ldr r3, .L939+4
7064
+ uxth r2, r8
7065
+ ldrh r1, [r3]
7066
+ cmp r1, r2
7067
+ bhi .L936
7068
+ add r7, r7, #1
7069
+.L932:
7070
+ ldrh r2, [r9, #232]
7071
+ uxth r3, r7
7072
+ cmp r2, r3
7073
+ bhi .L937
7074
+ bl FtlGcReFreshBadBlk
7075
+ b .L933
7076
+.L936:
7077
+ uxth r6, r8
7078
+ lsl r1, r6, #1
7079
+ add r3, r10, r6, lsl #1
7080
+ ldrh r1, [r10, r1]
7081
+ cmp r1, r4
7082
+ bne .L935
7083
+ mov r1, r4
7084
+ ldr r0, .L939+8
7085
+ str r3, [fp, #-56]
7086
+ str r2, [fp, #-52]
67197087 bl sftl_printk
6720
- mov r0, r9
7088
+ mov r0, r4
67217089 bl FtlBbmMapBadBlock
67227090 bl FtlBbmTblFlush
6723
- ldrh r1, [fp]
6724
- add r3, r10, r5, lsl #1
6725
-.L1019:
6726
- cmp r4, r1
6727
- bcc .L1020
6728
- sub r1, r1, #1
6729
- strh r1, [fp] @ movhi
6730
-.L1018:
7091
+ ldr r3, .L939+4
7092
+ ldr r2, [fp, #-52]
7093
+ add r1, r6, #1
7094
+ add r1, r10, r1, lsl #1
7095
+ ldrh r5, [r3]
7096
+ ldr r3, [fp, #-56]
7097
+ sub r0, r5, r2
7098
+ cmp r2, r5
7099
+ sub r5, r5, #1
7100
+ uxth r0, r0
7101
+ movhi r2, #0
7102
+ lslls r2, r0, #1
7103
+ mov r0, r3
7104
+ bl memmove
7105
+ ldr r3, .L939+4
7106
+ strh r5, [r3] @ movhi
7107
+.L935:
67317108 add r8, r8, #1
6732
- b .L1017
6733
-.L1020:
6734
- ldrh r0, [r3, #2]!
6735
- add r4, r4, #1
6736
- uxth r4, r4
6737
- strh r0, [r3, #-2] @ movhi
6738
- b .L1019
6739
-.L1028:
7109
+ b .L934
7110
+.L938:
7111
+ ldr r10, .L939+12
7112
+ mov r7, #0
7113
+ b .L932
7114
+.L940:
67407115 .align 2
6741
-.L1027:
7116
+.L939:
67427117 .word .LANCHOR0
67437118 .word .LANCHOR0+3206
67447119 .word .LC102
6745
- .fnend
7120
+ .word .LANCHOR0+3208
67467121 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
67477122 .align 2
67487123 .global update_vpc_list
....@@ -6751,19 +7126,21 @@
67517126 .fpu softvfp
67527127 .type update_vpc_list, %function
67537128 update_vpc_list:
6754
- .fnstart
67557129 @ args = 0, pretend = 0, frame = 0
6756
- @ frame_needed = 0, uses_anonymous_args = 0
6757
- push {r4, r5, r6, lr}
6758
- .save {r4, r5, r6, lr}
7130
+ @ frame_needed = 1, uses_anonymous_args = 0
7131
+ mov ip, sp
7132
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
7133
+ sub fp, ip, #4
7134
+ push {lr}
7135
+ bl __gnu_mcount_nc
7136
+ ldr r4, .L953
67597137 lsl r3, r0, #1
6760
- ldr r4, .L1042
7138
+ mov r5, r0
67617139 ldr r2, [r4, #72]
67627140 ldrh r3, [r2, r3]
67637141 cmp r3, #0
6764
- bne .L1030
7142
+ bne .L942
67657143 ldrh r3, [r4, #222]
6766
- mov r5, r0
67677144 cmp r3, r0
67687145 mvneq r3, #0
67697146 strheq r3, [r4, #222] @ movhi
....@@ -6775,29 +7152,29 @@
67757152 cmp r3, r0
67767153 mvneq r3, #0
67777154 strheq r3, [r4, #172] @ movhi
6778
- beq .L1034
7155
+ beq .L946
67797156 ldrh r3, [r4, #24]
67807157 cmp r3, r0
6781
- beq .L1039
7158
+ beq .L951
67827159 ldrh r3, [r4, #76]
67837160 cmp r3, r0
6784
- beq .L1039
7161
+ beq .L951
67857162 ldrh r3, [r4, #124]
67867163 cmp r3, r0
6787
- beq .L1039
6788
-.L1034:
6789
- ldr r6, .L1042+4
7164
+ beq .L951
7165
+.L946:
7166
+ ldr r6, .L953+4
67907167 mov r1, r5
6791
- ldr r0, .L1042+8
7168
+ ldr r0, .L953+8
67927169 bl List_remove_node
67937170 ldrh r3, [r6]
67947171 cmp r3, #0
6795
- bne .L1036
7172
+ bne .L948
7173
+ ldr r1, .L953+12
67967174 movw r2, #2835
6797
- ldr r1, .L1042+12
6798
- ldr r0, .L1042+16
7175
+ ldr r0, .L953+16
67997176 bl sftl_printk
6800
-.L1036:
7177
+.L948:
68017178 ldrh r3, [r6]
68027179 mov r0, r5
68037180 sub r3, r3, #1
....@@ -6810,29 +7187,32 @@
68107187 add r3, r3, r2
68117188 ldrh r2, [r4, #240]
68127189 cmp r3, r2
6813
- ble .L1040
7190
+ ble .L952
7191
+ ldr r1, .L953+12
68147192 movw r2, #2838
6815
- ldr r1, .L1042+12
6816
- ldr r0, .L1042+16
7193
+ ldr r0, .L953+16
68177194 bl sftl_printk
6818
-.L1040:
7195
+.L952:
68197196 mov r0, #1
6820
- pop {r4, r5, r6, pc}
6821
-.L1030:
7197
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
7198
+.L942:
68227199 bl List_update_data_list
6823
-.L1039:
7200
+.L951:
68247201 mov r0, #0
6825
- pop {r4, r5, r6, pc}
6826
-.L1043:
7202
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
7203
+.L954:
68277204 .align 2
6828
-.L1042:
7205
+.L953:
68297206 .word .LANCHOR0
68307207 .word .LANCHOR0+2528
68317208 .word .LANCHOR0+2520
68327209 .word .LANCHOR1+296
68337210 .word .LC8
6834
- .fnend
68357211 .size update_vpc_list, .-update_vpc_list
7212
+ .section .rodata.str1.1
7213
+.LC103:
7214
+ .ascii "decrement_vpc_count %x = %d\012\000"
7215
+ .text
68367216 .align 2
68377217 .global decrement_vpc_count
68387218 .syntax unified
....@@ -6840,84 +7220,85 @@
68407220 .fpu softvfp
68417221 .type decrement_vpc_count, %function
68427222 decrement_vpc_count:
6843
- .fnstart
68447223 @ args = 0, pretend = 0, frame = 0
6845
- @ frame_needed = 0, uses_anonymous_args = 0
7224
+ @ frame_needed = 1, uses_anonymous_args = 0
7225
+ mov ip, sp
7226
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
7227
+ sub fp, ip, #4
7228
+ push {lr}
7229
+ bl __gnu_mcount_nc
68467230 movw r3, #65535
6847
- push {r4, r5, r6, r7, r8, lr}
6848
- .save {r4, r5, r6, r7, r8, lr}
7231
+ ldr r6, .L967
7232
+ mov r5, r0
68497233 cmp r0, r3
6850
- mov r6, r0
6851
- ldr r4, .L1057
6852
- beq .L1045
6853
- ldr r3, [r4, #72]
6854
- lsl r5, r0, #1
6855
- ldrh r2, [r3, r5]
7234
+ beq .L956
7235
+ ldr r3, [r6, #72]
7236
+ lsl r4, r0, #1
7237
+ ldrh r2, [r3, r4]
68567238 cmp r2, #0
68577239 subne r2, r2, #1
6858
- strhne r2, [r3, r5] @ movhi
6859
- bne .L1045
7240
+ strhne r2, [r3, r4] @ movhi
7241
+ bne .L956
68607242 mov r1, r0
6861
- ldr r0, .L1057+4
7243
+ ldr r0, .L967+4
68627244 bl sftl_printk
6863
- ldr r3, [r4, #72]
6864
- ldrh r5, [r3, r5]
6865
- cmp r5, #0
6866
- beq .L1047
6867
-.L1055:
6868
- mov r5, #0
6869
-.L1044:
6870
- mov r0, r5
6871
- pop {r4, r5, r6, r7, r8, pc}
6872
-.L1047:
7245
+ ldr r3, [r6, #72]
7246
+ ldrh r4, [r3, r4]
7247
+ cmp r4, #0
7248
+ beq .L958
7249
+.L965:
7250
+ mov r4, #0
7251
+.L955:
7252
+ mov r0, r4
7253
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
7254
+.L958:
68737255 movw r2, #2853
6874
-.L1056:
6875
- ldr r1, .L1057+8
6876
- ldr r0, .L1057+12
7256
+.L966:
7257
+ ldr r1, .L967+8
7258
+ ldr r0, .L967+12
68777259 bl sftl_printk
6878
- b .L1044
6879
-.L1045:
7260
+ b .L955
7261
+.L956:
68807262 movw r7, #3438
68817263 movw r3, #65535
6882
- ldrh r0, [r4, r7]
7264
+ ldrh r0, [r6, r7]
68837265 cmp r0, r3
6884
- strheq r6, [r4, r7] @ movhi
6885
- beq .L1055
6886
-.L1049:
6887
- cmp r6, r0
6888
- beq .L1055
7266
+ strheq r5, [r6, r7] @ movhi
7267
+ beq .L965
7268
+.L960:
7269
+ cmp r0, r5
7270
+ beq .L965
68897271 bl update_vpc_list
6890
- ldr r2, [r4, #2516]
6891
- adds r5, r0, #0
6892
- ldr r3, [r4, #2520]
6893
- movne r5, #1
6894
- ldr r1, [r4, #72]
6895
- strh r6, [r4, r7] @ movhi
7272
+ ldr r2, [r6, #2516]
7273
+ ldr r3, [r6, #2520]
7274
+ subs r4, r0, #0
7275
+ ldr r1, [r6, #72]
68967276 sub r3, r3, r2
6897
- asr r2, r3, #1
6898
- ldr r3, .L1057+16
6899
- mul r3, r3, r2
7277
+ ldr r2, .L967+16
7278
+ strh r5, [r6, r7] @ movhi
7279
+ movne r4, #1
7280
+ asr r3, r3, #1
7281
+ mul r3, r2, r3
69007282 uxth r2, r3
69017283 uxth r3, r3
7284
+ cmp r3, r5
69027285 lsl r2, r2, #1
6903
- cmp r3, r6
69047286 ldrh r2, [r1, r2]
69057287 clz r2, r2
69067288 lsr r2, r2, #5
69077289 moveq r2, #0
69087290 cmp r2, #0
6909
- beq .L1044
7291
+ beq .L955
69107292 movw r2, #2869
6911
- b .L1056
6912
-.L1058:
7293
+ b .L966
7294
+.L968:
69137295 .align 2
6914
-.L1057:
7296
+.L967:
69157297 .word .LANCHOR0
69167298 .word .LC103
69177299 .word .LANCHOR1+312
69187300 .word .LC8
69197301 .word -1431655765
6920
- .fnend
69217302 .size decrement_vpc_count, .-decrement_vpc_count
69227303 .align 2
69237304 .global FtlSuperblockPowerLostFix
....@@ -6926,47 +7307,50 @@
69267307 .fpu softvfp
69277308 .type FtlSuperblockPowerLostFix, %function
69287309 FtlSuperblockPowerLostFix:
6929
- .fnstart
69307310 @ args = 0, pretend = 0, frame = 24
6931
- @ frame_needed = 0, uses_anonymous_args = 0
6932
- push {r4, r5, r6, r7, r8, r9, lr}
6933
- .save {r4, r5, r6, r7, r8, r9, lr}
6934
- .pad #28
6935
- sub sp, sp, #28
6936
- ldr r7, .L1074
6937
- mov r8, #0
6938
- movw r2, #61589
7311
+ @ frame_needed = 1, uses_anonymous_args = 0
7312
+ mov ip, sp
7313
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
7314
+ sub fp, ip, #4
7315
+ sub sp, sp, #24
7316
+ push {lr}
7317
+ bl __gnu_mcount_nc
7318
+ ldr r5, .L981
7319
+ mov r3, sp
7320
+ bic r8, r3, #8128
69397321 mov r4, r0
6940
- ldr r5, .L1074+4
6941
- ldr r3, [r7]
6942
- ldr r6, [r5, #3332]
6943
- str r3, [sp, #20]
7322
+ bic r8, r8, #63
7323
+ mvn r0, #2
7324
+ mvn r1, #1
7325
+ mov r9, #0
7326
+ ldr r7, [r5, #3332]
7327
+ movw r2, #61589
7328
+ ldr r3, [r8, #24]
7329
+ str r3, [fp, #-40]
69447330 mvn r3, #0
6945
- str r3, [sp, #16]
7331
+ str r3, [fp, #-44]
69467332 ldr r3, [r5, #3300]
6947
- str r6, [sp, #12]
6948
- str r3, [sp, #8]
6949
- mvn r3, #2
6950
- str r3, [r6, #8]
6951
- mvn r3, #1
6952
- str r3, [r6, #12]
6953
- ldrh r3, [r0]
6954
- strh r8, [r6] @ movhi
6955
- strh r3, [r6, #2] @ movhi
7333
+ str r3, [fp, #-52]
7334
+ str r7, [fp, #-48]
7335
+ strd r0, [r7, #8]
7336
+ ldrh r3, [r4]
7337
+ strh r3, [r7, #2] @ movhi
7338
+ strh r9, [r7] @ movhi
69567339 ldr r3, [r5, #3300]
69577340 str r2, [r3]
6958
- ldr r2, .L1074+8
7341
+ ldr r2, .L981+4
69597342 ldr r3, [r5, #3300]
69607343 str r2, [r3, #4]
6961
- ldrh r3, [r0, #4]
6962
- tst r3, #1
6963
- moveq r9, #6
6964
- movne r9, #7
6965
-.L1065:
7344
+ ldrh r6, [r4, #4]
7345
+ and r6, r6, #1
7346
+ add r6, r6, #6
7347
+.L970:
69667348 ldrh r3, [r4, #4]
7349
+ cmp r6, #0
7350
+ beq .L972
69677351 cmp r3, #0
6968
- bne .L1061
6969
-.L1062:
7352
+ bne .L971
7353
+.L972:
69707354 ldrh r3, [r4]
69717355 ldr r1, [r5, #72]
69727356 ldrh r0, [r4, #4]
....@@ -6975,49 +7359,46 @@
69757359 sub r2, r2, r0
69767360 strh r2, [r1, r3] @ movhi
69777361 movw r3, #302
7362
+ ldr r2, [fp, #-40]
69787363 ldrh r3, [r5, r3]
6979
- ldr r2, [sp, #20]
69807364 strh r3, [r4, #2] @ movhi
69817365 mov r3, #0
69827366 strb r3, [r4, #6]
69837367 strh r3, [r4, #4] @ movhi
6984
- ldr r3, [r7]
7368
+ ldr r3, [r8, #24]
69857369 cmp r2, r3
6986
- beq .L1066
7370
+ beq .L976
69877371 bl __stack_chk_fail
6988
-.L1061:
7372
+.L971:
69897373 mov r0, r4
69907374 bl get_new_active_ppa
69917375 cmn r0, #1
6992
- str r0, [sp, #4]
6993
- beq .L1062
7376
+ str r0, [fp, #-56]
7377
+ beq .L972
69947378 ldr r3, [r5, #2592]
69957379 mov r1, #1
6996
- mov r0, sp
6997
- str r3, [r6, #4]
6998
- add r3, r3, #1
6999
- cmn r3, #1
7000
- moveq r3, r8
7380
+ str r3, [r7, #4]
7381
+ sub r0, fp, #60
7382
+ cmn r3, #2
7383
+ add r2, r3, #1
7384
+ movne r3, r2
7385
+ moveq r3, r9
70017386 str r3, [r5, #2592]
70027387 mov r3, #0
70037388 mov r2, r3
7389
+ sub r6, r6, #1
70047390 bl FlashProgPages
70057391 ldrh r0, [r4]
70067392 bl decrement_vpc_count
7007
- subs r9, r9, #1
7008
- bne .L1065
7009
- b .L1062
7010
-.L1066:
7011
- add sp, sp, #28
7012
- @ sp needed
7013
- pop {r4, r5, r6, r7, r8, r9, pc}
7014
-.L1075:
7393
+ b .L970
7394
+.L976:
7395
+ sub sp, fp, #36
7396
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
7397
+.L982:
70157398 .align 2
7016
-.L1074:
7017
- .word __stack_chk_guard
7399
+.L981:
70187400 .word .LANCHOR0
70197401 .word 305419896
7020
- .fnend
70217402 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
70227403 .align 2
70237404 .global FtlMakeBbt
....@@ -7026,202 +7407,197 @@
70267407 .fpu softvfp
70277408 .type FtlMakeBbt, %function
70287409 FtlMakeBbt:
7029
- .fnstart
70307410 @ args = 0, pretend = 0, frame = 8
7031
- @ frame_needed = 0, uses_anonymous_args = 0
7032
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
7033
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7034
- .pad #12
7035
- mov r9, #0
7036
- ldr r8, .L1097
7411
+ @ frame_needed = 1, uses_anonymous_args = 0
7412
+ mov ip, sp
7413
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
7414
+ sub fp, ip, #4
7415
+ sub sp, sp, #12
7416
+ push {lr}
7417
+ bl __gnu_mcount_nc
7418
+ ldr r8, .L1002
7419
+ mov r7, #0
70377420 bl FtlBbtMemInit
7038
- sub r4, r8, #28
7039
- sub r6, r8, #380
7040
- sub r10, r8, #18
7041
- mov r5, r6
7042
- sub fp, r4, #54
7421
+ sub r9, r8, #16
7422
+ sub r4, r8, #380
70437423 bl FtlLoadFactoryBbt
7044
-.L1077:
7045
- ldrh r3, [r6, #254]
7046
- cmp r9, r3
7047
- bcc .L1083
7048
- ldr r7, .L1097+4
7049
- mov r6, #0
7050
-.L1084:
7051
- ldrh r3, [r7]
7052
- uxth r0, r6
7053
- add r6, r6, #1
7424
+.L984:
7425
+ ldrh r3, [r4, #254]
7426
+ cmp r3, r7
7427
+ bhi .L990
7428
+ ldr r6, .L1002+4
7429
+ mov r5, #0
7430
+.L991:
7431
+ ldrh r3, [r6]
7432
+ uxth r0, r5
70547433 cmp r3, r0
7055
- bhi .L1085
7056
- ldrh r6, [r4, #12]
7434
+ bhi .L992
7435
+ ldr r5, .L1002+8
70577436 movw r7, #65535
7437
+ ldrh r6, [r5, #12]
70587438 sub r6, r6, #1
70597439 uxth r6, r6
7060
-.L1086:
7061
- ldrh r3, [r4, #12]
7440
+.L993:
7441
+ ldrh r3, [r5, #12]
70627442 sub r3, r3, #48
70637443 cmp r6, r3
7064
- ble .L1090
7444
+ ble .L997
70657445 mov r0, r6
70667446 bl FtlBbmIsBadBlock
70677447 cmp r0, #1
7068
- beq .L1087
7448
+ beq .L994
70697449 mov r0, r6
70707450 bl FlashTestBlk
70717451 cmp r0, #0
7072
- beq .L1088
7452
+ beq .L995
70737453 mov r0, r6
70747454 bl FtlBbmMapBadBlock
7075
-.L1087:
7455
+.L994:
70767456 sub r6, r6, #1
70777457 uxth r6, r6
7078
- b .L1086
7079
-.L1083:
7080
- ldr r3, [r6, #3332]
7081
- movw r2, #65535
7082
- ldr r0, [r6, #3300]
7083
- str r3, [sp, #4]
7084
- str r3, [r6, #3464]
7085
- ldrh r3, [r10, #2]!
7086
- str r0, [r6, #3460]
7087
- cmp r3, r2
7088
- beq .L1078
7089
- ldrh r7, [fp]
7458
+ b .L993
7459
+.L990:
7460
+ ldrh r5, [r9]
7461
+ ldr r3, [r4, #3332]
7462
+ ldr r0, [r4, #3300]
7463
+ str r3, [fp, #-48]
7464
+ str r3, [r4, #3464]
7465
+ movw r3, #65535
7466
+ ldr r10, .L1002+12
7467
+ cmp r5, r3
7468
+ str r0, [r4, #3460]
7469
+ beq .L985
7470
+ ldrh r3, [r10]
70907471 mov r2, #1
7472
+ ldr r0, .L1002+16
70917473 mov r1, r2
7092
- ldr r0, .L1097+8
7093
- mla r7, r9, r7, r3
7094
- lsl r3, r7, #10
7095
- str r3, [r6, #3456]
7474
+ mla r5, r7, r3, r5
7475
+ lsl r3, r5, #10
7476
+ str r3, [r4, #3456]
70967477 bl FlashReadPages
7097
- ldrh r2, [fp]
7098
- ldr r1, [r6, #3460]
7099
- ldr r0, [r8]
7478
+ ldrh r2, [r10]
7479
+ ldr r1, [r4, #3460]
71007480 add r2, r2, #7
7101
- asr r2, r2, #3
7481
+ ldr r0, [r8]
7482
+ lsr r2, r2, #3
71027483 bl ftl_memcpy
7103
-.L1079:
7104
- uxth r0, r7
7105
- add r9, r9, #1
7484
+.L986:
7485
+ uxth r0, r5
7486
+ add r7, r7, #1
71067487 add r8, r8, #4
7488
+ add r9, r9, #2
71077489 bl FtlBbmMapBadBlock
7108
- b .L1077
7109
-.L1078:
7110
- mov r1, r9
7490
+ b .L984
7491
+.L985:
7492
+ mov r1, r7
71117493 bl FlashGetBadBlockList
71127494 ldr r1, [r8]
7113
- ldr r0, [r6, #3460]
7495
+ ldr r0, [r4, #3460]
71147496 bl FtlBbt2Bitmap
7115
- ldrh r3, [fp]
7116
-.L1096:
7117
- sub r3, r3, #1
7118
- uxth r3, r3
7119
- str r3, [sp]
7120
-.L1080:
7121
- ldr r3, [sp]
7122
- ldrh r0, [fp]
7123
- smlabb r0, r0, r9, r3
7497
+ ldrh r6, [r10]
7498
+.L988:
7499
+ sub r6, r6, #1
7500
+ uxth r6, r6
7501
+.L987:
7502
+ ldrh r0, [r10]
7503
+ smlabb r0, r0, r7, r6
71247504 uxth r0, r0
71257505 bl FtlBbmIsBadBlock
71267506 cmp r0, #1
7127
- beq .L1081
7128
- ldrh r3, [sp]
7507
+ beq .L988
71297508 mov r2, #16
71307509 mov r1, #0
7131
- ldr r0, [r5, #3332]
7132
- strh r3, [r10] @ movhi
7510
+ ldr r0, [r4, #3332]
7511
+ strh r6, [r9] @ movhi
71337512 bl ftl_memset
71347513 mov r2, #4096
71357514 mov r1, #0
7136
- ldr r0, [r5, #3300]
7515
+ ldr r0, [r4, #3300]
71377516 bl ftl_memset
7138
- ldr r3, [sp, #4]
7139
- movw r2, 61664 @ movhi
7140
- strh r2, [r3] @ movhi
7517
+ ldr r2, [fp, #-48]
7518
+ ldr r3, .L1002+20
7519
+ strh r3, [r2] @ movhi
71417520 mov r3, #0
7142
- ldr r2, [sp, #4]
7143
- ldrh r7, [fp]
71447521 str r3, [r2, #4]
71457522 ldrh r3, [r10]
7146
- strh r3, [r2, #2] @ movhi
7147
- ldrh r3, [r10]
7523
+ ldrh r5, [r9]
7524
+ strh r5, [r2, #2] @ movhi
71487525 ldr r1, [r8]
7149
- ldr r0, [r5, #3460]
7150
- mla r7, r9, r7, r3
7151
- lsl r3, r7, #10
7152
- str r3, [r5, #3456]
7153
- ldr r3, .L1097+12
7526
+ mla r5, r7, r3, r5
7527
+ ldr r0, [r4, #3460]
7528
+ lsl r3, r5, #10
7529
+ str r3, [r4, #3456]
7530
+ ldr r3, .L1002+24
71547531 ldrh r2, [r3]
71557532 lsl r2, r2, #2
71567533 bl ftl_memcpy
71577534 mov r2, #1
7158
- ldr r0, .L1097+8
7535
+ ldr r0, .L1002+16
71597536 mov r1, r2
71607537 bl FlashEraseBlocks
71617538 mov r3, #1
7162
- ldr r0, .L1097+8
7539
+ ldr r0, .L1002+16
71637540 mov r2, r3
71647541 mov r1, r3
71657542 bl FlashProgPages
7166
- ldr r3, [r5, #3452]
7543
+ ldr r3, [r4, #3452]
7544
+ uxth r0, r5
71677545 cmn r3, #1
7168
- bne .L1079
7169
- uxth r0, r7
7546
+ bne .L986
71707547 bl FtlBbmMapBadBlock
7171
- b .L1080
7172
-.L1081:
7173
- ldr r3, [sp]
7174
- b .L1096
7175
-.L1085:
7548
+ b .L987
7549
+.L992:
7550
+ add r5, r5, #1
71767551 bl FtlBbmMapBadBlock
7177
- b .L1084
7178
-.L1088:
7179
- ldrh r3, [r4]
7552
+ b .L991
7553
+.L995:
7554
+ ldrh r3, [r5]
71807555 cmp r3, r7
7181
- strheq r6, [r4] @ movhi
7182
- beq .L1087
7183
-.L1089:
7184
- strh r6, [r4, #4] @ movhi
7185
-.L1090:
7186
- ldrh r3, [r4]
7556
+ strheq r6, [r5] @ movhi
7557
+ beq .L994
7558
+.L996:
7559
+ strh r6, [r5, #4] @ movhi
7560
+.L997:
7561
+ ldr r0, [r4, #3268]
71877562 mov r6, #0
7188
- ldr r0, [r5, #3268]
7563
+ ldrh r3, [r5]
71897564 mov r1, #1
7190
- str r6, [r5, #360]
7565
+ str r6, [r4, #360]
71917566 mov r2, #2
7192
- strh r6, [r4, #2] @ movhi
7567
+ strh r6, [r5, #2] @ movhi
71937568 lsl r3, r3, #10
71947569 str r3, [r0, #4]
7195
- ldrh r3, [r4, #4]
7570
+ ldrh r3, [r5, #4]
71967571 lsl r3, r3, #10
71977572 str r3, [r0, #24]
71987573 bl FlashEraseBlocks
7199
- ldrh r0, [r4]
7574
+ ldrh r0, [r5]
72007575 bl FtlBbmMapBadBlock
7201
- ldrh r0, [r4, #4]
7576
+ ldrh r0, [r5, #4]
72027577 bl FtlBbmMapBadBlock
72037578 bl FtlBbmTblFlush
7204
- ldr r3, [r5, #360]
7205
- ldrh r2, [r4, #4]
7206
- strh r6, [r4, #2] @ movhi
7579
+ ldr r3, [r4, #360]
7580
+ ldrh r2, [r5, #4]
72077581 add r3, r3, #1
7208
- str r3, [r5, #360]
7209
- ldrh r3, [r4]
7210
- strh r2, [r4] @ movhi
7211
- strh r3, [r4, #4] @ movhi
7582
+ str r3, [r4, #360]
7583
+ ldrh r3, [r5]
7584
+ strh r6, [r5, #2] @ movhi
7585
+ strh r2, [r5] @ movhi
7586
+ strh r3, [r5, #4] @ movhi
72127587 bl FtlBbmTblFlush
72137588 mov r0, r6
7214
- add sp, sp, #12
7215
- @ sp needed
7216
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7217
-.L1098:
7589
+ sub sp, fp, #40
7590
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
7591
+.L1003:
72187592 .align 2
7219
-.L1097:
7593
+.L1002:
72207594 .word .LANCHOR0+380
72217595 .word .LANCHOR0+314
7596
+ .word .LANCHOR0+352
7597
+ .word .LANCHOR0+298
72227598 .word .LANCHOR0+3452
7599
+ .word -3872
72237600 .word .LANCHOR0+3388
7224
- .fnend
72257601 .size FtlMakeBbt, .-FtlMakeBbt
72267602 .align 2
72277603 .global ftl_memcmp
....@@ -7230,12 +7606,15 @@
72307606 .fpu softvfp
72317607 .type ftl_memcmp, %function
72327608 ftl_memcmp:
7233
- .fnstart
72347609 @ args = 0, pretend = 0, frame = 0
7235
- @ frame_needed = 0, uses_anonymous_args = 0
7236
- @ link register save eliminated.
7237
- b memcmp
7238
- .fnend
7610
+ @ frame_needed = 1, uses_anonymous_args = 0
7611
+ mov ip, sp
7612
+ push {fp, ip, lr, pc}
7613
+ sub fp, ip, #4
7614
+ push {lr}
7615
+ bl __gnu_mcount_nc
7616
+ bl memcmp
7617
+ ldmfd sp, {fp, sp, pc}
72397618 .size ftl_memcmp, .-ftl_memcmp
72407619 .align 2
72417620 .global js_hash
....@@ -7244,144 +7623,36 @@
72447623 .fpu softvfp
72457624 .type js_hash, %function
72467625 js_hash:
7247
- .fnstart
72487626 @ args = 0, pretend = 0, frame = 0
7249
- @ frame_needed = 0, uses_anonymous_args = 0
7250
- @ link register save eliminated.
7251
- ldr r3, .L1103
7627
+ @ frame_needed = 1, uses_anonymous_args = 0
7628
+ mov ip, sp
7629
+ push {fp, ip, lr, pc}
7630
+ sub fp, ip, #4
7631
+ push {lr}
7632
+ bl __gnu_mcount_nc
7633
+ mov r3, r0
72527634 add r1, r0, r1
7253
-.L1101:
7254
- cmp r0, r1
7255
- bne .L1102
7256
- mov r0, r3
7257
- bx lr
7258
-.L1102:
7259
- lsr r2, r3, #2
7260
- ldrb ip, [r0], #1 @ zero_extendqisi2
7261
- add r2, r2, r3, lsl #5
7635
+ ldr r0, .L1009
7636
+.L1006:
7637
+ cmp r3, r1
7638
+ ldmfdeq sp, {fp, sp, pc}
7639
+ lsr r2, r0, #2
7640
+ ldrb ip, [r3], #1 @ zero_extendqisi2
7641
+ add r2, r2, r0, lsl #5
72627642 add r2, r2, ip
7263
- eor r3, r3, r2
7264
- b .L1101
7265
-.L1104:
7643
+ eor r0, r0, r2
7644
+ b .L1006
7645
+.L1010:
72667646 .align 2
7267
-.L1103:
7647
+.L1009:
72687648 .word 1204201446
7269
- .fnend
72707649 .size js_hash, .-js_hash
7271
- .align 2
7272
- .global Ftl_write_map_blk_to_last_page
7273
- .syntax unified
7274
- .arm
7275
- .fpu softvfp
7276
- .type Ftl_write_map_blk_to_last_page, %function
7277
-Ftl_write_map_blk_to_last_page:
7278
- .fnstart
7279
- @ args = 0, pretend = 0, frame = 0
7280
- @ frame_needed = 0, uses_anonymous_args = 0
7281
- push {r4, r5, r6, r7, r8, lr}
7282
- .save {r4, r5, r6, r7, r8, lr}
7283
- movw r2, #65535
7284
- ldrh r3, [r0]
7285
- mov r4, r0
7286
- ldr r5, [r0, #12]
7287
- cmp r3, r2
7288
- bne .L1106
7289
- ldrh r3, [r0, #8]
7290
- cmp r3, #0
7291
- beq .L1107
7292
- movw r2, #641
7293
- ldr r1, .L1116
7294
- ldr r0, .L1116+4
7295
- bl sftl_printk
7296
-.L1107:
7297
- ldrh r3, [r4, #8]
7298
- add r3, r3, #1
7299
- strh r3, [r4, #8] @ movhi
7300
- bl FtlFreeSysBlkQueueOut
7301
- mov r3, #0
7302
- strh r0, [r5] @ movhi
7303
- strh r3, [r4, #2] @ movhi
7304
- strh r3, [r4] @ movhi
7305
- ldr r3, [r4, #28]
7306
- add r3, r3, #1
7307
- str r3, [r4, #28]
7308
-.L1108:
7309
- mov r0, #0
7310
- pop {r4, r5, r6, r7, r8, pc}
7311
-.L1106:
7312
- lsl r3, r3, #1
7313
- ldr r7, [r0, #24]
7314
- mov r1, #255
7315
- ldrh r8, [r5, r3]
7316
- ldrh r3, [r0, #2]
7317
- ldr r5, .L1116+8
7318
- orr r3, r3, r8, lsl #10
7319
- ldr r6, [r5, #3332]
7320
- str r3, [r5, #3456]
7321
- ldr r3, [r5, #3300]
7322
- str r6, [r5, #3464]
7323
- str r3, [r5, #3460]
7324
- ldr r3, [r0, #28]
7325
- str r3, [r6, #4]
7326
- ldr r3, .L1116+12
7327
- strh r3, [r6, #8] @ movhi
7328
- ldrh r3, [r0, #4]
7329
- strh r8, [r6, #2] @ movhi
7330
- strh r3, [r6] @ movhi
7331
- add r3, r5, #304
7332
- ldrh r2, [r3]
7333
- ldr r0, [r5, #3300]
7334
- lsl r2, r2, #3
7335
- bl ftl_memset
7336
- mov r2, #0
7337
- mov r3, r2
7338
-.L1109:
7339
- ldrh r0, [r4, #6]
7340
- uxth r1, r2
7341
- cmp r0, r1
7342
- bhi .L1111
7343
- movw r3, #310
7344
- ldr r0, [r5, #3460]
7345
- ldrh r1, [r5, r3]
7346
- bl js_hash
7347
- mov r2, #1
7348
- str r0, [r6, #12]
7349
- mov r3, #0
7350
- mov r1, r2
7351
- ldr r0, .L1116+16
7352
- bl FlashProgPages
7353
- ldrh r3, [r4, #2]
7354
- mov r0, r4
7355
- add r3, r3, #1
7356
- strh r3, [r4, #2] @ movhi
7357
- bl ftl_map_blk_gc
7358
- b .L1108
7359
-.L1111:
7360
- uxth r1, r2
7361
- ldr r0, [r7, r1, lsl #2]
7362
- cmp r8, r0, lsr #10
7363
- bne .L1110
7364
- ldr r0, [r5, #3300]
7365
- add r3, r3, #1
7366
- uxth r3, r3
7367
- str r1, [r0, r3, lsl #3]
7368
- ldr r0, [r7, r1, lsl #2]
7369
- ldr r1, [r5, #3300]
7370
- add r1, r1, r3, lsl #3
7371
- str r0, [r1, #4]
7372
-.L1110:
7373
- add r2, r2, #1
7374
- b .L1109
7375
-.L1117:
7376
- .align 2
7377
-.L1116:
7378
- .word .LANCHOR1+332
7379
- .word .LC8
7380
- .word .LANCHOR0
7381
- .word -1291
7382
- .word .LANCHOR0+3452
7383
- .fnend
7384
- .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
7650
+ .section .rodata.str1.1
7651
+.LC104:
7652
+ .ascii "FtlMapWritePage error = %x \012\000"
7653
+.LC105:
7654
+ .ascii "FtlMapWritePage error = %x error count = %d\012\000"
7655
+ .text
73857656 .align 2
73867657 .global FtlMapWritePage
73877658 .syntax unified
....@@ -7389,57 +7660,58 @@
73897660 .fpu softvfp
73907661 .type FtlMapWritePage, %function
73917662 FtlMapWritePage:
7392
- .fnstart
73937663 @ args = 0, pretend = 0, frame = 8
7394
- @ frame_needed = 0, uses_anonymous_args = 0
7395
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
7396
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7397
- .pad #12
7398
- lsl r9, r1, #2
7399
- ldr r5, .L1144
7664
+ @ frame_needed = 1, uses_anonymous_args = 0
7665
+ mov ip, sp
7666
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
7667
+ sub fp, ip, #4
7668
+ sub sp, sp, #12
7669
+ push {lr}
7670
+ bl __gnu_mcount_nc
7671
+ ldr r5, .L1035
74007672 mov r4, r0
74017673 mov r7, r1
7402
- mov r10, r2
7674
+ mov r8, r2
7675
+ lsl r10, r1, #2
7676
+ add r9, r5, #304
74037677 mov r6, #0
7404
- add r8, r5, #304
7405
- mov fp, r8
7406
-.L1119:
7678
+.L1012:
74077679 ldr r3, [r5, #2572]
74087680 add r3, r3, #1
74097681 str r3, [r5, #2572]
7410
- ldrh r3, [r8]
7682
+ ldrh r3, [r9]
74117683 ldrh r2, [r4, #2]
74127684 sub r3, r3, #1
74137685 cmp r2, r3
7414
- bge .L1120
7686
+ bge .L1013
74157687 ldrh r2, [r4]
74167688 movw r3, #65535
74177689 cmp r2, r3
7418
- bne .L1121
7419
-.L1120:
7690
+ bne .L1014
7691
+.L1013:
74207692 mov r0, r4
74217693 bl Ftl_write_map_blk_to_last_page
7422
-.L1121:
7694
+.L1014:
74237695 ldrh r3, [r4]
74247696 ldr r2, [r4, #12]
74257697 lsl r3, r3, #1
74267698 ldrh r3, [r2, r3]
74277699 cmp r3, #0
7428
- bne .L1122
7700
+ bne .L1015
7701
+ ldr r1, .L1035+4
74297702 mov r2, #700
7430
- ldr r1, .L1144+4
7431
- ldr r0, .L1144+8
7703
+ ldr r0, .L1035+8
74327704 bl sftl_printk
7433
-.L1122:
7705
+.L1015:
74347706 ldrh r2, [r4]
74357707 ldrh r3, [r4, #10]
74367708 cmp r2, r3
7437
- bcc .L1123
7709
+ bcc .L1016
7710
+ ldr r1, .L1035+4
74387711 movw r2, #701
7439
- ldr r1, .L1144+4
7440
- ldr r0, .L1144+8
7712
+ ldr r0, .L1035+8
74417713 bl sftl_printk
7442
-.L1123:
7714
+.L1016:
74437715 ldrh r3, [r4]
74447716 mov r1, #0
74457717 ldr r2, [r4, #12]
....@@ -7447,104 +7719,110 @@
74477719 lsl r3, r3, #1
74487720 ldrh r3, [r2, r3]
74497721 ldrh r2, [r4, #2]
7450
- str r10, [r5, #3460]
7451
- str r3, [sp, #4]
7452
- str r0, [r5, #3464]
7722
+ str r3, [fp, #-48]
7723
+ str r8, [r5, #3460]
74537724 orr r2, r2, r3, lsl #10
74547725 str r2, [r5, #3456]
74557726 mov r2, #16
7727
+ str r0, [r5, #3464]
74567728 bl ftl_memset
74577729 ldr r2, [r5, #3464]
74587730 ldr r1, [r4, #28]
7459
- ldr r3, [sp, #4]
7460
- strh r7, [r2, #8] @ movhi
7731
+ ldr r3, [fp, #-48]
74617732 str r1, [r2, #4]
7733
+ strh r7, [r2, #8] @ movhi
7734
+ str r2, [fp, #-48]
74627735 ldrh r1, [r4, #4]
74637736 strh r3, [r2, #2] @ movhi
7464
- ldr r3, .L1144+12
7737
+ ldr r3, .L1035+12
74657738 strh r1, [r2] @ movhi
74667739 ldr r0, [r5, #3460]
74677740 ldrh r1, [r3]
7468
- str r2, [sp, #4]
74697741 bl js_hash
7470
- ldr r2, [sp, #4]
7742
+ ldr r2, [fp, #-48]
74717743 mov r3, #1
74727744 mov r1, r3
74737745 str r0, [r2, #12]
74747746 mov r2, r3
7475
- ldr r0, .L1144+16
7747
+ ldr r0, .L1035+16
74767748 bl FlashProgPages
74777749 ldrh r3, [r4, #2]
74787750 add r3, r3, #1
74797751 strh r3, [r4, #2] @ movhi
74807752 ldr r3, [r5, #3452]
74817753 cmn r3, #1
7482
- bne .L1124
7754
+ bne .L1017
74837755 ldr r1, [r5, #3456]
74847756 add r6, r6, #1
7485
- ldr r0, .L1144+20
7486
- uxth r6, r6
7757
+ ldr r0, .L1035+20
74877758 bl sftl_printk
74887759 ldrh r3, [r4, #2]
7760
+ uxth r6, r6
74897761 cmp r3, #2
7490
- ldrhls r3, [fp]
7762
+ ldrhls r3, [r9]
74917763 subls r3, r3, #1
74927764 strhls r3, [r4, #2] @ movhi
74937765 cmp r6, #3
7494
- bls .L1126
7495
- mov r2, r6
7766
+ bls .L1019
74967767 ldr r1, [r5, #3456]
7497
- ldr r0, .L1144+24
7768
+ mov r2, r6
7769
+ ldr r0, .L1035+24
74987770 bl sftl_printk
7499
-.L1127:
7500
- b .L1127
7501
-.L1126:
7771
+.L1020:
7772
+ b .L1020
7773
+.L1019:
75027774 ldr r3, [r4, #32]
75037775 cmp r3, #0
7504
- beq .L1119
7505
-.L1142:
7506
- b .L1142
7507
-.L1124:
7776
+ beq .L1012
7777
+.L1022:
7778
+ b .L1022
7779
+.L1017:
75087780 ldr r3, [r4, #24]
75097781 ldr r2, [r5, #3456]
7510
- str r2, [r3, r9]
7782
+ str r2, [r3, r10]
75117783 ldrh r3, [r4, #2]
75127784 cmp r3, #1
7513
- beq .L1130
7785
+ beq .L1023
75147786 ldr r3, [r5, #3452]
75157787 cmp r3, #256
7516
- beq .L1130
7788
+ beq .L1023
75177789 ldr r2, [r4, #36]
75187790 cmp r2, #0
7519
- beq .L1131
7520
-.L1130:
7791
+ beq .L1024
7792
+.L1023:
75217793 mov r3, #0
75227794 str r3, [r4, #36]
7523
- b .L1119
7524
-.L1131:
7795
+ b .L1012
7796
+.L1024:
75257797 cmn r3, #1
7526
- bne .L1132
7798
+ bne .L1025
7799
+ ldr r1, .L1035+4
75277800 movw r2, #745
7528
- ldr r1, .L1144+4
7529
- ldr r0, .L1144+8
7801
+ ldr r0, .L1035+8
75307802 bl sftl_printk
7531
-.L1132:
7803
+.L1025:
75327804 mov r0, #0
7533
- add sp, sp, #12
7534
- @ sp needed
7535
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7536
-.L1145:
7805
+ sub sp, fp, #40
7806
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
7807
+.L1036:
75377808 .align 2
7538
-.L1144:
7809
+.L1035:
75397810 .word .LANCHOR0
7540
- .word .LANCHOR1+363
7811
+ .word .LANCHOR1+332
75417812 .word .LC8
75427813 .word .LANCHOR0+310
75437814 .word .LANCHOR0+3452
75447815 .word .LC104
75457816 .word .LC105
7546
- .fnend
75477817 .size FtlMapWritePage, .-FtlMapWritePage
7818
+ .section .rodata.str1.1
7819
+.LC106:
7820
+ .ascii "region_id = %x phyAddr = %x\012\000"
7821
+.LC107:
7822
+ .ascii "map_ppn:\000"
7823
+.LC108:
7824
+ .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
7825
+ .text
75487826 .align 2
75497827 .global load_l2p_region
75507828 .syntax unified
....@@ -7552,111 +7830,108 @@
75527830 .fpu softvfp
75537831 .type load_l2p_region, %function
75547832 load_l2p_region:
7555
- .fnstart
75567833 @ args = 0, pretend = 0, frame = 0
7557
- @ frame_needed = 0, uses_anonymous_args = 0
7558
- push {r4, r5, r6, r7, r8, r9, r10, lr}
7559
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
7560
- mov r6, r0
7561
- ldr r9, .L1154
7562
- mov r10, r1
7834
+ @ frame_needed = 1, uses_anonymous_args = 0
7835
+ mov ip, sp
7836
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
7837
+ sub fp, ip, #4
7838
+ push {lr}
7839
+ bl __gnu_mcount_nc
7840
+ ldr r9, .L1046
7841
+ mov r5, r0
7842
+ mov r6, r1
75637843 ldrh r3, [r9]
75647844 cmp r3, r0
7565
- bcs .L1147
7845
+ bcs .L1038
7846
+ ldr r1, .L1046+4
75667847 movw r2, #485
7567
- ldr r1, .L1154+4
7568
- ldr r0, .L1154+8
7848
+ ldr r0, .L1046+8
75697849 bl sftl_printk
7570
-.L1147:
7571
- ldr r7, .L1154+12
7572
- mov r5, #12
7573
- ldr r3, [r7, #3376]
7574
- mov r4, r7
7575
- ldr r8, [r3, r6, lsl #2]
7576
- cmp r8, #0
7577
- bne .L1148
7578
- mul r5, r5, r10
7579
- ldr r3, [r7, #2540]
7580
- movw r2, #310
7581
- mov r1, #255
7582
- ldrh r2, [r7, r2]
7583
- add r3, r3, r5
7850
+.L1038:
7851
+ ldr r4, .L1046+12
7852
+ mov r1, #12
7853
+ mul r6, r1, r6
7854
+ ldr r3, [r4, #3376]
7855
+ ldr r7, [r3, r5, lsl #2]
7856
+ ldr r3, [r4, #2540]
7857
+ cmp r7, #0
7858
+ add r3, r3, r6
75847859 ldr r0, [r3, #8]
7860
+ bne .L1039
7861
+ movw r3, #310
7862
+ mov r1, #255
7863
+ ldrh r2, [r4, r3]
75857864 bl ftl_memset
7586
- ldr r3, [r7, #2540]
7587
- strh r6, [r3, r5] @ movhi
7588
- ldr r3, [r7, #2540]
7589
- add r5, r3, r5
7590
- str r8, [r5, #4]
7591
-.L1149:
7865
+ ldr r3, [r4, #2540]
7866
+ strh r5, [r3, r6] @ movhi
7867
+ ldr r1, [r4, #2540]
7868
+ add r6, r1, r6
7869
+ str r7, [r6, #4]
7870
+.L1040:
75927871 mov r0, #0
7593
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
7594
-.L1148:
7595
- mul r5, r5, r10
7596
- ldr r3, [r7, #2540]
7872
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
7873
+.L1039:
7874
+ ldr r3, [r4, #3332]
75977875 mov r2, #1
7598
- ldr r0, .L1154+16
7876
+ str r0, [r4, #3460]
75997877 mov r1, r2
7600
- str r8, [r7, #3456]
7601
- add r3, r3, r5
7602
- ldr r3, [r3, #8]
7603
- str r3, [r7, #3460]
7604
- ldr r3, [r7, #3332]
7605
- str r3, [r7, #3464]
7878
+ ldr r0, .L1046+16
7879
+ str r3, [r4, #3464]
7880
+ str r7, [r4, #3456]
76067881 bl FlashReadPages
7607
- ldr r7, [r7, #3464]
7608
- ldrh r3, [r7, #8]
7609
- cmp r3, r6
7610
- beq .L1150
7611
- mov r2, r8
7612
- mov r1, r6
7613
- ldr r0, .L1154+20
7882
+ ldr r8, [r4, #3464]
7883
+ ldrh r3, [r8, #8]
7884
+ cmp r3, r5
7885
+ beq .L1041
7886
+ ldr r0, .L1046+20
7887
+ mov r2, r7
7888
+ mov r1, r5
76147889 bl sftl_printk
76157890 mov r3, #4
76167891 ldr r1, [r4, #3464]
76177892 mov r2, r3
7618
- ldr r0, .L1154+24
7893
+ ldr r0, .L1046+24
76197894 bl rknand_print_hex
76207895 ldrh r3, [r9]
7621
- mov r2, #4
76227896 ldr r1, [r4, #3376]
7623
- ldr r0, .L1154+28
7897
+ mov r2, #4
7898
+ ldr r0, .L1046+28
76247899 bl rknand_print_hex
7625
-.L1151:
7626
- ldrh r3, [r7, #8]
7627
- cmp r3, r6
7628
- beq .L1152
7900
+.L1042:
7901
+ ldrh r3, [r8, #8]
7902
+ cmp r3, r5
7903
+ beq .L1044
7904
+ ldr r1, .L1046+4
76297905 mov r2, #508
7630
- ldr r1, .L1154+4
7631
- ldr r0, .L1154+8
7906
+ ldr r0, .L1046+8
76327907 bl sftl_printk
7633
-.L1152:
7908
+.L1044:
76347909 ldr r3, [r4, #2540]
76357910 mov r1, #0
7636
- add r2, r3, r5
7911
+ add r2, r3, r6
76377912 str r1, [r2, #4]
7638
- strh r6, [r3, r5] @ movhi
7639
- b .L1149
7640
-.L1150:
7913
+ strh r5, [r3, r6] @ movhi
7914
+ b .L1040
7915
+.L1041:
76417916 ldr r3, [r4, #3452]
76427917 cmp r3, #256
7643
- bne .L1151
7644
- mov r2, r8
7645
- mov r1, r6
7646
- ldr r0, .L1154+32
7918
+ bne .L1044
7919
+ mov r2, r7
7920
+ mov r1, r5
7921
+ ldr r0, .L1046+32
76477922 bl sftl_printk
76487923 ldr r3, [r4, #2540]
7649
- mov r1, r6
7924
+ mov r1, r5
76507925 add r0, r4, #3392
7651
- add r3, r3, r5
7926
+ add r3, r3, r6
76527927 ldr r2, [r3, #8]
76537928 bl FtlMapWritePage
7654
- b .L1151
7655
-.L1155:
7929
+ b .L1042
7930
+.L1047:
76567931 .align 2
7657
-.L1154:
7932
+.L1046:
76587933 .word .LANCHOR0+336
7659
- .word .LANCHOR1+379
7934
+ .word .LANCHOR1+348
76607935 .word .LC8
76617936 .word .LANCHOR0
76627937 .word .LANCHOR0+3452
....@@ -7664,7 +7939,6 @@
76647939 .word .LC94
76657940 .word .LC107
76667941 .word .LC108
7667
- .fnend
76687942 .size load_l2p_region, .-load_l2p_region
76697943 .align 2
76707944 .global ftl_map_blk_gc
....@@ -7673,12 +7947,14 @@
76737947 .fpu softvfp
76747948 .type ftl_map_blk_gc, %function
76757949 ftl_map_blk_gc:
7676
- .fnstart
76777950 @ args = 0, pretend = 0, frame = 8
7678
- @ frame_needed = 0, uses_anonymous_args = 0
7679
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
7680
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7681
- .pad #12
7951
+ @ frame_needed = 1, uses_anonymous_args = 0
7952
+ mov ip, sp
7953
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
7954
+ sub fp, ip, #4
7955
+ sub sp, sp, #12
7956
+ push {lr}
7957
+ bl __gnu_mcount_nc
76827958 mov r4, r0
76837959 ldr r5, [r0, #12]
76847960 ldr r10, [r0, #24]
....@@ -7687,113 +7963,227 @@
76877963 ldrh r2, [r4, #8]
76887964 sub r3, r3, #5
76897965 cmp r2, r3
7690
- blt .L1157
7966
+ blt .L1049
76917967 uxth r0, r0
76927968 lsl r0, r0, #1
76937969 ldrh r9, [r5, r0]
76947970 cmp r9, #0
7695
- beq .L1157
7696
- ldr r3, [r4, #32]
7697
- cmp r3, #0
7698
- bne .L1157
7699
- mov r2, #1
7700
- str r2, [r4, #32]
7701
- strh r3, [r5, r0] @ movhi
7971
+ beq .L1049
7972
+ ldr r6, [r4, #32]
7973
+ cmp r6, #0
7974
+ bne .L1049
7975
+ mov r3, #1
7976
+ str r3, [r4, #32]
7977
+ strh r6, [r5, r0] @ movhi
77027978 ldrh r3, [r4, #8]
77037979 ldrh r2, [r4, #2]
77047980 sub r3, r3, #1
77057981 strh r3, [r4, #8] @ movhi
7706
- ldr r3, .L1173
7982
+ ldr r3, .L1064
77077983 ldrh r3, [r3]
77087984 cmp r2, r3
7709
- bcc .L1158
7985
+ bcc .L1050
77107986 mov r0, r4
77117987 bl ftl_map_blk_alloc_new_blk
7712
-.L1158:
7713
- ldr r5, .L1173+4
7714
- mov r6, #0
7715
-.L1159:
7988
+.L1050:
7989
+ ldr r5, .L1064+4
7990
+.L1051:
77167991 ldrh r2, [r4, #6]
7717
- uxth fp, r6
7718
- cmp r2, fp
7719
- bhi .L1166
7720
- mov r1, #1
7992
+ uxth r3, r6
7993
+ cmp r2, r3
7994
+ bhi .L1058
77217995 mov r0, r9
7996
+ mov r1, #1
77227997 bl FtlFreeSysBlkQueueIn
77237998 mov r3, #0
77247999 str r3, [r4, #32]
7725
-.L1157:
7726
- ldr r3, .L1173
8000
+.L1049:
8001
+ ldr r3, .L1064
77278002 ldrh r2, [r4, #2]
77288003 ldrh r3, [r3]
77298004 cmp r2, r3
7730
- bcc .L1167
8005
+ bcc .L1059
77318006 mov r0, r4
77328007 bl ftl_map_blk_alloc_new_blk
7733
-.L1167:
8008
+.L1059:
77348009 mov r0, #0
7735
- add sp, sp, #12
7736
- @ sp needed
7737
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
7738
-.L1166:
8010
+ sub sp, fp, #40
8011
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
8012
+.L1058:
77398013 uxth r7, r6
8014
+ add r2, r10, r7, lsl #2
8015
+ str r2, [fp, #-48]
77408016 ldr r2, [r10, r7, lsl #2]
7741
- add r3, r10, r7, lsl #2
7742
- str r3, [sp, #4]
77438017 cmp r9, r2, lsr #10
7744
- bne .L1160
8018
+ bne .L1052
77458019 ldr r2, [r5, #3304]
77468020 ldr r8, [r5, #3332]
7747
- ldr r0, .L1173+8
77488021 str r2, [r5, #3460]
77498022 str r8, [r5, #3464]
8023
+ ldr r0, .L1064+8
77508024 ldr r2, [r10, r7, lsl #2]
77518025 str r2, [r5, #3456]
77528026 mov r2, #1
77538027 mov r1, r2
8028
+ str r3, [fp, #-52]
77548029 bl FlashReadPages
77558030 ldrh r2, [r8, #8]
7756
- cmp r2, fp
7757
- beq .L1161
8031
+ ldr r3, [fp, #-52]
8032
+ cmp r2, r3
8033
+ beq .L1053
8034
+ ldr r1, .L1064+12
77588035 movw r2, #611
7759
- ldr r1, .L1173+12
7760
- ldr r0, .L1173+16
8036
+ ldr r0, .L1064+16
77618037 bl sftl_printk
7762
-.L1161:
8038
+ ldr r3, [fp, #-52]
8039
+.L1053:
77638040 ldr r2, [r5, #3452]
77648041 cmn r2, #1
7765
- bne .L1162
7766
-.L1164:
7767
- ldr r2, [sp, #4]
8042
+ bne .L1054
8043
+.L1056:
8044
+ ldr r2, [fp, #-48]
77688045 mov r3, #0
77698046 str r3, [r2]
7770
-.L1163:
7771
- b .L1163
7772
-.L1162:
8047
+.L1055:
8048
+ b .L1055
8049
+.L1054:
77738050 ldrh r2, [r8, #8]
7774
- cmp r2, fp
7775
- bne .L1164
8051
+ cmp r2, r3
8052
+ bne .L1056
77768053 ldrh r2, [r8]
77778054 ldrh r3, [r4, #4]
77788055 cmp r2, r3
7779
- bne .L1164
8056
+ bne .L1056
77808057 ldr r2, [r5, #3460]
77818058 mov r1, r7
77828059 mov r0, r4
77838060 bl FtlMapWritePage
7784
-.L1160:
8061
+.L1052:
77858062 add r6, r6, #1
7786
- b .L1159
7787
-.L1174:
8063
+ b .L1051
8064
+.L1065:
77888065 .align 2
7789
-.L1173:
8066
+.L1064:
77908067 .word .LANCHOR0+304
77918068 .word .LANCHOR0
77928069 .word .LANCHOR0+3452
7793
- .word .LANCHOR1+395
8070
+ .word .LANCHOR1+364
77948071 .word .LC8
7795
- .fnend
77968072 .size ftl_map_blk_gc, .-ftl_map_blk_gc
8073
+ .align 2
8074
+ .global Ftl_write_map_blk_to_last_page
8075
+ .syntax unified
8076
+ .arm
8077
+ .fpu softvfp
8078
+ .type Ftl_write_map_blk_to_last_page, %function
8079
+Ftl_write_map_blk_to_last_page:
8080
+ @ args = 0, pretend = 0, frame = 0
8081
+ @ frame_needed = 1, uses_anonymous_args = 0
8082
+ mov ip, sp
8083
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
8084
+ sub fp, ip, #4
8085
+ push {lr}
8086
+ bl __gnu_mcount_nc
8087
+ ldrh r3, [r0]
8088
+ movw r2, #65535
8089
+ ldr r5, [r0, #12]
8090
+ mov r4, r0
8091
+ cmp r3, r2
8092
+ bne .L1067
8093
+ ldrh r3, [r0, #8]
8094
+ cmp r3, #0
8095
+ beq .L1068
8096
+ ldr r1, .L1076
8097
+ movw r2, #641
8098
+ ldr r0, .L1076+4
8099
+ bl sftl_printk
8100
+.L1068:
8101
+ ldrh r3, [r4, #8]
8102
+ add r3, r3, #1
8103
+ strh r3, [r4, #8] @ movhi
8104
+ bl FtlFreeSysBlkQueueOut
8105
+ strh r0, [r5] @ movhi
8106
+ mov r3, #0
8107
+ str r3, [r4]
8108
+ ldr r3, [r4, #28]
8109
+ add r3, r3, #1
8110
+ str r3, [r4, #28]
8111
+.L1069:
8112
+ mov r0, #0
8113
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
8114
+.L1067:
8115
+ lsl r3, r3, #1
8116
+ ldr r7, [r0, #24]
8117
+ mov r1, #255
8118
+ ldrh r8, [r5, r3]
8119
+ ldr r5, .L1076+8
8120
+ ldrh r3, [r0, #2]
8121
+ ldr r6, [r5, #3332]
8122
+ orr r3, r3, r8, lsl #10
8123
+ str r3, [r5, #3456]
8124
+ ldr r3, [r5, #3300]
8125
+ str r3, [r5, #3460]
8126
+ ldr r3, [r0, #28]
8127
+ str r6, [r5, #3464]
8128
+ str r3, [r6, #4]
8129
+ ldr r3, .L1076+12
8130
+ strh r3, [r6, #8] @ movhi
8131
+ ldrh r3, [r0, #4]
8132
+ strh r3, [r6] @ movhi
8133
+ add r3, r5, #304
8134
+ strh r8, [r6, #2] @ movhi
8135
+ ldrh r2, [r3]
8136
+ ldr r0, [r5, #3300]
8137
+ lsl r2, r2, #3
8138
+ bl ftl_memset
8139
+ mov r2, #0
8140
+ mov r3, r2
8141
+.L1070:
8142
+ ldrh r0, [r4, #6]
8143
+ uxth r1, r2
8144
+ cmp r0, r1
8145
+ bhi .L1072
8146
+ movw r3, #310
8147
+ ldr r0, [r5, #3460]
8148
+ ldrh r1, [r5, r3]
8149
+ bl js_hash
8150
+ mov r2, #1
8151
+ str r0, [r6, #12]
8152
+ mov r1, r2
8153
+ mov r3, #0
8154
+ ldr r0, .L1076+16
8155
+ bl FlashProgPages
8156
+ ldrh r3, [r4, #2]
8157
+ mov r0, r4
8158
+ add r3, r3, #1
8159
+ strh r3, [r4, #2] @ movhi
8160
+ bl ftl_map_blk_gc
8161
+ b .L1069
8162
+.L1072:
8163
+ uxth r1, r2
8164
+ ldr r0, [r7, r1, lsl #2]
8165
+ cmp r8, r0, lsr #10
8166
+ bne .L1071
8167
+ add r3, r3, #1
8168
+ ldr r0, [r5, #3300]
8169
+ uxth r3, r3
8170
+ str r1, [r0, r3, lsl #3]
8171
+ ldr r0, [r7, r1, lsl #2]
8172
+ ldr r1, [r5, #3300]
8173
+ add r1, r1, r3, lsl #3
8174
+ str r0, [r1, #4]
8175
+.L1071:
8176
+ add r2, r2, #1
8177
+ b .L1070
8178
+.L1077:
8179
+ .align 2
8180
+.L1076:
8181
+ .word .LANCHOR1+379
8182
+ .word .LC8
8183
+ .word .LANCHOR0
8184
+ .word -1291
8185
+ .word .LANCHOR0+3452
8186
+ .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
77978187 .align 2
77988188 .global flush_l2p_region
77998189 .syntax unified
....@@ -7801,32 +8191,33 @@
78018191 .fpu softvfp
78028192 .type flush_l2p_region, %function
78038193 flush_l2p_region:
7804
- .fnstart
78058194 @ args = 0, pretend = 0, frame = 0
7806
- @ frame_needed = 0, uses_anonymous_args = 0
7807
- push {r4, r5, r6, lr}
7808
- .save {r4, r5, r6, lr}
8195
+ @ frame_needed = 1, uses_anonymous_args = 0
8196
+ mov ip, sp
8197
+ push {r4, r5, fp, ip, lr, pc}
8198
+ sub fp, ip, #4
8199
+ push {lr}
8200
+ bl __gnu_mcount_nc
8201
+ ldr r5, .L1079
78098202 mov r4, #12
7810
- ldr r5, .L1177
78118203 mul r4, r4, r0
7812
- ldr r3, [r5, #2540]
78138204 add r0, r5, #3392
8205
+ ldr r3, [r5, #2540]
78148206 add r2, r3, r4
78158207 ldrh r1, [r3, r4]
78168208 ldr r2, [r2, #8]
78178209 bl FtlMapWritePage
7818
- ldr r3, [r5, #2540]
8210
+ ldr r0, [r5, #2540]
8211
+ add r4, r0, r4
78198212 mov r0, #0
7820
- add r4, r3, r4
78218213 ldr r3, [r4, #4]
78228214 bic r3, r3, #-2147483648
78238215 str r3, [r4, #4]
7824
- pop {r4, r5, r6, pc}
7825
-.L1178:
8216
+ ldmfd sp, {r4, r5, fp, sp, pc}
8217
+.L1080:
78268218 .align 2
7827
-.L1177:
8219
+.L1079:
78288220 .word .LANCHOR0
7829
- .fnend
78308221 .size flush_l2p_region, .-flush_l2p_region
78318222 .align 2
78328223 .global log2phys
....@@ -7835,114 +8226,109 @@
78358226 .fpu softvfp
78368227 .type log2phys, %function
78378228 log2phys:
7838
- .fnstart
78398229 @ args = 0, pretend = 0, frame = 0
7840
- @ frame_needed = 0, uses_anonymous_args = 0
7841
- push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
7842
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
7843
- mov fp, r0
7844
- ldr r4, .L1193
7845
- mov r6, r1
7846
- mov r10, r2
7847
- add r3, r4, #308
7848
- ldrh r9, [r3]
7849
- ldr r3, [r4, #2552]
7850
- cmp r0, r3
7851
- bcc .L1180
7852
- mov r2, #820
7853
- ldr r1, .L1193+4
7854
- ldr r0, .L1193+8
7855
- bl sftl_printk
7856
-.L1180:
7857
- ldr r3, [r4, #2552]
7858
- cmp fp, r3
7859
- bcs .L1181
7860
- add r9, r9, #7
7861
- ldr r1, [r4, #2540]
7862
- lsr r7, fp, r9
7863
- movw r3, #338
7864
- ldrh r2, [r4, r3]
7865
- mov r8, #12
7866
- uxth r7, r7
7867
- mov r3, #0
7868
-.L1182:
7869
- uxth r5, r3
7870
- cmp r5, r2
7871
- bcc .L1187
7872
- bl select_l2p_ram_region
7873
- mul r8, r8, r0
7874
- ldr r3, [r4, #2540]
8230
+ @ frame_needed = 1, uses_anonymous_args = 0
8231
+ mov ip, sp
8232
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
8233
+ sub fp, ip, #4
8234
+ push {lr}
8235
+ bl __gnu_mcount_nc
8236
+ ldr r4, .L1093
8237
+ mvn r6, #0
78758238 mov r5, r0
7876
- ldrh r1, [r3, r8]
7877
- add r2, r3, r8
7878
- movw r3, #65535
7879
- cmp r1, r3
7880
- beq .L1188
7881
- ldr r3, [r2, #4]
7882
- cmp r3, #0
7883
- bge .L1188
7884
- bl flush_l2p_region
7885
-.L1188:
7886
- mov r1, r5
7887
- mov r0, r7
7888
- bl load_l2p_region
7889
- b .L1184
7890
-.L1181:
8239
+ mov r8, r1
8240
+ add r3, r4, #308
8241
+ mov r9, r2
8242
+ ldrh r3, [r3]
8243
+ add r3, r3, #7
8244
+ lsr r7, r0, r3
8245
+ bic r6, r0, r6, lsl r3
8246
+ ldr r3, [r4, #2552]
8247
+ uxth r7, r7
8248
+ uxth r6, r6
8249
+ cmp r3, r0
8250
+ bhi .L1082
8251
+ ldr r1, .L1093+4
8252
+ mov r2, #820
8253
+ ldr r0, .L1093+8
8254
+ bl sftl_printk
8255
+ ldr r3, [r4, #2552]
8256
+ cmp r3, r5
8257
+ bhi .L1082
78918258 mvn r0, #0
7892
- cmp r10, #0
7893
- streq r0, [r6]
7894
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
7895
-.L1187:
8259
+ cmp r9, #0
8260
+ streq r0, [r8]
8261
+ ldmfd sp, {r3, r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
8262
+.L1088:
78968263 add r3, r3, #1
7897
- mla r0, r8, r3, r1
7898
- ldrh r0, [r0, #-12]
8264
+ mul r0, r10, r3
8265
+ ldrh r0, [r2, r0]
78998266 cmp r0, r7
7900
- bne .L1182
7901
-.L1184:
7902
- mvn r0, #0
7903
- cmp r10, #0
7904
- bic r0, fp, r0, lsl r9
7905
- mov r3, #12
7906
- uxth r0, r0
7907
- bne .L1185
7908
- ldr r2, [r4, #2540]
7909
- mla r3, r3, r5, r2
8267
+ bne .L1084
8268
+.L1085:
8269
+ mov r1, #12
8270
+ ldr r3, [r4, #2540]
8271
+ cmp r9, #0
8272
+ mul r5, r1, r5
8273
+ add r3, r3, r5
79108274 ldr r3, [r3, #8]
7911
- ldr r3, [r3, r0, lsl #2]
7912
- str r3, [r6]
7913
-.L1186:
7914
- ldr r2, [r4, #2540]
7915
- mov r3, #12
8275
+ ldreq r3, [r3, r6, lsl #2]
8276
+ streq r3, [r8]
8277
+ beq .L1087
8278
+ ldr r2, [r8]
8279
+ str r2, [r3, r6, lsl #2]
8280
+ ldr r3, [r4, #2540]
8281
+ add r3, r3, r5
8282
+ ldr r2, [r3, #4]
8283
+ orr r2, r2, #-2147483648
8284
+ str r2, [r3, #4]
8285
+ ldr r3, .L1093+12
8286
+ strh r7, [r3] @ movhi
8287
+.L1087:
8288
+ ldr r1, [r4, #2540]
79168289 mov r0, #0
7917
- mla r5, r3, r5, r2
8290
+ add r5, r1, r5
79188291 ldr r3, [r5, #4]
79198292 cmn r3, #1
79208293 addne r3, r3, #1
79218294 strne r3, [r5, #4]
7922
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
7923
-.L1185:
7924
- mul r3, r3, r5
8295
+ ldmfd sp, {r3, r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
8296
+.L1082:
79258297 ldr r2, [r4, #2540]
7926
- ldr r1, [r6]
7927
- add r2, r2, r3
7928
- ldr r2, [r2, #8]
7929
- str r1, [r2, r0, lsl #2]
7930
- ldr r2, [r4, #2540]
7931
- add r3, r2, r3
7932
- ldr r2, [r3, #4]
7933
- orr r2, r2, #-2147483648
7934
- str r2, [r3, #4]
7935
- ldr r3, .L1193+12
7936
- strh r7, [r3] @ movhi
7937
- b .L1186
7938
-.L1194:
8298
+ movw r3, #338
8299
+ mov r10, #12
8300
+ sub r2, r2, #12
8301
+ ldrh r1, [r4, r3]
8302
+ mov r3, #0
8303
+.L1084:
8304
+ uxth r5, r3
8305
+ cmp r1, r5
8306
+ bhi .L1088
8307
+ bl select_l2p_ram_region
8308
+ mul r10, r10, r0
8309
+ ldr r3, [r4, #2540]
8310
+ mov r5, r0
8311
+ add r2, r3, r10
8312
+ ldrh r1, [r3, r10]
8313
+ movw r3, #65535
8314
+ cmp r1, r3
8315
+ beq .L1089
8316
+ ldr r3, [r2, #4]
8317
+ cmp r3, #0
8318
+ bge .L1089
8319
+ bl flush_l2p_region
8320
+.L1089:
8321
+ mov r1, r5
8322
+ mov r0, r7
8323
+ bl load_l2p_region
8324
+ b .L1085
8325
+.L1094:
79398326 .align 2
7940
-.L1193:
8327
+.L1093:
79418328 .word .LANCHOR0
79428329 .word .LANCHOR1+410
79438330 .word .LC8
79448331 .word .LANCHOR0+2544
7945
- .fnend
79468332 .size log2phys, .-log2phys
79478333 .align 2
79488334 .global FtlWriteDump_data
....@@ -7951,121 +8337,121 @@
79518337 .fpu softvfp
79528338 .type FtlWriteDump_data, %function
79538339 FtlWriteDump_data:
7954
- .fnstart
79558340 @ args = 0, pretend = 0, frame = 32
7956
- @ frame_needed = 0, uses_anonymous_args = 0
7957
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7958
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
7959
- .pad #36
8341
+ @ frame_needed = 1, uses_anonymous_args = 0
8342
+ mov ip, sp
8343
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
8344
+ sub fp, ip, #4
79608345 sub sp, sp, #36
7961
- ldr r4, .L1215
7962
- ldr r7, .L1215+4
8346
+ push {lr}
8347
+ bl __gnu_mcount_nc
8348
+ ldr r4, .L1114
8349
+ mov r3, sp
8350
+ bic r8, r3, #8128
8351
+ bic r8, r8, #63
79638352 ldrh r2, [r4, #28]
7964
- ldr r3, [r7]
8353
+ ldr r3, [r8, #24]
79658354 cmp r2, #0
7966
- str r3, [sp, #28]
7967
- beq .L1196
8355
+ str r3, [fp, #-48]
8356
+ beq .L1096
79688357 ldrb r3, [r4, #32] @ zero_extendqisi2
79698358 cmp r3, #0
7970
- bne .L1196
7971
- movw r3, #302
7972
- ldrb r1, [r4, #31] @ zero_extendqisi2
7973
- ldrh r3, [r4, r3]
7974
- mul r3, r3, r1
8359
+ bne .L1096
8360
+ movw r1, #302
8361
+ ldrb r3, [r4, #31] @ zero_extendqisi2
8362
+ ldrh r1, [r4, r1]
8363
+ mul r3, r1, r3
79758364 cmp r2, r3
7976
- beq .L1196
7977
- ldrb r8, [r4, #34] @ zero_extendqisi2
7978
- cmp r8, #0
7979
- bne .L1195
7980
- ldr r6, [r4, #2552]
7981
- mov r2, r8
7982
- add r1, sp, #4
7983
- ldrh r9, [r4, #232]
7984
- sub r6, r6, #1
7985
- mov r0, r6
8365
+ beq .L1096
8366
+ ldrb r9, [r4, #34] @ zero_extendqisi2
8367
+ cmp r9, #0
8368
+ bne .L1095
8369
+ ldr r7, [r4, #2552]
8370
+ mov r2, r9
8371
+ sub r1, fp, #72
8372
+ ldrh r6, [r4, #232]
8373
+ sub r7, r7, #1
8374
+ mov r0, r7
79868375 bl log2phys
7987
- ldr r3, [sp, #4]
79888376 ldr r5, [r4, #3332]
8377
+ ldr r3, [fp, #-72]
79898378 ldr r0, [r4, #3300]
8379
+ str r3, [fp, #-64]
79908380 cmn r3, #1
7991
- str r3, [sp, #12]
7992
- str r6, [sp, #24]
7993
- str r0, [sp, #16]
7994
- str r5, [sp, #20]
7995
- str r8, [r5, #4]
7996
- beq .L1198
7997
- mov r2, r8
8381
+ str r7, [fp, #-52]
8382
+ str r0, [fp, #-60]
8383
+ str r5, [fp, #-56]
8384
+ str r9, [r5, #4]
8385
+ beq .L1098
8386
+ mov r2, r9
8387
+ sub r0, fp, #68
79988388 mov r1, #1
7999
- add r0, sp, #8
80008389 bl FlashReadPages
8001
-.L1199:
8002
- ldr r10, .L1215+8
8003
- mov r8, #0
8004
- ldr r3, .L1215+12
8005
- lsl r9, r9, #2
8006
- mov fp, r8
8390
+.L1099:
8391
+ ldr r9, .L1114+4
8392
+ lsl r6, r6, #2
8393
+ ldr r3, .L1114+8
8394
+ mov r10, #0
80078395 strh r3, [r5] @ movhi
8008
-.L1200:
8009
- cmp r9, r8
8010
- bne .L1204
8011
-.L1201:
8396
+.L1100:
8397
+ cmp r6, #0
8398
+ bne .L1104
8399
+.L1101:
80128400 mov r3, #1
8013
-.L1214:
8401
+.L1113:
80148402 strb r3, [r4, #34]
8015
-.L1195:
8016
- ldr r2, [sp, #28]
8017
- ldr r3, [r7]
8403
+.L1095:
8404
+ ldr r2, [fp, #-48]
8405
+ ldr r3, [r8, #24]
80188406 cmp r2, r3
8019
- beq .L1206
8407
+ beq .L1106
80208408 bl __stack_chk_fail
8021
-.L1198:
8409
+.L1098:
80228410 movw r3, #310
80238411 mov r1, #255
80248412 ldrh r2, [r4, r3]
80258413 bl ftl_memset
8026
- b .L1199
8027
-.L1204:
8414
+ b .L1099
8415
+.L1104:
80288416 ldrh r3, [r4, #28]
80298417 cmp r3, #0
8030
- beq .L1201
8031
- ldr r3, [sp, #12]
8032
- mov r0, r10
8033
- str r6, [r5, #8]
8034
- add r8, r8, #1
8418
+ beq .L1101
8419
+ ldr r3, [fp, #-64]
8420
+ mov r0, r9
80358421 str r3, [r5, #12]
8422
+ sub r6, r6, #1
80368423 ldrh r3, [r4, #24]
80378424 strh r3, [r5, #2] @ movhi
8425
+ str r7, [r5, #8]
80388426 bl get_new_active_ppa
80398427 ldr r3, [r4, #2592]
8428
+ str r0, [fp, #-64]
80408429 mov r1, #1
8041
- str r0, [sp, #12]
8042
- add r0, sp, #8
8430
+ cmn r3, #2
8431
+ add r2, r3, #1
80438432 str r3, [r5, #4]
8044
- add r3, r3, #1
8045
- cmn r3, #1
8046
- moveq r3, fp
8433
+ sub r0, fp, #68
8434
+ movne r3, r2
8435
+ moveq r3, r10
80478436 str r3, [r4, #2592]
80488437 mov r3, #0
80498438 mov r2, r3
80508439 bl FlashProgPages
80518440 ldrh r0, [r4, #24]
80528441 bl decrement_vpc_count
8053
- b .L1200
8054
-.L1196:
8442
+ b .L1100
8443
+.L1096:
80558444 mov r3, #0
8056
- b .L1214
8057
-.L1206:
8058
- add sp, sp, #36
8059
- @ sp needed
8060
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
8061
-.L1216:
8445
+ b .L1113
8446
+.L1106:
8447
+ sub sp, fp, #40
8448
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
8449
+.L1115:
80628450 .align 2
8063
-.L1215:
8451
+.L1114:
80648452 .word .LANCHOR0
8065
- .word __stack_chk_guard
80668453 .word .LANCHOR0+24
80678454 .word -3947
8068
- .fnend
80698455 .size FtlWriteDump_data, .-FtlWriteDump_data
80708456 .align 2
80718457 .global FtlReUsePrevPpa
....@@ -8074,86 +8460,94 @@
80748460 .fpu softvfp
80758461 .type FtlReUsePrevPpa, %function
80768462 FtlReUsePrevPpa:
8077
- .fnstart
80788463 @ args = 0, pretend = 0, frame = 8
8079
- @ frame_needed = 0, uses_anonymous_args = 0
8080
- push {r0, r1, r4, r5, r6, r7, r8, lr}
8081
- .save {r4, r5, r6, r7, r8, lr}
8082
- .pad #8
8083
- mov r7, r0
8084
- ldr r5, .L1228
8464
+ @ frame_needed = 1, uses_anonymous_args = 0
8465
+ mov ip, sp
8466
+ push {r4, r5, r6, r7, r8, fp, ip, lr, pc}
8467
+ sub fp, ip, #4
8468
+ sub sp, sp, #12
8469
+ push {lr}
8470
+ bl __gnu_mcount_nc
8471
+ ldr r4, .L1126
8472
+ mov r6, r0
80858473 ubfx r0, r1, #10, #16
8086
- str r1, [sp, #4]
8474
+ str r1, [fp, #-40]
80878475 bl P2V_block_in_plane
8088
- ldr r2, [r5, #72]
8089
- lsl r6, r0, #1
8090
- ldrh r3, [r2, r6]
8476
+ lsl r5, r0, #1
8477
+ mov r7, r0
8478
+ ldr r3, [r4, #72]
8479
+ ldrh r2, [r3, r5]
8480
+ cmp r2, #0
8481
+ addne r2, r2, #1
8482
+ strhne r2, [r3, r5] @ movhi
8483
+ bne .L1118
8484
+ ldr r3, [r4, #2532]
80918485 cmp r3, #0
8092
- bne .L1218
8093
- ldr r4, [r5, #2532]
8094
- cmp r4, #0
8095
- beq .L1219
8096
- ldr r1, [r5, #2516]
8486
+ beq .L1118
8487
+ ldr r1, [r4, #2516]
80978488 mov lr, #6
8098
- ldr r2, .L1228+4
8489
+ ldr ip, .L1126+4
80998490 movw r8, #65535
8100
- ldrh ip, [r5, #224]
8101
- sub r4, r4, r1
8102
- asr r4, r4, #1
8103
- mul r4, r2, r4
8104
- uxth r4, r4
8105
-.L1220:
8106
- uxth r2, r3
8107
- cmp ip, r2
8108
- bls .L1219
8109
- cmp r4, r0
8110
- bne .L1221
8111
- mov r1, r4
8112
- ldr r0, .L1228+8
8491
+ sub r3, r3, r1
8492
+ ldrh r0, [r4, #224]
8493
+ asr r3, r3, #1
8494
+ mul r3, ip, r3
8495
+ uxth r3, r3
8496
+.L1119:
8497
+ uxth ip, r2
8498
+ cmp r0, ip
8499
+ bls .L1118
8500
+ cmp r3, r7
8501
+ bne .L1120
8502
+ ldr r0, .L1126+8
8503
+ mov r1, r7
81138504 bl List_remove_node
8114
- ldrh r3, [r5, #224]
8505
+ ldrh r3, [r4, #224]
81158506 cmp r3, #0
8116
- bne .L1222
8507
+ bne .L1121
8508
+ ldr r1, .L1126+12
81178509 movw r2, #1742
8118
- ldr r1, .L1228+12
8119
- ldr r0, .L1228+16
8510
+ ldr r0, .L1126+16
81208511 bl sftl_printk
8121
-.L1222:
8122
- ldrh r3, [r5, #224]
8123
- mov r0, r4
8124
- sub r3, r3, #1
8125
- strh r3, [r5, #224] @ movhi
8126
- bl INSERT_DATA_LIST
8127
- ldr r2, [r5, #72]
8128
- ldrh r3, [r2, r6]
8129
-.L1218:
8130
- add r3, r3, #1
8131
- strh r3, [r2, r6] @ movhi
8132
- b .L1219
8133
-.L1221:
8134
- mul r4, lr, r4
8135
- add r3, r3, #1
8136
- ldrh r4, [r1, r4]
8137
- cmp r4, r8
8138
- bne .L1220
8139
-.L1219:
8140
- mov r2, #1
8141
- add r1, sp, #4
8512
+.L1121:
8513
+ ldrh r3, [r4, #224]
81428514 mov r0, r7
8515
+ sub r3, r3, #1
8516
+ strh r3, [r4, #224] @ movhi
8517
+ bl INSERT_DATA_LIST
8518
+ ldr r2, [r4, #72]
8519
+ ldrh r3, [r2, r5]
8520
+ add r3, r3, #1
8521
+ strh r3, [r2, r5] @ movhi
8522
+.L1118:
8523
+ sub r1, fp, #40
8524
+ mov r0, r6
8525
+ mov r2, #1
81438526 bl log2phys
8144
- add sp, sp, #8
8145
- @ sp needed
8146
- pop {r4, r5, r6, r7, r8, pc}
8147
-.L1229:
8527
+ sub sp, fp, #32
8528
+ ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
8529
+.L1120:
8530
+ mul r3, lr, r3
8531
+ add r2, r2, #1
8532
+ ldrh r3, [r1, r3]
8533
+ cmp r3, r8
8534
+ bne .L1119
8535
+ b .L1118
8536
+.L1127:
81488537 .align 2
8149
-.L1228:
8538
+.L1126:
81508539 .word .LANCHOR0
81518540 .word -1431655765
81528541 .word .LANCHOR0+2532
81538542 .word .LANCHOR1+419
81548543 .word .LC8
8155
- .fnend
81568544 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa
8545
+ .section .rodata.str1.1
8546
+.LC109:
8547
+ .ascii "data prev_ppa = %x error...................\012\000"
8548
+.LC110:
8549
+ .ascii "spuer block %x vpn is 0\012 \000"
8550
+ .text
81578551 .align 2
81588552 .global FtlRecoverySuperblock
81598553 .syntax unified
....@@ -8161,619 +8555,645 @@
81618555 .fpu softvfp
81628556 .type FtlRecoverySuperblock, %function
81638557 FtlRecoverySuperblock:
8164
- .fnstart
8165
- @ args = 0, pretend = 0, frame = 48
8166
- @ frame_needed = 0, uses_anonymous_args = 0
8167
- ldr r3, .L1364
8168
- movw r2, #65535
8169
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8170
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8171
- .pad #52
8172
- sub sp, sp, #52
8173
- ldr r3, [r3]
8174
- str r3, [sp, #44]
8558
+ @ args = 0, pretend = 0, frame = 64
8559
+ @ frame_needed = 1, uses_anonymous_args = 0
8560
+ mov ip, sp
8561
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
8562
+ sub fp, ip, #4
8563
+ sub sp, sp, #68
8564
+ push {lr}
8565
+ bl __gnu_mcount_nc
8566
+ mov r3, sp
8567
+ movw r1, #65535
8568
+ bic r3, r3, #8128
8569
+ mov r10, r0
8570
+ bic r3, r3, #63
8571
+ ldr r3, [r3, #24]
8572
+ str r3, [fp, #-48]
81758573 ldrh r3, [r0]
8176
- cmp r3, r2
8177
- beq .L1232
8178
- ldrh r3, [r0, #2]
8179
- mov fp, r0
8180
- ldr r5, .L1364+4
8181
- str r3, [sp, #8]
8182
- ldrb r3, [r0, #6] @ zero_extendqisi2
8183
- ldr r1, [sp, #8]
8184
- str r3, [sp, #28]
8185
- movw r3, #302
8186
- ldrh r3, [r5, r3]
81878574 cmp r3, r1
8575
+ beq .L1130
8576
+ ldrh r3, [r0, #2]
8577
+ ldr r5, .L1257
8578
+ str r3, [fp, #-72]
8579
+ ldrb r3, [r0, #6] @ zero_extendqisi2
8580
+ str r3, [fp, #-92]
8581
+ movw r3, #302
8582
+ ldrh r2, [r5, r3]
8583
+ ldr r3, [fp, #-72]
8584
+ cmp r2, r3
81888585 mov r3, #0
8586
+ strheq r2, [r0, #2] @ movhi
81898587 strheq r3, [r0, #4] @ movhi
81908588 ldrhne r0, [r0, #16]
8191
- bne .L1234
8192
-.L1362:
8193
- strb r3, [fp, #6]
8194
-.L1232:
8195
- ldr r3, .L1364
8196
- mov r0, #0
8197
- ldr r2, [sp, #44]
8198
- ldr r3, [r3]
8589
+ bne .L1132
8590
+.L1255:
8591
+ strb r3, [r10, #6]
8592
+.L1130:
8593
+ mov r3, sp
8594
+ ldr r2, [fp, #-48]
8595
+ bic r3, r3, #8128
8596
+ bic r3, r3, #63
8597
+ ldr r3, [r3, #24]
81998598 cmp r2, r3
8200
- beq .L1300
8599
+ beq .L1196
82018600 bl __stack_chk_fail
8202
-.L1235:
8203
- uxth r1, r3
8204
- add r1, fp, r1, lsl #1
8205
- ldrh r0, [r1, #16]
8206
-.L1234:
8207
- cmp r0, r2
8601
+.L1133:
8602
+ uxth r2, r3
8603
+ add r2, r10, r2, lsl #1
8604
+ ldrh r0, [r2, #16]
8605
+.L1132:
82088606 uxth r6, r3
8607
+ cmp r0, r1
82098608 add r3, r3, #1
8210
- beq .L1235
8609
+ beq .L1133
82118610 mov r1, #1
82128611 bl FtlGetLastWrittenPage
8213
- cmn r0, #1
82148612 mov r4, r0
8215
- beq .L1236
8216
- ldrh r3, [r5, #232]
8217
- mov r2, #0
8218
- ldr r0, [r5, #3288]
8219
- mov r6, r2
8220
- movw r8, #65535
8221
- mov r9, #20
8222
- str r3, [sp, #4]
8613
+ cmn r0, #1
8614
+ beq .L1134
82238615 ldr r3, [r5, #3176]
8224
- str r3, [sp, #12]
8616
+ add r2, r10, #16
8617
+ str r3, [fp, #-64]
82258618 movw r3, #310
8619
+ ldr r0, [r5, #3288]
8620
+ movw r8, #65535
82268621 ldrh lr, [r5, r3]
8227
- ldr r3, .L1364+8
8228
- ldr r5, [r5, #3180]
8622
+ mov r9, #20
8623
+ ldr r3, .L1257+4
8624
+ ldr r6, [r5, #3180]
82298625 ldrh r7, [r3]
8230
- add r3, fp, #16
8231
- mov ip, r3
8232
- str r3, [sp, #24]
8233
-.L1237:
8234
- ldr r1, [sp, #4]
8235
- uxth r3, r2
8236
- cmp r3, r1
8237
- bcc .L1241
8238
- ldr r5, .L1364+4
8626
+ add r3, r10, #16
8627
+ str r3, [fp, #-84]
8628
+ ldrh r3, [r5, #232]
8629
+ mov r5, #0
8630
+ add r3, r10, r3, lsl #1
8631
+ add r3, r3, #16
8632
+ str r3, [fp, #-68]
8633
+.L1135:
8634
+ ldr r3, [fp, #-68]
8635
+ cmp r3, r2
8636
+ bne .L1139
82398637 mov r2, #0
8240
- mov r1, r6
8241
- movw r9, #65535
8638
+ mov r1, r5
82428639 bl FlashReadPages
8243
- ldr r3, [r5, #2592]
8640
+ ldr r3, .L1257
8641
+ mov r8, #0
8642
+ ldr r6, [r3, #3288]
8643
+ ldr r2, [r3, #2592]
8644
+ mov r9, r6
8645
+ sub r2, r2, #1
8646
+ str r2, [fp, #-64]
8647
+ movw r2, #65535
8648
+ str r2, [fp, #-80]
82448649 uxth r2, r4
8245
- ldr r8, [r5, #3288]
8246
- str r2, [sp, #12]
8247
- sub r3, r3, #1
8248
- str r3, [sp, #4]
8249
- mov r7, r8
8250
- mov r3, #0
8251
-.L1242:
8252
- uxth r2, r3
8253
- cmp r6, r2
8254
- bhi .L1247
8255
- addeq r10, r4, #1
8256
- uxtheq r10, r10
8257
- bne .L1245
8258
-.L1357:
8259
- ldr r0, [r8, #4]
8650
+ str r2, [fp, #-68]
8651
+.L1140:
8652
+ uxth r2, r8
8653
+ cmp r5, r2
8654
+ bhi .L1145
8655
+ addeq r3, r4, #1
8656
+ uxtheq r3, r3
8657
+ streq r3, [fp, #-68]
8658
+ bne .L1143
8659
+.L1249:
8660
+ ldr r0, [r6, #4]
82608661 ubfx r0, r0, #10, #16
82618662 bl P2V_plane
8262
- movw r3, #302
8263
- str r0, [sp, #12]
8264
- ldrh r3, [r5, r3]
8265
- ldr r2, [sp, #12]
8266
- ldr r1, [sp, #28]
8267
- cmp r3, r10
8268
- moveq r3, #0
8269
- strheq r10, [fp, #2] @ movhi
8270
- strbeq r3, [fp, #6]
8271
- strheq r3, [fp, #4] @ movhi
8272
- ldr r3, [sp, #8]
8273
- cmp r10, r3
8274
- cmpeq r2, r1
8275
- bne .L1250
8276
-.L1363:
8277
- mov r1, r10
8278
- mov r0, fp
8279
- bl ftl_sb_update_avl_pages
8280
- b .L1232
8281
-.L1236:
8282
- ldr r3, [sp, #8]
8283
- cmp r3, #0
8284
- beq .L1238
8285
- movw r2, #1809
8286
- ldr r1, .L1364+12
8287
- ldr r0, .L1364+16
8288
- bl sftl_printk
8289
-.L1238:
8290
- ldr r3, [sp, #28]
8291
- cmp r3, #0
8292
- cmpne r6, r3
8293
- beq .L1239
8294
- movw r2, #1810
8295
- ldr r1, .L1364+12
8296
- ldr r0, .L1364+16
8297
- bl sftl_printk
8298
-.L1239:
8299
- mov r3, #0
8300
- strh r3, [fp, #2] @ movhi
8301
- b .L1362
8302
-.L1241:
8303
- ldrh r3, [ip], #2
8304
- cmp r3, r8
8305
- beq .L1240
8306
- mla r1, r9, r6, r0
8307
- orr r3, r4, r3, lsl #10
8308
- str r3, [r1, #4]
8309
- mul r3, lr, r6
8310
- add r10, r3, #3
8311
- cmp r3, #0
8312
- movlt r3, r10
8313
- ldr r10, [sp, #12]
8314
- bic r3, r3, #3
8315
- add r3, r10, r3
8316
- str r3, [r1, #8]
8317
- mul r3, r7, r6
8318
- add r6, r6, #1
8319
- uxth r6, r6
8320
- add r10, r3, #3
8321
- cmp r3, #0
8322
- movlt r3, r10
8323
- bic r3, r3, #3
8324
- add r3, r5, r3
8325
- str r3, [r1, #12]
8326
-.L1240:
8327
- add r2, r2, #1
8328
- b .L1237
8329
-.L1247:
8330
- ldr r2, [r7]
8663
+ ldr r3, .L1257
8664
+ movw r2, #302
8665
+ ldr r1, [fp, #-68]
8666
+ str r0, [fp, #-76]
8667
+ ldrh r2, [r3, r2]
8668
+ cmp r2, r1
8669
+ bne .L1147
8670
+ mov r2, #0
8671
+ strh r1, [r10, #2] @ movhi
8672
+ strb r2, [r10, #6]
8673
+ strh r2, [r10, #4] @ movhi
8674
+.L1147:
8675
+ sub r0, fp, #76
8676
+ ldr ip, [fp, #-92]
8677
+ ldm r0, {r0, r1, r2}
8678
+ cmp r2, r1
8679
+ cmpeq r0, ip
8680
+ moveq r2, r0
8681
+ ldreq r1, [fp, #-68]
8682
+ beq .L1256
8683
+ ldr r1, [fp, #-80]
8684
+ movw r2, #65535
8685
+ cmp r1, r2
8686
+ bne .L1149
8687
+ ldrb r2, [r10, #8] @ zero_extendqisi2
83318688 cmp r2, #0
8332
- bne .L1243
8333
- ldr r10, [r7, #12]
8334
- ldr r2, [r10, #4]
8689
+ bne .L1150
8690
+.L1149:
8691
+ ldr r2, [r3, #3448]
8692
+ uxth r9, r4
8693
+ ldr r6, .L1257
83358694 cmn r2, #1
8336
- beq .L1244
8337
- ldr r1, [r5, #2592]
8338
- mov r0, r2
8339
- bl ftl_cmp_data_ver
8340
- cmp r0, #0
8341
- addne r2, r2, #1
8342
- strne r2, [r5, #2592]
8343
-.L1244:
8344
- ldr r2, [r10]
8345
- cmn r2, #1
8346
- bne .L1246
8347
-.L1245:
8348
- uxth r3, r3
8349
- mov r2, #20
8350
- uxth r10, r4
8351
- mla r8, r2, r3, r8
8352
- b .L1357
8353
-.L1243:
8354
- ldr r9, [sp, #12]
8355
-.L1246:
8356
- add r3, r3, #1
8357
- add r7, r7, #20
8358
- b .L1242
8359
-.L1250:
8360
- movw r3, #65535
8361
- cmp r9, r3
8362
- bne .L1251
8363
- ldrb r3, [fp, #8] @ zero_extendqisi2
8364
- cmp r3, #0
8365
- bne .L1252
8366
-.L1251:
8367
- ldr r3, [r5, #3448]
8368
- uxth r7, r4
8369
- uxth r4, r4
8370
- ldr r6, .L1364+4
8371
- movw r8, #65535
8372
- cmn r3, #1
8373
- ldreq r3, [sp, #4]
8374
- streq r3, [r5, #3448]
8375
- ldr r3, [sp, #8]
8695
+ ldreq r2, [fp, #-64]
8696
+ streq r2, [r3, #3448]
8697
+ uxth r2, r4
8698
+ ldr r3, [fp, #-72]
83768699 add r3, r3, #7
8377
- cmp r4, r3
8378
- subgt r4, r7, #7
8379
- ldrle r4, [sp, #8]
8380
- uxthgt r4, r4
8381
-.L1255:
8382
- cmp r4, r7
8383
- bhi .L1262
8384
- mov r3, #0
8385
- ldrh lr, [r6, #232]
8700
+ cmp r3, r2
8701
+ sublt r4, r4, #7
8702
+ ldrge r4, [fp, #-72]
8703
+ uxthlt r4, r4
8704
+.L1153:
83868705 ldr r0, [r6, #3288]
8387
- mov r5, r3
8388
- ldr r1, [sp, #24]
8389
- mov ip, #20
8390
- b .L1263
8391
-.L1257:
8392
- ldrh r2, [r1], #2
8393
- add r3, r3, #1
8394
- cmp r2, r8
8395
- mlane r9, ip, r5, r0
8396
- addne r5, r5, #1
8397
- orrne r2, r4, r2, lsl #10
8398
- uxthne r5, r5
8399
- strne r2, [r9, #4]
8400
-.L1263:
8706
+ cmp r4, r9
8707
+ ldrh ip, [r6, #232]
8708
+ bls .L1198
8709
+ mvn r3, #0
8710
+ str r3, [r6, #3448]
8711
+.L1150:
8712
+ ldr r4, .L1257+8
8713
+ mov r3, #1
8714
+ ldr r9, [fp, #-72]
8715
+ strh r3, [r4] @ movhi
8716
+ sub r4, r4, #3472
8717
+.L1161:
8718
+ ldrh ip, [r4, #232]
8719
+ mov r3, #0
8720
+ ldr r0, [r4, #3288]
8721
+ movw lr, #65535
8722
+ ldr r1, [fp, #-84]
8723
+ mov r5, #20
8724
+ str r3, [fp, #-80]
8725
+.L1162:
84018726 uxth r2, r3
8402
- cmp lr, r2
8403
- bhi .L1257
8727
+ cmp ip, r2
8728
+ bhi .L1164
8729
+ ldr r1, [fp, #-80]
8730
+ mov r2, #0
8731
+ bl FlashReadPages
8732
+ mov r3, #0
8733
+.L1254:
8734
+ str r3, [fp, #-88]
8735
+ ldr r2, [fp, #-80]
8736
+ ldrh r3, [fp, #-88]
8737
+ cmp r3, r2
8738
+ bcc .L1192
8739
+ add r3, r9, #1
8740
+ uxth r9, r3
8741
+ ldr r3, .L1257+12
8742
+ ldrh r3, [r3]
8743
+ cmp r3, r9
8744
+ bne .L1161
8745
+ ldrh r1, [r4, #232]
8746
+ mov r3, #0
8747
+ strh r9, [r10, #2] @ movhi
8748
+ movw r0, #65535
8749
+ strh r3, [r10, #4] @ movhi
8750
+.L1193:
8751
+ uxth r2, r3
8752
+ cmp r1, r2
8753
+ bls .L1130
8754
+ ldr r2, [fp, #-84]
8755
+ ldrh ip, [r2], #2
8756
+ str r2, [fp, #-84]
8757
+ add r2, r3, #1
8758
+ cmp ip, r0
8759
+ bne .L1255
8760
+ mov r3, r2
8761
+ b .L1193
8762
+.L1134:
8763
+ ldr r3, [fp, #-72]
8764
+ cmp r3, #0
8765
+ beq .L1136
8766
+ ldr r1, .L1257+16
8767
+ movw r2, #1809
8768
+ ldr r0, .L1257+20
8769
+ bl sftl_printk
8770
+.L1136:
8771
+ ldr r3, [fp, #-92]
8772
+ cmp r3, #0
8773
+ cmpne r3, r6
8774
+ beq .L1137
8775
+ ldr r1, .L1257+16
8776
+ movw r2, #1810
8777
+ ldr r0, .L1257+20
8778
+ bl sftl_printk
8779
+.L1137:
8780
+ mov r3, #0
8781
+ strh r3, [r10, #2] @ movhi
8782
+ b .L1255
8783
+.L1139:
8784
+ ldrh r3, [r2], #2
8785
+ cmp r3, r8
8786
+ beq .L1135
8787
+ mla r1, r9, r5, r0
8788
+ orr r3, r4, r3, lsl #10
8789
+ mul ip, lr, r5
8790
+ cmp ip, #0
8791
+ str r3, [r1, #4]
8792
+ add r3, ip, #3
8793
+ movge r3, ip
8794
+ ldr ip, [fp, #-64]
8795
+ bic r3, r3, #3
8796
+ add r3, ip, r3
8797
+ mul ip, r7, r5
8798
+ str r3, [r1, #8]
8799
+ add r5, r5, #1
8800
+ cmp ip, #0
8801
+ add r3, ip, #3
8802
+ movge r3, ip
8803
+ uxth r5, r5
8804
+ bic r3, r3, #3
8805
+ add r3, r6, r3
8806
+ str r3, [r1, #12]
8807
+ b .L1135
8808
+.L1145:
8809
+ ldr r2, [r9]
8810
+ cmp r2, #0
8811
+ bne .L1141
8812
+ ldr r2, [r9, #12]
8813
+ ldr r7, [r2, #4]
8814
+ cmn r7, #1
8815
+ beq .L1142
8816
+ ldr r1, [r3, #2592]
8817
+ mov r0, r7
8818
+ str r2, [fp, #-76]
8819
+ bl ftl_cmp_data_ver
8820
+ ldr r3, .L1257
8821
+ cmp r0, #0
8822
+ ldr r2, [fp, #-76]
8823
+ addne r7, r7, #1
8824
+ strne r7, [r3, #2592]
8825
+.L1142:
8826
+ ldr r2, [r2]
8827
+ cmn r2, #1
8828
+ bne .L1144
8829
+.L1143:
8830
+ uxth r3, r4
8831
+ str r3, [fp, #-68]
8832
+ mov r3, #20
8833
+ mla r6, r3, r8, r6
8834
+ b .L1249
8835
+.L1141:
8836
+ ldr r2, [fp, #-68]
8837
+ str r2, [fp, #-80]
8838
+.L1144:
8839
+ add r8, r8, #1
8840
+ add r9, r9, #20
8841
+ b .L1140
8842
+.L1155:
8843
+ ldrh r2, [r1], #2
8844
+ cmp r2, lr
8845
+ beq .L1154
8846
+ mla r8, r7, r5, r0
8847
+ add r5, r5, #1
8848
+ orr r2, r4, r2, lsl #10
8849
+ uxth r5, r5
8850
+ str r2, [r8, #4]
8851
+.L1154:
8852
+ add r3, r3, #1
8853
+.L1160:
8854
+ uxth r2, r3
8855
+ cmp ip, r2
8856
+ bhi .L1155
84048857 mov r2, #0
84058858 mov r1, r5
84068859 bl FlashReadPages
84078860 ldr r3, [r6, #3288]
8408
- mov r2, #20
8409
- mla r5, r2, r5, r3
8410
-.L1258:
8411
- cmp r5, r3
8412
- addeq r4, r4, #1
8413
- uxtheq r4, r4
8414
- beq .L1255
8415
-.L1261:
8416
- ldr r2, [r3]
8417
- cmp r2, #0
8418
- bne .L1252
8419
- ldr r2, [r3, #12]
8420
- ldrh r1, [r2]
8421
- cmp r1, r8
8422
- beq .L1260
8423
- ldr r2, [r2, #4]
8424
- cmn r2, #1
8425
- strne r2, [r6, #3448]
8426
-.L1260:
8427
- add r3, r3, #20
8428
- b .L1258
8429
-.L1262:
8430
- mvn r3, #0
8431
- str r3, [r6, #3448]
8432
-.L1252:
8433
- ldr r4, .L1364+20
8434
- mov r3, #1
8435
- ldr r9, [sp, #8]
8436
- strh r3, [r4] @ movhi
8437
- sub r4, r4, #3472
8438
-.L1264:
8439
- ldrh ip, [r4, #232]
8440
- movw lr, #65535
8441
- ldr r0, [r4, #3288]
8442
- mov r5, #20
8443
- ldr r1, [sp, #24]
8444
- mov r3, #0
8445
- str r3, [sp, #16]
8446
-.L1265:
8447
- uxth r2, r3
8448
- cmp ip, r2
8449
- bhi .L1267
84508861 mov r2, #0
8451
- ldr r1, [sp, #16]
8452
- bl FlashReadPages
8453
- mov r3, #0
8454
-.L1361:
8455
- str r3, [sp, #20]
8456
- ldr r2, [sp, #16]
8457
- ldrh r3, [sp, #20]
8458
- cmp r2, r3
8459
- bhi .L1295
8460
- ldr r3, .L1364+24
8461
- add r9, r9, #1
8462
- uxth r9, r9
8463
- ldrh r3, [r3]
8464
- cmp r3, r9
8465
- bne .L1264
8466
- ldrh r2, [r4, #232]
84678862 movw r0, #65535
8863
+.L1156:
8864
+ uxth r1, r2
8865
+ cmp r5, r1
8866
+ bhi .L1159
8867
+ add r4, r4, #1
8868
+ uxth r4, r4
8869
+ b .L1153
8870
+.L1198:
84688871 mov r3, #0
8469
- strh r9, [fp, #2] @ movhi
8470
- strh r3, [fp, #4] @ movhi
8471
-.L1296:
8472
- uxth r1, r3
8473
- cmp r1, r2
8474
- bcs .L1232
8475
- ldr r1, [sp, #24]
8476
- ldrh ip, [r1], #2
8872
+ ldr r1, [fp, #-84]
8873
+ mov r5, r3
8874
+ movw lr, #65535
8875
+ mov r7, #20
8876
+ b .L1160
8877
+.L1159:
8878
+ ldr r1, [r3]
8879
+ cmp r1, #0
8880
+ bne .L1150
8881
+ ldr r1, [r3, #12]
8882
+ ldrh ip, [r1]
84778883 cmp ip, r0
8478
- str r1, [sp, #24]
8479
- add r1, r3, #1
8480
- bne .L1362
8481
- mov r3, r1
8482
- b .L1296
8483
-.L1267:
8884
+ beq .L1158
8885
+ ldr r1, [r1, #4]
8886
+ cmn r1, #1
8887
+ strne r1, [r6, #3448]
8888
+.L1158:
8889
+ add r2, r2, #1
8890
+ add r3, r3, #20
8891
+ b .L1156
8892
+.L1164:
84848893 ldrh r2, [r1], #2
84858894 cmp r2, lr
8486
- beq .L1266
8487
- ldr r6, [sp, #16]
8895
+ beq .L1163
8896
+ ldr r6, [fp, #-80]
84888897 orr r2, r9, r2, lsl #10
84898898 mla r6, r5, r6, r0
84908899 str r2, [r6, #4]
8491
- ldr r2, [sp, #16]
8900
+ ldr r2, [fp, #-80]
84928901 add r2, r2, #1
84938902 uxth r2, r2
8494
- str r2, [sp, #16]
8495
-.L1266:
8903
+ str r2, [fp, #-80]
8904
+.L1163:
84968905 add r3, r3, #1
8497
- b .L1265
8498
-.L1295:
8499
- ldr r3, [sp, #20]
8500
- mov r6, #20
8906
+ b .L1162
8907
+.L1192:
8908
+ ldr r3, [fp, #-88]
8909
+ mov r5, #20
85018910 ldr r8, [r4, #3288]
8502
- mul r6, r6, r3
8503
- add r7, r8, r6
8504
- ldr r5, [r7, #4]
8505
- ubfx r0, r5, #10, #16
8506
- str r5, [sp, #40]
8507
- bl P2V_plane
8508
- ldr r3, [sp, #8]
8911
+ mul r5, r5, r3
8912
+ ldr r3, [fp, #-72]
8913
+ add r7, r8, r5
85098914 cmp r9, r3
8510
- bcc .L1269
8511
- ldr r2, [sp, #28]
8512
- moveq r3, #1
8513
- movne r3, #0
8915
+ ldr r6, [r7, #4]
8916
+ str r6, [fp, #-52]
8917
+ bcc .L1166
8918
+ ubfx r0, r6, #10, #16
8919
+ bl P2V_plane
8920
+ ldr r3, [fp, #-72]
8921
+ ldr r2, [fp, #-92]
8922
+ sub r3, r9, r3
8923
+ clz r3, r3
85148924 cmp r2, r0
8925
+ lsr r3, r3, #5
85158926 movls r3, #0
8516
- andhi r3, r3, #1
85178927 cmp r3, #0
8518
- bne .L1269
8519
- ldr r3, [sp, #12]
8520
- cmp r9, r10
8521
- cmpeq r3, r0
8522
- beq .L1270
8523
- ldr r3, [r8, r6]
8928
+ bne .L1166
8929
+ ldr r3, [fp, #-68]
8930
+ ldr r2, [fp, #-76]
8931
+ cmp r9, r3
8932
+ cmpeq r2, r0
8933
+ bne .L1167
8934
+ ldr r3, [fp, #-68]
8935
+ strb r2, [r10, #6]
8936
+ mov r1, r3
8937
+ strh r3, [r10, #2] @ movhi
8938
+.L1256:
8939
+ mov r0, r10
8940
+ bl ftl_sb_update_avl_pages
8941
+ b .L1130
8942
+.L1167:
8943
+ ldr r3, [r8, r5]
85248944 cmn r3, #1
8525
- beq .L1271
8945
+ beq .L1168
85268946 ldr r7, [r7, #12]
85278947 movw r3, #61589
8528
- ldrh r2, [r7]
8529
- cmp r2, r3
8530
- ldrhne r0, [fp]
8531
- bne .L1358
8948
+ ldrh r6, [r7]
8949
+ cmp r6, r3
8950
+ ldrhne r0, [r10]
8951
+ bne .L1251
85328952 ldr r3, [r7, #4]
8953
+ str r3, [fp, #-64]
85338954 cmn r3, #1
8534
- str r3, [sp, #4]
8535
- beq .L1273
8536
- mov r0, r3
8955
+ beq .L1171
85378956 ldr r1, [r4, #2592]
8957
+ mov r0, r3
85388958 bl ftl_cmp_data_ver
85398959 cmp r0, #0
8540
- ldrne r3, [sp, #4]
8541
- addne r3, r3, #1
8542
- strne r3, [r4, #2592]
8543
-.L1273:
8544
- ldrh r2, [r7]
8545
- movw r3, #61589
8546
- cmp r2, r3
8547
- beq .L1274
8960
+ beq .L1171
8961
+ ldr r3, [fp, #-64]
8962
+ add r3, r3, #1
8963
+ str r3, [r4, #2592]
8964
+ ldrh r3, [r7]
8965
+ cmp r3, r6
8966
+ beq .L1171
8967
+ ldr r1, .L1257+16
85488968 movw r2, #1961
8549
- ldr r1, .L1364+12
8550
- ldr r0, .L1364+16
8969
+ ldr r0, .L1257+20
85518970 bl sftl_printk
8552
-.L1274:
8553
- ldr r5, [r7, #8]
8554
- add r1, sp, #36
8971
+.L1171:
8972
+ ldr r6, [r7, #8]
8973
+ sub r1, fp, #56
85558974 ldr r3, [r7, #12]
85568975 mov r2, #0
8557
- mov r0, r5
8558
- str r3, [sp, #32]
8976
+ mov r0, r6
8977
+ str r3, [fp, #-60]
85598978 bl log2phys
85608979 ldr r1, [r4, #3448]
85618980 cmn r1, #1
8562
- beq .L1275
8563
- ldr r0, [sp, #4]
8981
+ beq .L1173
8982
+ ldr r0, [fp, #-64]
85648983 bl ftl_cmp_data_ver
85658984 cmp r0, #0
8566
- beq .L1275
8567
- ldr r3, [sp, #32]
8985
+ beq .L1173
8986
+ ldr r3, [fp, #-60]
85688987 cmn r3, #1
8569
- beq .L1276
8988
+ beq .L1174
85708989 ldr r0, [r4, #3288]
85718990 mov r2, #0
85728991 mov r1, #1
8573
- add r0, r0, r6
8992
+ add r0, r0, r5
85748993 str r3, [r0, #4]
85758994 ldr r7, [r0, #12]
85768995 bl FlashReadPages
8577
- ldr r2, [r4, #3288]
8578
- ldr r1, [r2, r6]
8579
- add r3, r2, r6
8580
- cmn r1, #1
8581
- bne .L1277
8582
-.L1278:
8996
+ ldr r8, [r4, #3288]
8997
+ add r3, r8, r5
8998
+ ldr r2, [r8, r5]
8999
+ cmn r2, #1
9000
+ bne .L1175
9001
+.L1176:
85839002 mvn r3, #0
8584
- str r3, [sp, #32]
8585
-.L1285:
8586
- ldr r7, [sp, #32]
8587
- cmn r7, #1
8588
- beq .L1269
8589
-.L1299:
8590
- ubfx r0, r7, #10, #16
9003
+ str r3, [fp, #-60]
9004
+.L1183:
9005
+ ldr r0, [fp, #-60]
9006
+ cmn r0, #1
9007
+ beq .L1166
9008
+ ubfx r0, r0, #10, #16
85919009 bl P2V_block_in_plane
85929010 ldrh r3, [r4, #240]
85939011 mov r5, r0
85949012 cmp r3, r0
8595
- bhi .L1291
9013
+ bhi .L1188
9014
+ ldr r1, .L1257+16
85969015 movw r2, #2066
8597
- ldr r1, .L1364+12
8598
- ldr r0, .L1364+16
9016
+ ldr r0, .L1257+20
85999017 bl sftl_printk
8600
-.L1291:
9018
+.L1188:
86019019 ldr r2, [r4, #72]
86029020 lsl r3, r5, #1
86039021 ldrh r3, [r2, r3]
86049022 cmp r3, #0
8605
- beq .L1292
9023
+ beq .L1189
86069024 mov r0, r5
8607
-.L1358:
9025
+.L1251:
86089026 bl decrement_vpc_count
8609
- b .L1269
8610
-.L1276:
8611
- ldr r3, [sp, #40]
8612
- ldr r2, [sp, #36]
9027
+ b .L1166
9028
+.L1174:
9029
+ ldrd r2, [fp, #-56]
86139030 cmp r2, r3
8614
- bne .L1269
9031
+ bne .L1166
9032
+ sub r1, fp, #60
9033
+ mov r0, r6
86159034 mov r2, #1
8616
- add r1, sp, #32
8617
- mov r0, r5
86189035 bl log2phys
8619
-.L1269:
8620
- ldr r3, [sp, #20]
9036
+.L1166:
9037
+ ldr r3, [fp, #-88]
86219038 add r3, r3, #1
8622
- b .L1361
8623
-.L1277:
8624
- ldr r1, [r7, #8]
8625
- cmp r5, r1
8626
- bne .L1278
8627
- ldr r8, [r7, #4]
8628
- ldr r0, [r4, #3448]
8629
- mov r1, r8
8630
- bl ftl_cmp_data_ver
8631
- cmp r0, #0
8632
- beq .L1278
8633
- ldr r1, [sp, #36]
8634
- ldr r0, [sp, #40]
8635
- cmp r1, r0
8636
- bne .L1280
8637
-.L1283:
8638
- ldr r1, [sp, #32]
8639
- mov r0, r5
8640
- bl FtlReUsePrevPpa
8641
- b .L1278
8642
-.L1280:
8643
- ldr r0, [sp, #32]
8644
- cmp r1, r0
8645
- beq .L1278
8646
- cmn r1, #1
8647
- streq r1, [r2, r6]
8648
- beq .L1282
8649
- str r1, [r3, #4]
8650
- mov r2, #0
8651
- mov r1, #1
8652
- mov r0, r3
8653
- ldr r7, [r3, #12]
8654
- bl FlashReadPages
8655
-.L1282:
8656
- ldr r3, [r4, #3288]
8657
- ldr r3, [r3, r6]
8658
- cmn r3, #1
8659
- beq .L1283
9039
+ b .L1254
9040
+.L1175:
9041
+ ldr r2, [r7, #8]
9042
+ str r2, [fp, #-100]
9043
+ cmp r2, r6
9044
+ bne .L1176
9045
+ str r3, [fp, #-104]
86609046 ldr r3, [r7, #4]
86619047 ldr r0, [r4, #3448]
86629048 mov r1, r3
9049
+ str r3, [fp, #-96]
86639050 bl ftl_cmp_data_ver
86649051 cmp r0, #0
8665
- beq .L1283
8666
- mov r1, r3
8667
- mov r0, r8
9052
+ beq .L1176
9053
+ ldr r0, [fp, #-52]
9054
+ ldr r2, [fp, #-56]
9055
+ ldr r1, [fp, #-60]
9056
+ cmp r2, r0
9057
+ ldr r3, [fp, #-104]
9058
+ ldreq r0, [fp, #-100]
9059
+ beq .L1250
9060
+ cmp r2, r1
9061
+ beq .L1176
9062
+ cmn r2, #1
9063
+ streq r2, [r8, r5]
9064
+ beq .L1180
9065
+ str r2, [r3, #4]
9066
+ mov r0, r3
9067
+ mov r2, #0
9068
+ mov r1, #1
9069
+ ldr r7, [r3, #12]
9070
+ bl FlashReadPages
9071
+.L1180:
9072
+ ldr r3, [r4, #3288]
9073
+ ldr r3, [r3, r5]
9074
+ cmn r3, #1
9075
+ beq .L1181
9076
+ ldr r5, [r7, #4]
9077
+ ldr r0, [r4, #3448]
9078
+ mov r1, r5
86689079 bl ftl_cmp_data_ver
86699080 cmp r0, #0
8670
- beq .L1278
8671
- b .L1283
8672
-.L1275:
8673
- ldr r3, [sp, #40]
8674
- ldr r2, [sp, #36]
9081
+ beq .L1181
9082
+ ldr r0, [fp, #-96]
9083
+ mov r1, r5
9084
+ bl ftl_cmp_data_ver
9085
+ cmp r0, #0
9086
+ beq .L1176
9087
+.L1181:
9088
+ ldr r1, [fp, #-60]
9089
+ mov r0, r6
9090
+.L1250:
9091
+ bl FtlReUsePrevPpa
9092
+ b .L1176
9093
+.L1173:
9094
+ ldrd r2, [fp, #-56]
86759095 cmp r2, r3
8676
- beq .L1285
8677
- ldr r1, [sp, #32]
9096
+ beq .L1183
9097
+ ldr r1, [fp, #-60]
86789098 cmn r1, #1
8679
- beq .L1287
9099
+ beq .L1185
86809100 ldr r3, [r4, #248]
86819101 cmp r3, r1, lsr #10
8682
- ldrls r0, .L1364+28
8683
- bls .L1360
8684
-.L1287:
9102
+ ldrls r0, .L1257+24
9103
+ bls .L1253
9104
+.L1185:
9105
+ sub r1, fp, #52
9106
+ mov r0, r6
86859107 mov r2, #1
8686
- add r1, sp, #40
8687
- mov r0, r5
86889108 bl log2phys
8689
- ldr r7, [sp, #36]
9109
+ ldr r7, [fp, #-56]
86909110 cmn r7, #1
8691
- beq .L1285
8692
- ldr r3, [sp, #32]
9111
+ beq .L1183
9112
+ ldr r3, [fp, #-60]
86939113 cmp r7, r3
8694
- beq .L1299
9114
+ beq .L1183
86959115 ubfx r0, r7, #10, #16
86969116 bl P2V_block_in_plane
86979117 ldrh r3, [r4, #24]
86989118 cmp r3, r0
8699
- beq .L1290
9119
+ beq .L1187
87009120 ldrh r3, [r4, #76]
87019121 cmp r3, r0
8702
- beq .L1290
9122
+ beq .L1187
87039123 ldrh r3, [r4, #124]
87049124 cmp r3, r0
8705
- bne .L1285
8706
-.L1290:
9125
+ bne .L1183
9126
+.L1187:
87079127 ldr r0, [r4, #3288]
87089128 mov r2, #0
87099129 mov r1, #1
87109130 str r7, [r0, #4]
8711
- ldr r6, [r0, #12]
9131
+ ldr r5, [r0, #12]
87129132 bl FlashReadPages
87139133 ldr r3, [r4, #3288]
87149134 ldr r3, [r3]
87159135 cmn r3, #1
8716
- beq .L1285
8717
- ldr r1, [r6, #4]
8718
- ldr r0, [sp, #4]
9136
+ beq .L1183
9137
+ ldr r1, [r5, #4]
9138
+ ldr r0, [fp, #-64]
87199139 bl ftl_cmp_data_ver
87209140 cmp r0, #0
8721
- bne .L1285
9141
+ bne .L1183
9142
+ sub r1, fp, #56
9143
+ mov r0, r6
87229144 mov r2, #1
8723
- add r1, sp, #36
8724
- mov r0, r5
87259145 bl log2phys
8726
- b .L1285
8727
-.L1292:
8728
- ldr r0, .L1364+32
9146
+ b .L1183
9147
+.L1189:
9148
+ ldr r0, .L1257+28
87299149 mov r1, r5
8730
-.L1360:
9150
+.L1253:
87319151 bl sftl_printk
8732
- b .L1269
8733
-.L1271:
9152
+ b .L1166
9153
+.L1168:
87349154 ldr r3, [r4, #3476]
87359155 cmp r3, #31
87369156 addls r2, r4, r3, lsl #2
87379157 addls r3, r3, #1
87389158 strls r3, [r4, #3476]
8739
- strls r5, [r2, #3480]
8740
- ldrh r0, [fp]
9159
+ strls r6, [r2, #3480]
9160
+ ldrh r0, [r10]
87419161 bl decrement_vpc_count
87429162 ldr r3, [r4, #3448]
87439163 cmn r3, #1
8744
- ldreq r3, [sp, #4]
8745
- beq .L1359
8746
- ldr r2, [sp, #4]
8747
- cmp r2, r3
8748
- bcs .L1269
9164
+ ldreq r3, [fp, #-64]
9165
+ beq .L1252
9166
+ ldr r2, [fp, #-64]
9167
+ cmp r3, r2
9168
+ bls .L1166
87499169 mov r3, r2
8750
-.L1359:
9170
+.L1252:
87519171 str r3, [r4, #3448]
8752
- b .L1269
8753
-.L1270:
8754
- ldrb r3, [sp, #12] @ zero_extendqisi2
8755
- strh r10, [fp, #2] @ movhi
8756
- ldr r2, [sp, #12]
8757
- strb r3, [fp, #6]
8758
- b .L1363
8759
-.L1300:
8760
- add sp, sp, #52
8761
- @ sp needed
8762
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
8763
-.L1365:
9172
+ b .L1166
9173
+.L1196:
9174
+ mov r0, #0
9175
+ sub sp, fp, #40
9176
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
9177
+.L1258:
87649178 .align 2
8765
-.L1364:
8766
- .word __stack_chk_guard
9179
+.L1257:
87679180 .word .LANCHOR0
87689181 .word .LANCHOR0+312
8769
- .word .LANCHOR1+435
8770
- .word .LC8
87719182 .word .LANCHOR0+3472
87729183 .word .LANCHOR0+302
9184
+ .word .LANCHOR1+435
9185
+ .word .LC8
87739186 .word .LC109
87749187 .word .LC110
8775
- .fnend
87769188 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock
9189
+ .section .rodata.str1.1
9190
+.LC111:
9191
+ .ascii "...%s enter...\012\000"
9192
+.LC112:
9193
+ .ascii "FtlCheckVpc2 %x = %x %x\012\000"
9194
+.LC113:
9195
+ .ascii "free blk vpc error %x = %x %x\012\000"
9196
+ .text
87779197 .align 2
87789198 .global ftl_check_vpc
87799199 .syntax unified
....@@ -8781,137 +9201,135 @@
87819201 .fpu softvfp
87829202 .type ftl_check_vpc, %function
87839203 ftl_check_vpc:
8784
- .fnstart
8785
- @ args = 0, pretend = 0, frame = 16
8786
- @ frame_needed = 0, uses_anonymous_args = 0
8787
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8788
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
8789
- .pad #20
8790
- sub sp, sp, #20
8791
- ldr r5, .L1392
9204
+ @ args = 0, pretend = 0, frame = 8
9205
+ @ frame_needed = 1, uses_anonymous_args = 0
9206
+ mov ip, sp
9207
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
9208
+ sub fp, ip, #4
9209
+ sub sp, sp, #12
9210
+ push {lr}
9211
+ bl __gnu_mcount_nc
9212
+ mov r3, sp
9213
+ ldr r5, .L1284
9214
+ bic r6, r3, #8128
9215
+ ldr r1, .L1284+4
9216
+ bic r6, r6, #63
9217
+ ldr r0, .L1284+8
87929218 mov r4, #0
8793
- ldr r6, .L1392+4
8794
- ldr r3, [r5]
8795
- ldr r1, .L1392+8
8796
- ldr r0, .L1392+12
8797
- ldr r7, .L1392+16
8798
- str r3, [sp, #12]
9219
+ ldr r3, [r6, #24]
9220
+ str r3, [fp, #-48]
87999221 bl sftl_printk
9222
+ ldr r0, .L1284+12
88009223 mov r2, #8192
88019224 mov r1, #0
8802
- ldr r0, .L1392+16
88039225 bl ftl_memset
8804
- str r5, [sp, #4]
8805
- mov r5, r6
8806
-.L1367:
8807
- ldr r3, [r6, #2552]
8808
- cmp r4, r3
8809
- bcc .L1369
8810
- ldr r8, .L1392+16
9226
+.L1260:
9227
+ ldr r3, [r5, #2552]
9228
+ cmp r3, r4
9229
+ bhi .L1262
9230
+ ldr r9, .L1284+12
88119231 mov r4, #0
8812
- ldr r10, .L1392+20
8813
- mov r6, r4
8814
- movw r9, #65535
8815
-.L1370:
9232
+ ldr r10, .L1284+16
9233
+ mov r7, r4
9234
+.L1263:
88169235 ldrh r2, [r5, #240]
88179236 uxth r3, r4
88189237 cmp r2, r3
8819
- bhi .L1372
9238
+ bhi .L1265
88209239 ldr r4, [r5, #2532]
88219240 cmp r4, #0
8822
- beq .L1373
8823
- ldr r3, [r5, #2516]
8824
- mov r7, #0
9241
+ beq .L1266
9242
+ ldr r1, [r5, #2516]
9243
+ mov r9, #0
88259244 ldrh r8, [r5, #224]
8826
- mov fp, #6
8827
- ldr r9, .L1392+16
8828
- sub r4, r4, r3
8829
- ldr r3, .L1392+24
9245
+ sub r4, r4, r1
9246
+ ldr r1, .L1284+20
9247
+ ldr r10, .L1284+12
88309248 asr r4, r4, #1
8831
- ldr r10, .L1392+28
8832
- mul r4, r3, r4
9249
+ ldr r0, .L1284+24
9250
+ mul r4, r1, r4
88339251 uxth r4, r4
8834
-.L1374:
8835
- uxth r3, r7
9252
+.L1267:
9253
+ uxth r3, r9
88369254 cmp r8, r3
8837
- bls .L1373
9255
+ bls .L1266
88389256 ldr r2, [r5, #72]
88399257 lsl r3, r4, #1
88409258 ldrh r2, [r2, r3]
88419259 cmp r2, #0
8842
- beq .L1375
8843
- mov r6, #1
8844
- ldrh r3, [r9, r3]
9260
+ beq .L1268
9261
+ ldrh r3, [r10, r3]
88459262 mov r1, r4
8846
- mov r0, r10
88479263 bl sftl_printk
8848
-.L1375:
8849
- mul r4, fp, r4
8850
- ldr r3, [r5, #2516]
8851
- add r7, r7, #1
8852
- ldrh r4, [r3, r4]
9264
+ ldr r0, .L1284+24
9265
+ mov r7, #1
9266
+.L1268:
9267
+ mov r3, #6
9268
+ ldr r2, [r5, #2516]
9269
+ add r9, r9, #1
9270
+ mul r3, r3, r4
9271
+ ldrh r4, [r2, r3]
88539272 movw r3, #65535
88549273 cmp r4, r3
8855
- bne .L1374
8856
-.L1373:
8857
- cmp r6, #0
8858
- beq .L1366
9274
+ bne .L1267
9275
+.L1266:
9276
+ cmp r7, #0
9277
+ beq .L1259
9278
+ ldr r1, .L1284+4
88599279 movw r2, #2394
8860
- ldr r1, .L1392+8
8861
- ldr r0, .L1392+32
9280
+ ldr r0, .L1284+28
88629281 bl sftl_printk
8863
-.L1366:
8864
- ldr r3, [sp, #4]
8865
- ldr r2, [sp, #12]
8866
- ldr r3, [r3]
9282
+.L1259:
9283
+ ldr r2, [fp, #-48]
9284
+ ldr r3, [r6, #24]
88679285 cmp r2, r3
8868
- beq .L1378
9286
+ beq .L1271
88699287 bl __stack_chk_fail
8870
-.L1369:
8871
- mov r2, #0
8872
- add r1, sp, #8
9288
+.L1262:
9289
+ sub r1, fp, #52
88739290 mov r0, r4
9291
+ mov r2, #0
88749292 bl log2phys
8875
- ldr r0, [sp, #8]
9293
+ ldr r0, [fp, #-52]
88769294 cmn r0, #1
8877
- beq .L1368
9295
+ beq .L1261
88789296 ubfx r0, r0, #10, #16
88799297 bl P2V_block_in_plane
9298
+ ldr r2, .L1284+12
88809299 lsl r0, r0, #1
8881
- ldrh r3, [r7, r0]
9300
+ ldrh r3, [r2, r0]
88829301 add r3, r3, #1
8883
- strh r3, [r7, r0] @ movhi
8884
-.L1368:
9302
+ strh r3, [r2, r0] @ movhi
9303
+.L1261:
88859304 add r4, r4, #1
8886
- b .L1367
8887
-.L1372:
9305
+ b .L1260
9306
+.L1265:
88889307 uxth r1, r4
88899308 ldr r3, [r5, #72]
8890
- lsl r7, r1, #1
8891
- ldrh r2, [r3, r7]
8892
- ldrh r3, [r8, r7]
9309
+ lsl r8, r1, #1
9310
+ ldrh r2, [r3, r8]
9311
+ ldrh r3, [r9, r8]
88939312 cmp r2, r3
8894
- beq .L1371
9313
+ beq .L1264
88959314 mov r0, r10
88969315 bl sftl_printk
88979316 ldr r3, [r5, #72]
8898
- ldrh r3, [r3, r7]
8899
- cmp r3, r9
8900
- beq .L1371
8901
- ldrh r2, [r8, r7]
9317
+ movw r2, #65535
9318
+ ldrh r3, [r3, r8]
9319
+ cmp r3, r2
9320
+ beq .L1264
9321
+ ldrh r2, [r9, r8]
89029322 cmp r2, r3
8903
- movhi r6, #1
8904
-.L1371:
9323
+ movhi r7, #1
9324
+.L1264:
89059325 add r4, r4, #1
8906
- b .L1370
8907
-.L1378:
8908
- add sp, sp, #20
8909
- @ sp needed
8910
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
8911
-.L1393:
9326
+ b .L1263
9327
+.L1271:
9328
+ sub sp, fp, #40
9329
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
9330
+.L1285:
89129331 .align 2
8913
-.L1392:
8914
- .word __stack_chk_guard
9332
+.L1284:
89159333 .word .LANCHOR0
89169334 .word .LANCHOR1+457
89179335 .word .LC111
....@@ -8920,8 +9338,16 @@
89209338 .word -1431655765
89219339 .word .LC113
89229340 .word .LC8
8923
- .fnend
89249341 .size ftl_check_vpc, .-ftl_check_vpc
9342
+ .section .rodata.str1.1
9343
+.LC114:
9344
+ .ascii "ftl_scan_all_data = %x\012\000"
9345
+.LC115:
9346
+ .ascii "scan lpa = %x ppa= %x\012\000"
9347
+.LC116:
9348
+ .ascii "lpa = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
9349
+ .ascii "\000"
9350
+ .text
89259351 .align 2
89269352 .global ftl_scan_all_data
89279353 .syntax unified
....@@ -8929,70 +9355,71 @@
89299355 .fpu softvfp
89309356 .type ftl_scan_all_data, %function
89319357 ftl_scan_all_data:
8932
- .fnstart
89339358 @ args = 0, pretend = 0, frame = 8
8934
- @ frame_needed = 0, uses_anonymous_args = 0
8935
- push {r4, r5, r6, r7, r8, r9, lr}
8936
- .save {r4, r5, r6, r7, r8, r9, lr}
9359
+ @ frame_needed = 1, uses_anonymous_args = 0
9360
+ mov ip, sp
9361
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
9362
+ sub fp, ip, #4
9363
+ sub sp, sp, #32
9364
+ push {lr}
9365
+ bl __gnu_mcount_nc
9366
+ mov r3, sp
9367
+ ldr r4, .L1295
9368
+ bic r6, r3, #8128
89379369 mov r5, #0
8938
- ldr r6, .L1404
8939
- .pad #36
8940
- sub sp, sp, #36
9370
+ bic r6, r6, #63
9371
+ ldr r0, .L1295+4
89419372 mov r1, #0
8942
- ldr r7, .L1404+4
8943
- ldr r9, .L1404+8
8944
- ldr r3, [r6]
8945
- mov r4, r7
8946
- ldr r0, .L1404+12
8947
- str r3, [sp, #28]
9373
+ ldr r3, [r6, #24]
9374
+ str r3, [fp, #-32]
89489375 bl sftl_printk
8949
-.L1395:
8950
- ldr r3, [r7, #2552]
8951
- cmp r5, r3
8952
- bcc .L1401
8953
- ldr r2, [sp, #28]
8954
- ldr r3, [r6]
9376
+.L1287:
9377
+ ldr r3, [r4, #2552]
9378
+ cmp r3, r5
9379
+ bhi .L1293
9380
+ ldr r2, [fp, #-32]
9381
+ ldr r3, [r6, #24]
89559382 cmp r2, r3
8956
- beq .L1402
9383
+ beq .L1294
89579384 bl __stack_chk_fail
8958
-.L1401:
8959
- mov r2, #0
8960
- add r1, sp, #24
9385
+.L1293:
9386
+ sub r1, fp, #36
89619387 mov r0, r5
9388
+ mov r2, #0
89629389 bl log2phys
89639390 ubfx r3, r5, #0, #11
89649391 cmp r3, #0
8965
- bne .L1396
8966
- ldr r2, [sp, #24]
9392
+ bne .L1288
9393
+ ldr r2, [fp, #-36]
89679394 mov r1, r5
8968
- mov r0, r9
9395
+ ldr r0, .L1295+8
89699396 bl sftl_printk
8970
-.L1396:
8971
- ldr r3, [sp, #24]
9397
+.L1288:
9398
+ ldr r3, [fp, #-36]
89729399 cmn r3, #1
8973
- beq .L1398
8974
- str r3, [r4, #3456]
9400
+ beq .L1290
9401
+ ldr r7, [r4, #3332]
89759402 mov r2, #0
8976
- ldr r3, [r4, #3300]
9403
+ str r3, [r4, #3456]
89779404 mov r1, #1
8978
- ldr r8, [r4, #3332]
8979
- ldr r0, .L1404+16
9405
+ ldr r3, [r4, #3300]
9406
+ ldr r0, .L1295+12
89809407 str r3, [r4, #3460]
89819408 str r5, [r4, #3468]
8982
- str r8, [r4, #3464]
9409
+ str r7, [r4, #3464]
89839410 str r2, [r4, #3452]
89849411 bl FlashReadPages
89859412 ldr r3, [r4, #3452]
89869413 cmn r3, #1
89879414 cmpne r3, #256
8988
- beq .L1399
8989
- ldr r3, [r8, #8]
8990
- cmp r5, r3
8991
- beq .L1398
8992
-.L1399:
9415
+ beq .L1291
9416
+ ldr r3, [r7, #8]
9417
+ cmp r3, r5
9418
+ beq .L1290
9419
+.L1291:
89939420 ldr r2, [r4, #3460]
89949421 ldr r3, [r4, #3464]
8995
- ldr r0, .L1404+20
9422
+ ldr r0, .L1295+16
89969423 ldr r1, [r2, #4]
89979424 str r1, [sp, #16]
89989425 mov r1, r5
....@@ -9004,27 +9431,28 @@
90049431 str r2, [sp, #4]
90059432 ldr r2, [r3, #4]
90069433 str r2, [sp]
9007
- ldr r3, [r3]
90089434 ldr r2, [r4, #3456]
9435
+ ldr r3, [r3]
90099436 bl sftl_printk
9010
-.L1398:
9437
+.L1290:
90119438 add r5, r5, #1
9012
- b .L1395
9013
-.L1402:
9014
- add sp, sp, #36
9015
- @ sp needed
9016
- pop {r4, r5, r6, r7, r8, r9, pc}
9017
-.L1405:
9439
+ b .L1287
9440
+.L1294:
9441
+ sub sp, fp, #28
9442
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
9443
+.L1296:
90189444 .align 2
9019
-.L1404:
9020
- .word __stack_chk_guard
9445
+.L1295:
90219446 .word .LANCHOR0
9022
- .word .LC115
90239447 .word .LC114
9448
+ .word .LC115
90249449 .word .LANCHOR0+3452
90259450 .word .LC116
9026
- .fnend
90279451 .size ftl_scan_all_data, .-ftl_scan_all_data
9452
+ .section .rodata.str1.1
9453
+.LC117:
9454
+ .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
9455
+ .text
90289456 .align 2
90299457 .global FtlGcScanTempBlk
90309458 .syntax unified
....@@ -9032,147 +9460,156 @@
90329460 .fpu softvfp
90339461 .type FtlGcScanTempBlk, %function
90349462 FtlGcScanTempBlk:
9035
- .fnstart
90369463 @ args = 0, pretend = 0, frame = 56
9037
- @ frame_needed = 0, uses_anonymous_args = 0
9038
- ldr r3, .L1440
9039
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9040
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9041
- .pad #60
9464
+ @ frame_needed = 1, uses_anonymous_args = 0
9465
+ mov ip, sp
9466
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
9467
+ sub fp, ip, #4
90429468 sub sp, sp, #60
9469
+ push {lr}
9470
+ bl __gnu_mcount_nc
9471
+ mov r3, sp
90439472 mov r4, r0
9044
- str r1, [sp, #12]
9045
- ldr r3, [r3]
9046
- str r3, [sp, #52]
9047
- ldr r3, .L1440+4
9473
+ bic r3, r3, #8128
9474
+ str r1, [fp, #-84]
9475
+ bic r3, r3, #63
9476
+ ldr r3, [r3, #24]
9477
+ str r3, [fp, #-48]
9478
+ ldr r3, .L1329
90489479 ldrh r5, [r3, #4]
90499480 movw r3, #65535
90509481 cmp r5, r3
9051
- beq .L1432
9482
+ beq .L1322
90529483 cmp r5, #0
9053
- bne .L1407
9054
-.L1408:
9055
- bl FtlGcPageVarInit
9056
- b .L1409
9057
-.L1432:
9058
- mov r5, #0
9059
-.L1407:
9060
- ldr r2, .L1440+8
9484
+ beq .L1299
9485
+.L1298:
9486
+ ldr r2, .L1329+4
90619487 movw r3, #302
90629488 ldrh r3, [r2, r3]
9063
- ldr r2, [sp, #12]
9489
+ ldr r2, [fp, #-84]
90649490 cmp r3, r2
9065
- beq .L1408
9066
-.L1409:
9067
- ldr r6, .L1440+8
9491
+ bne .L1300
9492
+.L1299:
9493
+ bl FtlGcPageVarInit
9494
+.L1300:
9495
+ ldr r6, .L1329+4
90689496 mov r3, #0
9069
- str r3, [sp, #4]
9070
-.L1425:
9497
+ str r3, [fp, #-80]
9498
+.L1317:
90719499 ldrh r2, [r4]
90729500 mov r3, #0
90739501 strb r3, [r4, #8]
90749502 movw r3, #65535
90759503 cmp r2, r3
9076
- beq .L1410
9077
-.L1428:
9078
- ldrh r3, [r6, #232]
9079
- mov r2, #0
9080
- ldr r0, [r6, #3288]
9081
- add ip, r4, #16
9082
- ldr fp, [r6, #3180]
9083
- mov r8, r2
9084
- str r3, [sp, #8]
9085
- movw r7, #65535
9504
+ beq .L1301
9505
+.L1302:
90869506 ldr r3, [r6, #3176]
9087
- mov r9, #20
9088
- str r3, [sp, #16]
9089
- ldr r3, .L1440+12
9090
- ldrh r3, [r3]
9091
- str r3, [sp, #20]
9092
- ldr r3, .L1440+16
9093
- ldrh lr, [r3]
9094
-.L1411:
9095
- ldr r1, [sp, #8]
9096
- uxth r3, r2
9097
- cmp r1, r3
9098
- bhi .L1413
9099
- mov r10, #0
9100
- mov r2, #0
9101
- mov r1, r8
9102
- bl FlashReadPages
9103
-.L1414:
9104
- uxth r3, r10
9105
- cmp r8, r3
9106
- bhi .L1426
9107
- ldr r3, [sp, #4]
9108
- add r5, r5, #1
9109
- uxth r5, r5
9110
- add r3, r3, #1
9111
- str r3, [sp, #4]
9112
- ldr r2, [sp, #4]
9113
- ldr r3, [sp, #12]
9507
+ mov r7, #0
9508
+ str r3, [fp, #-88]
9509
+ movw lr, #65535
9510
+ ldr r3, .L1329+8
9511
+ mov r8, #20
9512
+ ldr r0, [r6, #3288]
9513
+ ldr r10, [r6, #3180]
9514
+ ldrh r2, [r3]
9515
+ ldrh r9, [r3, #2]
9516
+ ldrh r3, [r6, #232]
9517
+ str r2, [fp, #-92]
9518
+ add r2, r4, #16
9519
+ add r3, r4, r3, lsl #1
9520
+ add r3, r3, #16
9521
+ str r3, [fp, #-96]
9522
+.L1303:
9523
+ ldr r3, [fp, #-96]
91149524 cmp r3, r2
9115
- ldr r2, .L1440+20
9116
- bls .L1427
9117
-.L1429:
9118
- ldrh r3, [r2]
9119
- cmp r3, r5
9120
- bhi .L1428
9121
-.L1410:
9122
- ldr r3, .L1440+4
9123
- mvn r2, #0
9124
- strh r5, [r4, #2] @ movhi
9125
- mov r1, r5
9126
- mov r0, r4
9127
- strh r2, [r3, #4] @ movhi
9525
+ bne .L1305
9526
+ mov r10, #0
9527
+ mov r1, r7
91289528 mov r2, #0
9129
- strb r2, [r4, #6]
9130
- bl ftl_sb_update_avl_pages
9131
- b .L1430
9132
-.L1413:
9133
- ldrh r3, [ip], #2
9134
- cmp r3, r7
9135
- beq .L1412
9136
- mla r1, r9, r8, r0
9529
+ bl FlashReadPages
9530
+.L1306:
9531
+ uxth r3, r10
9532
+ cmp r7, r3
9533
+ bhi .L1318
9534
+ ldr r3, [fp, #-80]
9535
+ add r5, r5, #1
9536
+ add r3, r3, #1
9537
+ str r3, [fp, #-80]
9538
+ ldr r2, [fp, #-80]
9539
+ uxth r5, r5
9540
+ ldr r3, [fp, #-84]
9541
+ cmp r3, r2
9542
+ bhi .L1319
9543
+ ldr r2, .L1329
9544
+ movw r1, #65535
9545
+ ldrh r3, [r2, #4]
9546
+ cmp r3, r1
9547
+ beq .L1319
9548
+ ldr r1, [fp, #-80]
9549
+ add r3, r3, r1
9550
+ strh r3, [r2, #4] @ movhi
9551
+ ldr r2, .L1329+4
9552
+ movw r3, #302
9553
+ ldrh r3, [r2, r3]
9554
+ cmp r3, r5
9555
+ bls .L1301
9556
+.L1320:
9557
+ mov r3, sp
9558
+ ldr r2, [fp, #-48]
9559
+ bic r3, r3, #8128
9560
+ bic r3, r3, #63
9561
+ ldr r3, [r3, #24]
9562
+ cmp r2, r3
9563
+ beq .L1321
9564
+ bl __stack_chk_fail
9565
+.L1322:
9566
+ mov r5, #0
9567
+ b .L1298
9568
+.L1305:
9569
+ ldrh r3, [r2], #2
9570
+ cmp r3, lr
9571
+ beq .L1303
9572
+ mla r1, r8, r7, r0
91379573 orr r3, r5, r3, lsl #10
91389574 str r3, [r1, #4]
9139
- ldr r3, [sp, #20]
9140
- mul r3, r3, r8
9141
- add r10, r3, #3
9142
- cmp r3, #0
9143
- movlt r3, r10
9144
- ldr r10, [sp, #16]
9575
+ ldr r3, [fp, #-92]
9576
+ mul ip, r3, r7
9577
+ cmp ip, #0
9578
+ add r3, ip, #3
9579
+ movge r3, ip
9580
+ ldr ip, [fp, #-88]
9581
+ bic r3, r3, #3
9582
+ add r3, ip, r3
9583
+ mul ip, r9, r7
9584
+ str r3, [r1, #8]
9585
+ add r7, r7, #1
9586
+ cmp ip, #0
9587
+ add r3, ip, #3
9588
+ movge r3, ip
9589
+ uxth r7, r7
91459590 bic r3, r3, #3
91469591 add r3, r10, r3
9147
- str r3, [r1, #8]
9148
- mul r3, lr, r8
9149
- add r8, r8, #1
9150
- uxth r8, r8
9151
- add r10, r3, #3
9152
- cmp r3, #0
9153
- movlt r3, r10
9154
- bic r3, r3, #3
9155
- add r3, fp, r3
91569592 str r3, [r1, #12]
9157
-.L1412:
9158
- add r2, r2, #1
9159
- b .L1411
9160
-.L1426:
9161
- mov r3, #20
9593
+ b .L1303
9594
+.L1318:
9595
+ mov r9, #20
91629596 ldr r2, [r6, #3288]
9163
- mul fp, r3, r10
9164
- ldr r7, [r2, fp]
9165
- add r1, r2, fp
9597
+ mul r9, r9, r10
9598
+ add r1, r2, r9
9599
+ ldr r2, [r2, r9]
91669600 ldr r3, [r1, #4]
9167
- ldr r9, [r1, #12]
9168
- cmp r7, #0
9169
- str r3, [sp, #8]
9170
- bne .L1415
9171
- ldrh r1, [r9]
9172
- movw r2, #65535
9173
- cmp r1, r2
9174
- bne .L1416
9175
-.L1438:
9601
+ ldr r8, [r1, #12]
9602
+ cmp r2, #0
9603
+ bne .L1307
9604
+ ldrh r0, [r8]
9605
+ movw r1, #65535
9606
+ cmp r0, r1
9607
+ beq .L1327
9608
+ ldr r0, [r8, #8]
9609
+ ldr r1, [r6, #2552]
9610
+ cmp r0, r1
9611
+ bls .L1309
9612
+.L1327:
91769613 ldrh r3, [r4]
91779614 mov r1, #0
91789615 ldr r2, [r6, #72]
....@@ -9185,103 +9622,98 @@
91859622 strh r3, [r4] @ movhi
91869623 strh r3, [r6, #172] @ movhi
91879624 bl FtlGcPageVarInit
9188
- b .L1425
9189
-.L1416:
9190
- ldr r0, [r9, #8]
9191
- ldr r2, [r6, #2552]
9192
- cmp r0, r2
9193
- bhi .L1438
9194
- mov r2, r7
9195
- add r1, sp, #28
9625
+ b .L1317
9626
+.L1309:
9627
+ sub r1, fp, #72
9628
+ str r3, [fp, #-92]
9629
+ str r2, [fp, #-88]
91969630 bl log2phys
9197
- ldr r2, [r9, #12]
9198
- ldr r1, [sp, #28]
9199
- sub r0, r2, r1
9200
- cmn r1, #1
9201
- clz r0, r0
9202
- lsr r0, r0, #5
9203
- moveq r0, #0
9204
- cmp r0, #0
9205
- bne .L1419
9206
-.L1424:
9207
- ldr r2, [r9, #8]
9208
-.L1439:
9209
- ldr r1, [sp, #8]
9631
+ ldr r0, [fp, #-72]
9632
+ ldr r1, [r8, #12]
9633
+ cmn r0, #1
9634
+ ldr r2, [fp, #-88]
9635
+ sub ip, r1, r0
9636
+ ldr r3, [fp, #-92]
9637
+ clz ip, ip
9638
+ lsr ip, ip, #5
9639
+ moveq ip, #0
9640
+ cmp ip, #0
9641
+ bne .L1311
9642
+.L1316:
9643
+ ldr r2, [r8, #8]
9644
+.L1328:
9645
+ ldr r0, [r8, #12]
9646
+ mov r1, r3
92109647 add r10, r10, #1
9211
- ldr r0, [r9, #12]
92129648 bl FtlGcUpdatePage
9213
- b .L1414
9214
-.L1419:
9215
- str r2, [sp, #36]
9649
+ b .L1306
9650
+.L1311:
9651
+ str r1, [fp, #-64]
9652
+ sub r0, fp, #68
9653
+ ldr r1, [r6, #3316]
9654
+ str r1, [fp, #-60]
9655
+ ldr r1, [r6, #3336]
9656
+ str r1, [fp, #-56]
92169657 mov r1, #1
9217
- ldr r2, [r6, #3316]
9218
- add r0, sp, #32
9219
- str r2, [sp, #40]
9220
- ldr r2, [r6, #3336]
9221
- str r2, [sp, #44]
9222
- mov r2, r7
9658
+ str r3, [fp, #-92]
9659
+ str r2, [fp, #-88]
92239660 bl FlashReadPages
9224
- ldr r3, .L1440+24
9225
- ldr r1, [r6, #3288]
9226
- ldrh r2, [r3]
9227
- add r3, r1, fp
9228
- ldr r1, [sp, #40]
9229
- lsl r2, r2, #7
9230
-.L1421:
9231
- cmp r7, r2
9232
- beq .L1424
9233
- ldr r0, [r3, #8]
9234
- ldr ip, [r0, r7, lsl #2]
9235
- ldr r0, [r1, r7, lsl #2]
9236
- cmp ip, r0
9237
- beq .L1422
9238
- ldr r2, [sp, #36]
9661
+ ldr r1, .L1329+12
9662
+ ldr r0, [r6, #3288]
9663
+ ldr r2, [fp, #-88]
9664
+ add r9, r0, r9
9665
+ ldr r3, [fp, #-92]
9666
+ ldrh r1, [r1]
9667
+ ldr r0, [fp, #-60]
9668
+ lsl r1, r1, #7
9669
+.L1313:
9670
+ cmp r1, r2
9671
+ beq .L1316
9672
+ ldr ip, [r9, #8]
9673
+ ldr lr, [ip, r2, lsl #2]
9674
+ ldr ip, [r0, r2, lsl #2]
9675
+ cmp lr, ip
9676
+ beq .L1314
9677
+ ldr r2, [fp, #-64]
92399678 ldrh r1, [r4]
9240
- ldr r0, .L1440+28
9679
+ ldr r0, .L1329+16
92419680 bl sftl_printk
9242
- b .L1438
9243
-.L1422:
9244
- add r7, r7, #1
9245
- b .L1421
9246
-.L1415:
9681
+ b .L1327
9682
+.L1314:
9683
+ add r2, r2, #1
9684
+ b .L1313
9685
+.L1307:
92479686 mvn r2, #0
9248
- b .L1439
9249
-.L1427:
9250
- ldr r1, .L1440+4
9251
- movw r0, #65535
9252
- ldrh r3, [r1, #4]
9253
- cmp r3, r0
9254
- beq .L1429
9255
- ldr r0, [sp, #4]
9256
- add r3, r3, r0
9257
- strh r3, [r1, #4] @ movhi
9258
- ldrh r3, [r2]
9687
+ b .L1328
9688
+.L1319:
9689
+ ldr r3, .L1329+20
9690
+ ldrh r3, [r3]
92599691 cmp r3, r5
9260
- bls .L1429
9261
-.L1430:
9262
- ldr r3, .L1440
9692
+ bhi .L1302
9693
+.L1301:
9694
+ ldr r3, .L1329
9695
+ mvn r2, #0
9696
+ mov r1, r5
9697
+ mov r0, r4
9698
+ strh r5, [r4, #2] @ movhi
9699
+ strh r2, [r3, #4] @ movhi
9700
+ mov r2, #0
9701
+ strb r2, [r4, #6]
9702
+ bl ftl_sb_update_avl_pages
9703
+ b .L1320
9704
+.L1321:
92639705 mvn r0, #0
9264
- ldr r2, [sp, #52]
9265
- ldr r3, [r3]
9266
- cmp r2, r3
9267
- beq .L1431
9268
- bl __stack_chk_fail
9269
-.L1431:
9270
- add sp, sp, #60
9271
- @ sp needed
9272
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9273
-.L1441:
9706
+ sub sp, fp, #40
9707
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
9708
+.L1330:
92749709 .align 2
9275
-.L1440:
9276
- .word __stack_chk_guard
9710
+.L1329:
92779711 .word .LANCHOR2
92789712 .word .LANCHOR0
92799713 .word .LANCHOR0+310
9280
- .word .LANCHOR0+312
9281
- .word .LANCHOR0+302
92829714 .word .LANCHOR0+258
92839715 .word .LC117
9284
- .fnend
9716
+ .word .LANCHOR0+302
92859717 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk
92869718 .align 2
92879719 .global FtlReadRefresh
....@@ -9290,127 +9722,124 @@
92909722 .fpu softvfp
92919723 .type FtlReadRefresh, %function
92929724 FtlReadRefresh:
9293
- .fnstart
92949725 @ args = 0, pretend = 0, frame = 96
9295
- @ frame_needed = 0, uses_anonymous_args = 0
9296
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9297
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9298
- .pad #100
9726
+ @ frame_needed = 1, uses_anonymous_args = 0
9727
+ mov ip, sp
9728
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
9729
+ sub fp, ip, #4
92999730 sub sp, sp, #100
9300
- ldr r6, .L1460
9301
- ldr r7, .L1460+4
9302
- ldr r10, [r6, #2720]
9303
- mov r5, r6
9304
- ldr r3, [r7]
9305
- cmp r10, #0
9306
- str r3, [sp, #92]
9307
- beq .L1443
9308
- ldr r2, [r6, #2724]
9309
- ldr r3, [r6, #2552]
9731
+ push {lr}
9732
+ bl __gnu_mcount_nc
9733
+ ldr r5, .L1347
9734
+ mov r3, sp
9735
+ bic r6, r3, #8128
9736
+ bic r6, r6, #63
9737
+ ldr r9, [r5, #2720]
9738
+ ldr r3, [r6, #24]
9739
+ str r3, [fp, #-48]
9740
+ cmp r9, #0
9741
+ ldr r3, [r5, #2552]
9742
+ beq .L1332
9743
+ ldr r2, [r5, #2724]
93109744 cmp r2, r3
9311
- bcs .L1444
9745
+ bcs .L1333
93129746 mov r4, #2048
9313
-.L1449:
9747
+.L1338:
93149748 ldr r0, [r5, #2724]
93159749 ldr r3, [r5, #2552]
93169750 cmp r0, r3
9317
- bcc .L1445
9318
-.L1448:
9751
+ bcc .L1334
9752
+.L1337:
93199753 mvn r0, #0
9320
-.L1442:
9321
- ldr r2, [sp, #92]
9322
- ldr r3, [r7]
9754
+.L1331:
9755
+ ldr r2, [fp, #-48]
9756
+ ldr r3, [r6, #24]
93239757 cmp r2, r3
9324
- beq .L1454
9758
+ beq .L1342
93259759 bl __stack_chk_fail
9326
-.L1445:
9760
+.L1334:
93279761 mov r2, #0
9328
- add r1, sp, #4
9762
+ sub r1, fp, #136
93299763 bl log2phys
9330
- ldr r2, [sp, #4]
93319764 ldr r3, [r5, #2724]
9332
- cmn r2, #1
9765
+ ldr r2, [fp, #-136]
93339766 add r3, r3, #1
93349767 str r3, [r5, #2724]
9335
- beq .L1447
9336
- str r3, [sp, #24]
9337
- add r0, sp, #96
9768
+ cmn r2, #1
9769
+ beq .L1336
9770
+ str r2, [fp, #-128]
9771
+ sub r0, fp, #132
9772
+ str r3, [fp, #-116]
9773
+ mov r2, #0
93389774 ldr r3, [r5, #3324]
93399775 mov r1, #1
9340
- str r2, [sp, #12]
9341
- mov r2, #0
9342
- str r2, [r0, #-88]!
9343
- str r3, [sp, #16]
9344
- add r3, sp, #28
9345
- str r3, [sp, #20]
9776
+ str r3, [fp, #-124]
9777
+ sub r3, fp, #112
9778
+ str r2, [fp, #-132]
9779
+ str r3, [fp, #-120]
93469780 bl FlashReadPages
9347
- ldr r3, [sp, #8]
9781
+ ldr r3, [fp, #-132]
93489782 cmp r3, #256
9349
- bne .L1448
9350
- ldr r0, [sp, #4]
9783
+ bne .L1337
9784
+ ldr r0, [fp, #-136]
93519785 ubfx r0, r0, #10, #16
93529786 bl P2V_block_in_plane
93539787 bl FtlGcRefreshBlock
9354
- b .L1448
9355
-.L1447:
9788
+ b .L1337
9789
+.L1336:
93569790 subs r4, r4, #1
9357
- bne .L1449
9358
- b .L1448
9359
-.L1444:
9360
- ldr r3, [r6, #2556]
9791
+ bne .L1338
9792
+ b .L1337
9793
+.L1333:
9794
+ ldr r3, [r5, #2556]
93619795 mov r0, #0
9362
- str r0, [r6, #2720]
9363
- str r0, [r6, #2724]
9364
- str r3, [r6, #2716]
9365
- b .L1442
9366
-.L1443:
9367
- ldr r1, [r6, #2612]
9796
+ str r3, [r5, #2716]
9797
+ str r0, [r5, #2720]
9798
+ str r0, [r5, #2724]
9799
+ b .L1331
9800
+.L1332:
9801
+ ldr r2, .L1347+4
93689802 movw r4, #10000
9369
- ldr r9, [r6, #2556]
9370
- ldr r8, [r6, #2716]
9803
+ ldr r1, [r5, #2612]
9804
+ ldr r8, [r5, #2556]
93719805 cmp r1, r4
9372
- ldr fp, .L1460+8
9373
- add r3, r9, #1048576
9806
+ ldr r10, [r5, #2716]
9807
+ ldrh r7, [r2, #28]
9808
+ add r2, r8, #1048576
93749809 movhi r4, #31
93759810 movls r4, #63
9376
- cmp r8, r3
9377
- bhi .L1453
9378
- ldr r3, [r6, #2552]
9379
- lsr r1, r1, #10
9811
+ cmp r10, r2
9812
+ bhi .L1341
93809813 mov r0, #1000
9814
+ lsr r1, r1, #10
93819815 add r1, r1, #1
93829816 mul r0, r0, r3
93839817 bl __aeabi_uidiv
9384
- add r0, r0, r8
9385
- cmp r9, r0
9386
- bhi .L1453
9387
- ldrh r3, [fp, #28]
9388
- ands r0, r4, r3
9389
- movne r0, r10
9390
- bne .L1442
9391
- ldr r2, [r6, #2740]
9392
- cmp r3, r2
9393
- beq .L1442
9394
-.L1453:
9395
- ldrh r3, [fp, #28]
9396
- mov r0, #0
9397
- str r0, [r5, #2724]
9398
- str r9, [r5, #2716]
9399
- str r3, [r5, #2740]
9818
+ add r0, r0, r10
9819
+ cmp r8, r0
9820
+ bhi .L1341
9821
+ ands r0, r4, r7
9822
+ movne r0, r9
9823
+ bne .L1331
9824
+ ldr r3, [r5, #2740]
9825
+ cmp r3, r7
9826
+ beq .L1331
9827
+.L1341:
94009828 mov r3, #1
9829
+ mov r0, #0
9830
+ str r7, [r5, #2740]
94019831 str r3, [r5, #2720]
9402
- b .L1442
9403
-.L1454:
9404
- add sp, sp, #100
9405
- @ sp needed
9406
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9407
-.L1461:
9832
+ str r0, [r5, #2724]
9833
+ str r8, [r5, #2716]
9834
+ b .L1331
9835
+.L1342:
9836
+ sub sp, fp, #40
9837
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
9838
+.L1348:
94089839 .align 2
9409
-.L1460:
9840
+.L1347:
94109841 .word .LANCHOR0
9411
- .word __stack_chk_guard
94129842 .word .LANCHOR0+2468
9413
- .fnend
94149843 .size FtlReadRefresh, .-FtlReadRefresh
94159844 .align 2
94169845 .global l2p_flush
....@@ -9419,40 +9848,41 @@
94199848 .fpu softvfp
94209849 .type l2p_flush, %function
94219850 l2p_flush:
9422
- .fnstart
94239851 @ args = 0, pretend = 0, frame = 0
9424
- @ frame_needed = 0, uses_anonymous_args = 0
9425
- push {r4, r5, r6, r7, r8, lr}
9426
- .save {r4, r5, r6, r7, r8, lr}
9852
+ @ frame_needed = 1, uses_anonymous_args = 0
9853
+ mov ip, sp
9854
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
9855
+ sub fp, ip, #4
9856
+ push {lr}
9857
+ bl __gnu_mcount_nc
9858
+ ldr r6, .L1353
94279859 mov r4, #0
9428
- ldr r6, .L1467
9429
- mov r7, #12
9430
- ldr r5, .L1467+4
9860
+ ldr r5, .L1353+4
94319861 bl FtlWriteDump_data
9432
-.L1463:
9862
+.L1350:
94339863 ldrh r3, [r5]
94349864 uxth r0, r4
94359865 cmp r3, r0
9436
- bhi .L1465
9866
+ bhi .L1352
94379867 mov r0, #0
9438
- pop {r4, r5, r6, r7, r8, pc}
9439
-.L1465:
9868
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
9869
+.L1352:
94409870 ldr r2, [r6, #2540]
94419871 uxth r3, r4
9442
- mla r3, r7, r3, r2
9872
+ mov r1, #12
9873
+ mla r3, r1, r3, r2
94439874 ldr r3, [r3, #4]
94449875 cmp r3, #0
9445
- bge .L1464
9876
+ bge .L1351
94469877 bl flush_l2p_region
9447
-.L1464:
9878
+.L1351:
94489879 add r4, r4, #1
9449
- b .L1463
9450
-.L1468:
9880
+ b .L1350
9881
+.L1354:
94519882 .align 2
9452
-.L1467:
9883
+.L1353:
94539884 .word .LANCHOR0
94549885 .word .LANCHOR0+338
9455
- .fnend
94569886 .size l2p_flush, .-l2p_flush
94579887 .align 2
94589888 .global FtlVendorPartWrite
....@@ -9461,115 +9891,112 @@
94619891 .fpu softvfp
94629892 .type FtlVendorPartWrite, %function
94639893 FtlVendorPartWrite:
9464
- .fnstart
94659894 @ args = 0, pretend = 0, frame = 104
9466
- @ frame_needed = 0, uses_anonymous_args = 0
9467
- ldr r3, .L1480
9468
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9469
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9470
- mov r10, r2
9471
- ldr r4, .L1480+4
9472
- .pad #108
9895
+ @ frame_needed = 1, uses_anonymous_args = 0
9896
+ mov ip, sp
9897
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
9898
+ sub fp, ip, #4
94739899 sub sp, sp, #108
9474
- mov r6, r1
9475
- add r1, r0, r1
9476
- ldr r2, [r3]
9477
- str r3, [sp, #4]
9478
- str r2, [sp, #100]
9479
- ldrh r2, [r4]
9480
- cmp r1, r2
9481
- mvnhi r9, #0
9482
- bhi .L1469
9483
- sub r4, r4, #296
9484
- mov r8, r0
9485
- add r3, r4, #308
9486
- mov r9, #0
9487
- ldrh r7, [r3]
9488
- lsr r7, r0, r7
9489
- lsl fp, r7, #2
9490
-.L1471:
9491
- cmp r6, #0
9492
- bne .L1476
9493
-.L1469:
9494
- ldr r3, [sp, #4]
9495
- mov r0, r9
9496
- ldr r2, [sp, #100]
9497
- ldr r3, [r3]
9498
- cmp r2, r3
9499
- beq .L1477
9500
- bl __stack_chk_fail
9501
-.L1476:
9502
- ldr r3, [r4, #3372]
9503
- mov r0, r8
9504
- ldr r2, [r3, fp]
9505
- ldr r3, .L1480+8
9506
- str r2, [sp, #12]
9900
+ push {lr}
9901
+ bl __gnu_mcount_nc
9902
+ mov r3, sp
9903
+ ldr r7, .L1365
9904
+ bic r10, r3, #8128
9905
+ str r2, [fp, #-136]
9906
+ bic r10, r10, #63
9907
+ add r2, r0, r1
9908
+ mov r6, r0
9909
+ mov r5, r1
9910
+ ldr r3, [r10, #24]
9911
+ str r3, [fp, #-48]
9912
+ mov r3, r7
9913
+ ldrh r8, [r3], #-12
9914
+ lsr r8, r0, r8
95079915 ldrh r3, [r3]
9916
+ cmp r2, r3
9917
+ subls r7, r7, #308
9918
+ movls r9, #0
9919
+ bls .L1357
9920
+ mvn r9, #0
9921
+ b .L1355
9922
+.L1362:
9923
+ ldr r3, [r7, #3372]
9924
+ mov r0, r6
9925
+ ldr r2, [r3, r8, lsl #2]
9926
+ ldr r3, .L1365+4
9927
+ str r2, [fp, #-148]
9928
+ ldrh r3, [r3]
9929
+ str r3, [fp, #-144]
95089930 mov r1, r3
9509
- str r3, [sp, #8]
95109931 bl __aeabi_uidivmod
9511
- ldr r3, [sp, #8]
9512
- ldr r2, [sp, #12]
9513
- str r1, [sp]
9514
- sub r5, r3, r1
9515
- uxth r5, r5
9516
- cmp r6, r5
9517
- uxthcc r5, r6
9932
+ ldr r3, [fp, #-144]
9933
+ ldr r2, [fp, #-148]
9934
+ sub r4, r3, r1
9935
+ str r1, [fp, #-140]
9936
+ ldr r0, [r7, #3308]
9937
+ uxth r4, r4
9938
+ cmp r4, r5
9939
+ uxthhi r4, r5
95189940 cmp r2, #0
9519
- cmpne r5, r3
9941
+ cmpne r3, r4
95209942 movne r1, #1
95219943 moveq r1, #0
9522
- beq .L1473
9523
- ldr r3, [r4, #3308]
9524
- add r0, sp, #16
9525
- str r2, [sp, #20]
9944
+ beq .L1359
9945
+ str r2, [fp, #-128]
95269946 mov r2, #1
9947
+ str r0, [fp, #-124]
95279948 mov r1, r2
9528
- str r3, [sp, #24]
9529
- add r3, sp, #36
9530
- str r3, [sp, #28]
9949
+ sub r0, fp, #132
9950
+ sub r3, fp, #112
9951
+ str r3, [fp, #-120]
95319952 bl FlashReadPages
9532
-.L1474:
9533
- lsl r3, r5, #9
9534
- ldr r0, [r4, #3308]
9535
- mov r1, r10
9953
+.L1360:
9954
+ lsl r3, r4, #9
9955
+ ldr r0, [r7, #3308]
95369956 mov r2, r3
9537
- str r3, [sp, #8]
9538
- ldr r3, [sp]
9539
- sub r6, r6, r5
9540
- add r8, r8, r5
9541
- add fp, fp, #4
9957
+ str r3, [fp, #-144]
9958
+ ldr r3, [fp, #-140]
9959
+ sub r5, r5, r4
9960
+ ldr r1, [fp, #-136]
9961
+ add r6, r6, r4
95429962 add r0, r0, r3, lsl #9
95439963 bl ftl_memcpy
9544
- mov r1, r7
9545
- ldr r2, [r4, #3308]
9546
- ldr r0, .L1480+12
9547
- add r7, r7, #1
9964
+ ldr r2, [r7, #3308]
9965
+ mov r1, r8
9966
+ ldr r0, .L1365+8
95489967 bl FtlMapWritePage
9549
- ldr r3, [sp, #8]
9968
+ ldr r2, [fp, #-136]
9969
+ ldr r3, [fp, #-144]
95509970 cmn r0, #1
9971
+ add r8, r8, #1
9972
+ add r3, r2, r3
95519973 mvneq r9, #0
9552
- add r10, r10, r3
9553
- b .L1471
9554
-.L1473:
9555
- ldr r3, .L1480+16
9556
- ldr r0, [r4, #3308]
9974
+ str r3, [fp, #-136]
9975
+.L1357:
9976
+ cmp r5, #0
9977
+ bne .L1362
9978
+.L1355:
9979
+ ldr r2, [fp, #-48]
9980
+ ldr r3, [r10, #24]
9981
+ cmp r2, r3
9982
+ beq .L1363
9983
+ bl __stack_chk_fail
9984
+.L1359:
9985
+ ldr r3, .L1365+12
95579986 ldrh r2, [r3]
95589987 bl ftl_memset
9559
- b .L1474
9560
-.L1477:
9561
- add sp, sp, #108
9562
- @ sp needed
9563
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9564
-.L1481:
9988
+ b .L1360
9989
+.L1363:
9990
+ mov r0, r9
9991
+ sub sp, fp, #40
9992
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
9993
+.L1366:
95659994 .align 2
9566
-.L1480:
9567
- .word __stack_chk_guard
9568
- .word .LANCHOR0+296
9995
+.L1365:
9996
+ .word .LANCHOR0+308
95699997 .word .LANCHOR0+258
95709998 .word .LANCHOR0+3608
95719999 .word .LANCHOR0+310
9572
- .fnend
957310000 .size FtlVendorPartWrite, .-FtlVendorPartWrite
957410001 .align 2
957510002 .global Ftl_save_ext_data
....@@ -9578,21 +10005,24 @@
957810005 .fpu softvfp
957910006 .type Ftl_save_ext_data, %function
958010007 Ftl_save_ext_data:
9581
- .fnstart
958210008 @ args = 0, pretend = 0, frame = 0
9583
- @ frame_needed = 0, uses_anonymous_args = 0
9584
- @ link register save eliminated.
9585
- ldr r2, .L1484
9586
- ldr r3, .L1484+4
10009
+ @ frame_needed = 1, uses_anonymous_args = 0
10010
+ mov ip, sp
10011
+ push {fp, ip, lr, pc}
10012
+ sub fp, ip, #4
10013
+ push {lr}
10014
+ bl __gnu_mcount_nc
10015
+ ldr r2, .L1369
10016
+ ldr r3, .L1369+4
958710017 ldr r1, [r2, #2640]
958810018 cmp r1, r3
9589
- bxne lr
9590
- ldr r3, .L1484+8
10019
+ ldmfdne sp, {fp, sp, pc}
10020
+ ldr r3, .L1369+8
959110021 add r2, r2, #2640
9592
- mov r1, #1
9593
- mov r0, #0
959410022 str r3, [r2, #4]
10023
+ mov r1, #1
959510024 ldr r3, [r2, #-60]
10025
+ mov r0, #0
959610026 str r3, [r2, #88]
959710027 ldr r3, [r2, #-56]
959810028 str r3, [r2, #92]
....@@ -9616,14 +10046,14 @@
961610046 str r3, [r2, #44]
961710047 ldr r3, [r2, #-24]
961810048 str r3, [r2, #48]
9619
- b FtlVendorPartWrite
9620
-.L1485:
10049
+ bl FtlVendorPartWrite
10050
+ ldmfd sp, {fp, sp, pc}
10051
+.L1370:
962110052 .align 2
9622
-.L1484:
10053
+.L1369:
962310054 .word .LANCHOR0
962410055 .word 1179929683
9625
- .word 1342177367
9626
- .fnend
10056
+ .word 1342177369
962710057 .size Ftl_save_ext_data, .-Ftl_save_ext_data
962810058 .align 2
962910059 .global FtlEctTblFlush
....@@ -9632,36 +10062,36 @@
963210062 .fpu softvfp
963310063 .type FtlEctTblFlush, %function
963410064 FtlEctTblFlush:
9635
- .fnstart
963610065 @ args = 0, pretend = 0, frame = 0
9637
- @ frame_needed = 0, uses_anonymous_args = 0
9638
- ldr r3, .L1494
10066
+ @ frame_needed = 1, uses_anonymous_args = 0
10067
+ mov ip, sp
10068
+ push {fp, ip, lr, pc}
10069
+ sub fp, ip, #4
10070
+ push {lr}
10071
+ bl __gnu_mcount_nc
10072
+ ldr r3, .L1376
963910073 movw r1, #3652
964010074 ldrh r2, [r3, r1]
964110075 cmp r2, #31
964210076 addls r2, r2, #1
9643
- movhi r2, #32
964410077 strhls r2, [r3, r1] @ movhi
9645
- movls r2, #1
9646
- cmp r0, #0
9647
- bne .L1488
9648
- ldr r1, [r3, #3348]
9649
- ldr r0, [r1, #20]
9650
- ldr r1, [r1, #16]
9651
- add r2, r2, r0
9652
- cmp r1, r2
9653
- bcc .L1492
9654
-.L1488:
9655
- push {r4, lr}
9656
- .save {r4, lr}
9657
- mov r0, #64
965810078 ldr r2, [r3, #3348]
9659
- ldr r1, [r2, #16]
9660
- str r1, [r2, #20]
9661
- ldr r1, .L1494+4
10079
+ movls r1, #1
10080
+ movhi r1, #32
10081
+ cmp r0, #0
10082
+ ldr ip, [r2, #16]
10083
+ bne .L1373
10084
+ ldr r0, [r2, #20]
10085
+ add r1, r1, r0
10086
+ cmp r1, ip
10087
+ bhi .L1374
10088
+.L1373:
10089
+ ldr r1, .L1376+4
10090
+ mov r0, #64
966210091 str r1, [r2]
9663
- movw r1, #3340
9664
- ldrh r1, [r3, r1]
10092
+ str ip, [r2, #20]
10093
+ movw r2, #3340
10094
+ ldrh r1, [r3, r2]
966510095 ldr r2, [r3, #3348]
966610096 lsl r3, r1, #9
966710097 str r3, [r2, #12]
....@@ -9672,17 +10102,14 @@
967210102 str r3, [r2, #4]
967310103 bl FtlVendorPartWrite
967410104 bl Ftl_save_ext_data
10105
+.L1374:
967510106 mov r0, #0
9676
- pop {r4, pc}
9677
-.L1492:
9678
- mov r0, #0
9679
- bx lr
9680
-.L1495:
10107
+ ldmfd sp, {fp, sp, pc}
10108
+.L1377:
968110109 .align 2
9682
-.L1494:
10110
+.L1376:
968310111 .word .LANCHOR0
968410112 .word 1112818501
9685
- .fnend
968610113 .size FtlEctTblFlush, .-FtlEctTblFlush
968710114 .align 2
968810115 .global sftl_vendor_write
....@@ -9691,14 +10118,21 @@
969110118 .fpu softvfp
969210119 .type sftl_vendor_write, %function
969310120 sftl_vendor_write:
9694
- .fnstart
969510121 @ args = 0, pretend = 0, frame = 0
9696
- @ frame_needed = 0, uses_anonymous_args = 0
9697
- @ link register save eliminated.
10122
+ @ frame_needed = 1, uses_anonymous_args = 0
10123
+ mov ip, sp
10124
+ push {fp, ip, lr, pc}
10125
+ sub fp, ip, #4
10126
+ push {lr}
10127
+ bl __gnu_mcount_nc
969810128 add r0, r0, #256
9699
- b FtlVendorPartWrite
9700
- .fnend
10129
+ bl FtlVendorPartWrite
10130
+ ldmfd sp, {fp, sp, pc}
970110131 .size sftl_vendor_write, .-sftl_vendor_write
10132
+ .section .rodata.str1.1
10133
+.LC118:
10134
+ .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
10135
+ .text
970210136 .align 2
970310137 .global FtlVendorPartRead
970410138 .syntax unified
....@@ -9706,121 +10140,124 @@
970610140 .fpu softvfp
970710141 .type FtlVendorPartRead, %function
970810142 FtlVendorPartRead:
9709
- .fnstart
971010143 @ args = 0, pretend = 0, frame = 104
9711
- @ frame_needed = 0, uses_anonymous_args = 0
9712
- ldr r3, .L1509
9713
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9714
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
9715
- mov r10, r2
9716
- ldr r5, .L1509+4
9717
- .pad #108
10144
+ @ frame_needed = 1, uses_anonymous_args = 0
10145
+ mov ip, sp
10146
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
10147
+ sub fp, ip, #4
971810148 sub sp, sp, #108
9719
- mov r7, r1
9720
- add r1, r0, r1
9721
- ldr r2, [r3]
9722
- str r3, [sp, #8]
9723
- str r2, [sp, #100]
9724
- ldrh r2, [r5]
9725
- cmp r1, r2
9726
- mvnhi r9, #0
9727
- bhi .L1497
9728
- sub r5, r5, #296
10149
+ push {lr}
10150
+ bl __gnu_mcount_nc
10151
+ mov r3, sp
10152
+ ldr r6, .L1390
10153
+ bic r3, r3, #8128
10154
+ mov r9, r2
10155
+ bic r3, r3, #63
10156
+ str r3, [fp, #-136]
10157
+ add r2, r0, r1
972910158 mov r8, r0
9730
- add r3, r5, #308
9731
- mov r9, #0
9732
- ldrh r6, [r3]
9733
- lsr r6, r0, r6
9734
- lsl fp, r6, #2
9735
-.L1499:
9736
- cmp r7, #0
9737
- bne .L1505
9738
-.L1497:
9739
- ldr r3, [sp, #8]
9740
- mov r0, r9
9741
- ldr r2, [sp, #100]
9742
- ldr r3, [r3]
10159
+ mov r5, r1
10160
+ ldr r3, [r3, #24]
10161
+ str r3, [fp, #-48]
10162
+ mov r3, r6
10163
+ ldrh r7, [r3], #-12
10164
+ lsr r7, r0, r7
10165
+ ldrh r3, [r3]
974310166 cmp r2, r3
9744
- beq .L1506
9745
- bl __stack_chk_fail
9746
-.L1505:
9747
- ldr r3, [r5, #3372]
10167
+ subls r6, r6, #308
10168
+ movls r10, #0
10169
+ bls .L1381
10170
+ mvn r10, #0
10171
+ b .L1379
10172
+.L1387:
10173
+ ldr r2, .L1390+4
974810174 mov r0, r8
9749
- ldr r3, [r3, fp]
9750
- str r3, [sp, #12]
9751
- ldr r3, .L1509+8
9752
- ldrh r4, [r3]
10175
+ ldr r3, [r6, #3372]
10176
+ ldrh r4, [r2]
10177
+ ldr r3, [r3, r7, lsl #2]
975310178 mov r1, r4
10179
+ str r3, [fp, #-144]
975410180 bl __aeabi_uidivmod
975510181 sub r4, r4, r1
9756
- ldr r3, [sp, #12]
10182
+ ldr r3, [fp, #-144]
975710183 uxth r4, r4
9758
- str r1, [sp, #4]
9759
- cmp r7, r4
9760
- uxthcc r4, r7
10184
+ str r1, [fp, #-140]
10185
+ cmp r4, r5
10186
+ uxthhi r4, r5
976110187 cmp r3, #0
976210188 lsl r2, r4, #9
9763
- str r2, [sp, #12]
9764
- beq .L1501
9765
- ldr r2, [r5, #3308]
9766
- add r0, sp, #16
9767
- str r3, [sp, #20]
9768
- str r3, [sp, #12]
9769
- str r2, [sp, #24]
9770
- add r2, sp, #36
9771
- str r2, [sp, #28]
10189
+ str r2, [fp, #-144]
10190
+ beq .L1383
10191
+ ldr r2, [r6, #3308]
10192
+ sub r0, fp, #132
10193
+ str r2, [fp, #-124]
10194
+ sub r2, fp, #112
10195
+ str r2, [fp, #-120]
977210196 mov r2, #1
977310197 mov r1, r2
10198
+ str r3, [fp, #-128]
10199
+ str r3, [fp, #-148]
977410200 bl FlashReadPages
9775
- ldr r2, [sp, #16]
9776
- ldr r3, [sp, #12]
10201
+ ldr r2, [fp, #-132]
10202
+ ldr r3, [fp, #-148]
977710203 cmn r2, #1
9778
- ldr r2, [r5, #3452]
9779
- mvneq r9, #0
10204
+ ldr r2, [r6, #3452]
10205
+ mvneq r10, #0
978010206 cmp r2, #256
9781
- bne .L1503
10207
+ bne .L1385
10208
+ ldr r0, .L1390+8
978210209 mov r2, r3
9783
- mov r1, r6
9784
- ldr r0, .L1509+12
10210
+ mov r1, r7
978510211 bl sftl_printk
9786
- ldr r2, [r5, #3308]
9787
- mov r1, r6
9788
- ldr r0, .L1509+16
10212
+ ldr r2, [r6, #3308]
10213
+ ldr r0, .L1390+12
10214
+ mov r1, r7
978910215 bl FtlMapWritePage
9790
-.L1503:
9791
- ldr r1, [r5, #3308]
10216
+.L1385:
10217
+ ldr r1, [r6, #3308]
979210218 lsl r2, r4, #9
9793
- ldr r3, [sp, #4]
9794
- mov r0, r10
10219
+ ldr r3, [fp, #-140]
10220
+ mov r0, r9
979510221 add r1, r1, r3, lsl #9
979610222 bl ftl_memcpy
9797
-.L1504:
9798
- add r6, r6, #1
9799
- sub r7, r7, r4
10223
+.L1386:
10224
+ ldr r3, [fp, #-144]
10225
+ add r7, r7, #1
10226
+ sub r5, r5, r4
980010227 add r8, r8, r4
9801
- add r10, r10, r4, lsl #9
9802
- add fp, fp, #4
9803
- b .L1499
9804
-.L1501:
10228
+ add r9, r9, r3
10229
+.L1381:
10230
+ cmp r5, #0
10231
+ bne .L1387
10232
+.L1379:
10233
+ ldr r3, [fp, #-136]
10234
+ ldr r2, [fp, #-48]
10235
+ ldr r3, [r3, #24]
10236
+ cmp r2, r3
10237
+ beq .L1388
10238
+ bl __stack_chk_fail
10239
+.L1383:
980510240 lsl r2, r4, #9
980610241 mov r1, r3
9807
- mov r0, r10
10242
+ mov r0, r9
980810243 bl ftl_memset
9809
- b .L1504
9810
-.L1506:
9811
- add sp, sp, #108
9812
- @ sp needed
9813
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
9814
-.L1510:
10244
+ b .L1386
10245
+.L1388:
10246
+ mov r0, r10
10247
+ sub sp, fp, #40
10248
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
10249
+.L1391:
981510250 .align 2
9816
-.L1509:
9817
- .word __stack_chk_guard
9818
- .word .LANCHOR0+296
10251
+.L1390:
10252
+ .word .LANCHOR0+308
981910253 .word .LANCHOR0+258
982010254 .word .LC118
982110255 .word .LANCHOR0+3608
9822
- .fnend
982310256 .size FtlVendorPartRead, .-FtlVendorPartRead
10257
+ .section .rodata.str1.1
10258
+.LC119:
10259
+ .ascii "no ect\000"
10260
+ .text
982410261 .align 2
982510262 .global FtlLoadEctTbl
982610263 .syntax unified
....@@ -9828,41 +10265,42 @@
982810265 .fpu softvfp
982910266 .type FtlLoadEctTbl, %function
983010267 FtlLoadEctTbl:
9831
- .fnstart
983210268 @ args = 0, pretend = 0, frame = 0
9833
- @ frame_needed = 0, uses_anonymous_args = 0
9834
- push {r4, r5, r6, lr}
9835
- .save {r4, r5, r6, lr}
10269
+ @ frame_needed = 1, uses_anonymous_args = 0
10270
+ mov ip, sp
10271
+ push {r4, r5, fp, ip, lr, pc}
10272
+ sub fp, ip, #4
10273
+ push {lr}
10274
+ bl __gnu_mcount_nc
10275
+ ldr r4, .L1394
983610276 movw r5, #3340
9837
- ldr r4, .L1514
983810277 mov r0, #64
983910278 ldr r2, [r4, #3348]
984010279 ldrh r1, [r4, r5]
984110280 bl FtlVendorPartRead
984210281 ldr r3, [r4, #3348]
984310282 ldr r2, [r3]
9844
- ldr r3, .L1514+4
10283
+ ldr r3, .L1394+4
984510284 cmp r2, r3
9846
- beq .L1512
9847
- ldr r1, .L1514+8
9848
- ldr r0, .L1514+12
10285
+ beq .L1393
10286
+ ldr r1, .L1394+8
10287
+ ldr r0, .L1394+12
984910288 bl sftl_printk
985010289 ldrh r2, [r4, r5]
9851
- mov r1, #0
985210290 ldr r0, [r4, #3348]
10291
+ mov r1, #0
985310292 lsl r2, r2, #9
985410293 bl ftl_memset
9855
-.L1512:
10294
+.L1393:
985610295 mov r0, #0
9857
- pop {r4, r5, r6, pc}
9858
-.L1515:
10296
+ ldmfd sp, {r4, r5, fp, sp, pc}
10297
+.L1395:
985910298 .align 2
9860
-.L1514:
10299
+.L1394:
986110300 .word .LANCHOR0
986210301 .word 1112818501
986310302 .word .LC119
986410303 .word .LC77
9865
- .fnend
986610304 .size FtlLoadEctTbl, .-FtlLoadEctTbl
986710305 .align 2
986810306 .global Ftl_load_ext_data
....@@ -9871,70 +10309,66 @@
987110309 .fpu softvfp
987210310 .type Ftl_load_ext_data, %function
987310311 Ftl_load_ext_data:
9874
- .fnstart
987510312 @ args = 0, pretend = 0, frame = 0
9876
- @ frame_needed = 0, uses_anonymous_args = 0
9877
- push {r4, r5, r6, lr}
9878
- .save {r4, r5, r6, lr}
10313
+ @ frame_needed = 1, uses_anonymous_args = 0
10314
+ mov ip, sp
10315
+ push {r4, r5, fp, ip, lr, pc}
10316
+ sub fp, ip, #4
10317
+ push {lr}
10318
+ bl __gnu_mcount_nc
10319
+ ldr r4, .L1398
987910320 mov r1, #1
9880
- ldr r4, .L1520
988110321 mov r0, #0
9882
- ldr r5, .L1520+4
10322
+ ldr r5, .L1398+4
988310323 add r2, r4, #2640
988410324 bl FtlVendorPartRead
988510325 ldr r3, [r4, #2640]
988610326 cmp r3, r5
9887
- beq .L1517
10327
+ beq .L1397
10328
+ add r0, r4, #2640
988810329 mov r2, #512
988910330 mov r1, #0
9890
- add r0, r4, #2640
989110331 bl ftl_memset
989210332 str r5, [r4, #2640]
9893
-.L1517:
9894
- ldr r3, [r4, #2640]
9895
- cmp r3, r5
9896
- bne .L1518
10333
+.L1397:
10334
+ ldr r2, [r4, #2672]
10335
+ str r2, [r4, #2608]
10336
+ ldr r2, [r4, #2676]
10337
+ str r2, [r4, #2560]
10338
+ ldr r2, [r4, #2680]
989710339 ldr r3, [r4, #2728]
10340
+ str r2, [r4, #2568]
10341
+ ldr r2, [r4, #2684]
989810342 str r3, [r4, #2580]
10343
+ str r2, [r4, #2612]
989910344 ldr r3, [r4, #2732]
10345
+ ldr r2, [r4, #2688]
990010346 str r3, [r4, #2584]
10347
+ str r2, [r4, #2616]
990110348 ldr r3, [r4, #2648]
10349
+ ldr r2, .L1398+8
990210350 str r3, [r4, #2576]
990310351 ldr r3, [r4, #2652]
990410352 str r3, [r4, #2564]
990510353 ldr r3, [r4, #2656]
990610354 str r3, [r4, #2556]
990710355 ldr r3, [r4, #2660]
10356
+ ldrh r2, [r2]
990810357 str r3, [r4, #2572]
9909
- ldr r3, [r4, #2668]
9910
- str r3, [r4, #2600]
9911
- ldr r3, [r4, #2672]
9912
- str r3, [r4, #2608]
9913
- ldr r3, [r4, #2676]
9914
- str r3, [r4, #2560]
9915
- ldr r3, [r4, #2680]
9916
- str r3, [r4, #2568]
9917
- ldr r3, [r4, #2684]
9918
- str r3, [r4, #2612]
9919
- ldr r3, [r4, #2688]
9920
- str r3, [r4, #2616]
9921
-.L1518:
9922
- ldr r3, .L1520+8
992310358 ldr r0, [r4, #2596]
10359
+ ldr r3, [r4, #2668]
992410360 ldrh r1, [r4, #240]
9925
- ldrh r2, [r3]
9926
- ldr r3, [r4, #2600]
10361
+ str r3, [r4, #2600]
992710362 mla r0, r0, r2, r3
992810363 bl __aeabi_uidiv
992910364 str r0, [r4, #2604]
9930
- pop {r4, r5, r6, pc}
9931
-.L1521:
10365
+ ldmfd sp, {r4, r5, fp, sp, pc}
10366
+.L1399:
993210367 .align 2
9933
-.L1520:
10368
+.L1398:
993410369 .word .LANCHOR0
993510370 .word 1179929683
993610371 .word .LANCHOR0+292
9937
- .fnend
993810372 .size Ftl_load_ext_data, .-Ftl_load_ext_data
993910373 .align 2
994010374 .global sftl_vendor_read
....@@ -9943,13 +10377,16 @@
994310377 .fpu softvfp
994410378 .type sftl_vendor_read, %function
994510379 sftl_vendor_read:
9946
- .fnstart
994710380 @ args = 0, pretend = 0, frame = 0
9948
- @ frame_needed = 0, uses_anonymous_args = 0
9949
- @ link register save eliminated.
10381
+ @ frame_needed = 1, uses_anonymous_args = 0
10382
+ mov ip, sp
10383
+ push {fp, ip, lr, pc}
10384
+ sub fp, ip, #4
10385
+ push {lr}
10386
+ bl __gnu_mcount_nc
995010387 add r0, r0, #256
9951
- b FtlVendorPartRead
9952
- .fnend
10388
+ bl FtlVendorPartRead
10389
+ ldmfd sp, {fp, sp, pc}
995310390 .size sftl_vendor_read, .-sftl_vendor_read
995410391 .align 2
995510392 .global FtlMapBlkWriteDump_data
....@@ -9958,54 +10395,58 @@
995810395 .fpu softvfp
995910396 .type FtlMapBlkWriteDump_data, %function
996010397 FtlMapBlkWriteDump_data:
9961
- .fnstart
996210398 @ args = 0, pretend = 0, frame = 0
9963
- @ frame_needed = 0, uses_anonymous_args = 0
10399
+ @ frame_needed = 1, uses_anonymous_args = 0
10400
+ mov ip, sp
10401
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
10402
+ sub fp, ip, #4
10403
+ push {lr}
10404
+ bl __gnu_mcount_nc
996410405 ldr r3, [r0, #36]
10406
+ mov r4, r0
996510407 cmp r3, #0
9966
- bxeq lr
9967
- mov r3, #0
9968
- push {r4, r5, r6, lr}
9969
- .save {r4, r5, r6, lr}
9970
- str r3, [r0, #36]
9971
- mov r5, r0
9972
- ldr r3, .L1530
10408
+ ldmfdeq sp, {r4, r5, r6, r7, fp, sp, pc}
997310409 ldrh r6, [r0, #6]
9974
- ldr r2, [r0, #24]
9975
- ldr r1, [r3, #3332]
9976
- mov r4, r3
9977
- ldr r0, [r3, #3304]
10410
+ mov r2, #0
10411
+ ldr r5, .L1408
997810412 sub r6, r6, #1
10413
+ str r2, [r0, #36]
10414
+ ldr r3, [r0, #24]
997910415 uxth r6, r6
9980
- str r1, [r3, #3464]
9981
- str r0, [r3, #3460]
9982
- ldr r2, [r2, r6, lsl #2]
9983
- cmp r2, #0
9984
- str r2, [r3, #3456]
9985
- beq .L1525
10416
+ ldr r0, [r5, #3304]
10417
+ ldr r2, [r5, #3332]
10418
+ str r0, [r5, #3460]
10419
+ str r2, [r5, #3464]
10420
+ ldr r3, [r3, r6, lsl #2]
10421
+ str r3, [r5, #3456]
10422
+ cmp r3, #0
10423
+ beq .L1403
998610424 mov r2, #1
9987
- ldr r0, .L1530+4
10425
+ ldr r0, .L1408+4
998810426 mov r1, r2
998910427 bl FlashReadPages
9990
-.L1526:
9991
- ldr r2, [r4, #3460]
10428
+.L1404:
10429
+ ldr r2, [r5, #3460]
999210430 mov r1, r6
9993
- mov r0, r5
9994
- pop {r4, r5, r6, lr}
9995
- b FtlMapWritePage
9996
-.L1525:
10431
+ mov r0, r4
10432
+ bl FtlMapWritePage
10433
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
10434
+.L1403:
999710435 movw r3, #310
999810436 mov r1, #255
9999
- ldrh r2, [r4, r3]
10437
+ ldrh r2, [r5, r3]
1000010438 bl ftl_memset
10001
- b .L1526
10002
-.L1531:
10439
+ b .L1404
10440
+.L1409:
1000310441 .align 2
10004
-.L1530:
10442
+.L1408:
1000510443 .word .LANCHOR0
1000610444 .word .LANCHOR0+3452
10007
- .fnend
1000810445 .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data
10446
+ .section .rodata.str1.1
10447
+.LC120:
10448
+ .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
10449
+ .text
1000910450 .align 2
1001010451 .global FtlVpcTblFlush
1001110452 .syntax unified
....@@ -10013,49 +10454,49 @@
1001310454 .fpu softvfp
1001410455 .type FtlVpcTblFlush, %function
1001510456 FtlVpcTblFlush:
10016
- .fnstart
1001710457 @ args = 0, pretend = 0, frame = 0
10018
- @ frame_needed = 0, uses_anonymous_args = 0
10019
- push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
10020
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
10458
+ @ frame_needed = 1, uses_anonymous_args = 0
10459
+ mov ip, sp
10460
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
10461
+ sub fp, ip, #4
10462
+ push {lr}
10463
+ bl __gnu_mcount_nc
10464
+ ldr r4, .L1420
1002110465 mov r6, #0
10022
- ldr r4, .L1542
1002310466 mov r1, #255
10024
- ldr r3, [r4, #3300]
1002510467 add r5, r4, #2624
10026
- ldr r7, [r4, #3332]
10027
- sub r8, r5, #156
1002810468 add r9, r4, #304
10469
+ sub r8, r5, #156
10470
+ ldr r7, [r4, #3332]
10471
+ ldr r3, [r4, #3300]
1002910472 str r3, [r4, #3460]
10030
- mov fp, r9
1003110473 ldrh r3, [r5]
10032
- add r10, r9, #6
1003310474 str r7, [r4, #3464]
10034
- str r6, [r7, #12]
1003510475 strh r3, [r7, #2] @ movhi
10036
- ldr r3, .L1542+4
10476
+ ldr r3, .L1420+4
1003710477 strh r3, [r7] @ movhi
10478
+ str r6, [r7, #12]
1003810479 ldr r3, [r4, #2632]
10039
- str r6, [r7, #8]
10040
- ldrh r2, [r4, #26]
1004110480 str r3, [r7, #4]
10042
- ldr r3, .L1542+8
10481
+ ldr r3, .L1420+8
1004310482 str r3, [r4, #2468]
10044
- ldr r3, .L1542+12
10483
+ ldr r3, .L1420+12
1004510484 str r3, [r4, #2472]
1004610485 ldrh r3, [r5, #6]
10486
+ str r6, [r7, #8]
1004710487 strh r3, [r5, #-148] @ movhi
1004810488 ldrh r3, [r4, #254]
1004910489 strb r3, [r4, #2478]
1005010490 ldrh r3, [r4, #24]
10491
+ ldrh r2, [r4, #26]
1005110492 strh r3, [r5, #-142] @ movhi
1005210493 ldrb r3, [r4, #30] @ zero_extendqisi2
1005310494 orr r3, r3, r2, lsl #6
10054
- ldrh r2, [r4, #78]
1005510495 strh r3, [r5, #-140] @ movhi
1005610496 ldrb r3, [r4, #32] @ zero_extendqisi2
1005710497 strb r3, [r4, #2479]
1005810498 ldrh r3, [r4, #76]
10499
+ ldrh r2, [r4, #78]
1005910500 strh r3, [r5, #-138] @ movhi
1006010501 ldrb r3, [r4, #82] @ zero_extendqisi2
1006110502 orr r3, r3, r2, lsl #6
....@@ -10063,10 +10504,10 @@
1006310504 ldrb r3, [r4, #84] @ zero_extendqisi2
1006410505 strb r3, [r4, #2480]
1006510506 ldrh r3, [r4, #124]
10066
- ldrh r2, [r4, #126]
10067
- ldr r0, [r4, #3460]
1006810507 strh r3, [r5, #-134] @ movhi
10508
+ ldrh r2, [r4, #126]
1006910509 ldrb r3, [r4, #130] @ zero_extendqisi2
10510
+ ldr r0, [r4, #3460]
1007010511 orr r3, r3, r2, lsl #6
1007110512 strh r3, [r5, #-132] @ movhi
1007210513 ldrb r3, [r4, #132] @ zero_extendqisi2
....@@ -10083,20 +10524,20 @@
1008310524 mov r1, r8
1008410525 mov r2, #48
1008510526 ldr r0, [r4, #3460]
10086
- movw r8, #65535
1008710527 bl ftl_memcpy
1008810528 ldrh r2, [r4, #240]
1008910529 ldr r0, [r4, #3460]
10530
+ movw r8, #65535
1009010531 ldr r1, [r4, #72]
1009110532 lsl r2, r2, #1
1009210533 add r0, r0, #48
1009310534 bl ftl_memcpy
1009410535 mov r0, r6
1009510536 bl FtlUpdateVaildLpn
10096
-.L1533:
10097
- ldr r3, [r4, #3300]
10537
+.L1411:
1009810538 ldrh r1, [r5, #2]
1009910539 ldrh r2, [r5]
10540
+ ldr r3, [r4, #3300]
1010010541 str r3, [r4, #3460]
1010110542 ldr r3, [r4, #3332]
1010210543 str r3, [r4, #3464]
....@@ -10105,85 +10546,86 @@
1010510546 ldrh r3, [r9]
1010610547 sub r3, r3, #1
1010710548 cmp r1, r3
10108
- blt .L1534
10549
+ blt .L1412
1010910550 mov r3, #0
1011010551 ldrh r8, [r5, #4]
1011110552 strh r3, [r5, #2] @ movhi
1011210553 strh r2, [r5, #4] @ movhi
1011310554 bl FtlFreeSysBlkQueueOut
1011410555 ldr r3, [r4, #2588]
10115
- strh r0, [r5] @ movhi
10116
- add r2, r3, #1
1011710556 str r3, [r4, #2632]
10557
+ add r2, r3, #1
10558
+ strh r0, [r5] @ movhi
1011810559 str r2, [r4, #2588]
1011910560 lsl r2, r0, #10
1012010561 str r2, [r4, #3456]
1012110562 str r3, [r7, #4]
1012210563 strh r0, [r7, #2] @ movhi
10123
-.L1534:
10124
- ldrh r1, [r10]
10564
+.L1412:
10565
+ ldr r3, .L1420+16
1012510566 ldr r0, [r4, #3300]
10567
+ ldrh r1, [r3]
1012610568 bl js_hash
1012710569 mov r3, #1
1012810570 str r0, [r7, #12]
1012910571 mov r2, r3
1013010572 mov r1, r3
10131
- ldr r0, .L1542+16
10573
+ ldr r0, .L1420+20
1013210574 bl FlashProgPages
1013310575 ldrh r3, [r5, #2]
1013410576 ldr r2, [r4, #3452]
1013510577 add r3, r3, #1
10136
- uxth r3, r3
1013710578 cmn r2, #1
10579
+ uxth r3, r3
1013810580 strh r3, [r5, #2] @ movhi
10139
- bne .L1535
10581
+ bne .L1413
1014010582 cmp r3, #1
10141
- bne .L1536
10583
+ bne .L1415
10584
+ ldr r1, .L1420+24
1014210585 movw r2, #1145
10143
- ldr r1, .L1542+20
10144
- ldr r0, .L1542+24
10586
+ ldr r0, .L1420+28
1014510587 bl sftl_printk
10146
-.L1536:
1014710588 ldrh r3, [r5, #2]
10148
- add r6, r6, #1
10149
- uxth r6, r6
1015010589 cmp r3, #1
10151
- ldrheq r3, [fp]
10590
+ ldrheq r3, [r9]
1015210591 subeq r3, r3, #1
1015310592 strheq r3, [r5, #2] @ movhi
10593
+.L1415:
10594
+ add r6, r6, #1
10595
+ uxth r6, r6
1015410596 cmp r6, #3
10155
- bls .L1533
10156
- mov r2, r6
10597
+ bls .L1411
1015710598 ldr r1, [r4, #3456]
10158
- ldr r0, .L1542+28
10599
+ mov r2, r6
10600
+ ldr r0, .L1420+32
1015910601 bl sftl_printk
10160
-.L1539:
10161
- b .L1539
10162
-.L1535:
10602
+.L1418:
10603
+ b .L1418
10604
+.L1413:
1016310605 cmp r2, #256
1016410606 cmpne r3, #1
10165
- beq .L1533
10607
+ beq .L1411
1016610608 movw r3, #65535
1016710609 cmp r8, r3
10168
- beq .L1540
10169
- mov r1, #1
10610
+ beq .L1419
1017010611 mov r0, r8
10612
+ mov r1, #1
1017110613 bl FtlFreeSysBlkQueueIn
10172
-.L1540:
10614
+.L1419:
1017310615 mov r0, #0
10174
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
10175
-.L1543:
10616
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
10617
+.L1421:
1017610618 .align 2
10177
-.L1542:
10619
+.L1420:
1017810620 .word .LANCHOR0
1017910621 .word -3932
1018010622 .word 1179929683
10181
- .word 1342177367
10623
+ .word 1342177369
10624
+ .word .LANCHOR0+310
1018210625 .word .LANCHOR0+3452
1018310626 .word .LANCHOR1+471
1018410627 .word .LC8
1018510628 .word .LC120
10186
- .fnend
1018710629 .size FtlVpcTblFlush, .-FtlVpcTblFlush
1018810630 .align 2
1018910631 .global FtlSysFlush
....@@ -10192,18 +10634,19 @@
1019210634 .fpu softvfp
1019310635 .type FtlSysFlush, %function
1019410636 FtlSysFlush:
10195
- .fnstart
1019610637 @ args = 0, pretend = 0, frame = 0
10197
- @ frame_needed = 0, uses_anonymous_args = 0
10198
- push {r4, lr}
10199
- .save {r4, lr}
10638
+ @ frame_needed = 1, uses_anonymous_args = 0
10639
+ mov ip, sp
10640
+ push {fp, ip, lr, pc}
10641
+ sub fp, ip, #4
10642
+ push {lr}
10643
+ bl __gnu_mcount_nc
1020010644 bl l2p_flush
1020110645 mov r0, #1
1020210646 bl FtlEctTblFlush
1020310647 bl FtlVpcTblFlush
1020410648 mov r0, #0
10205
- pop {r4, pc}
10206
- .fnend
10649
+ ldmfd sp, {fp, sp, pc}
1020710650 .size FtlSysFlush, .-FtlSysFlush
1020810651 .align 2
1020910652 .global sftl_deinit
....@@ -10212,26 +10655,25 @@
1021210655 .fpu softvfp
1021310656 .type sftl_deinit, %function
1021410657 sftl_deinit:
10215
- .fnstart
1021610658 @ args = 0, pretend = 0, frame = 0
10217
- @ frame_needed = 0, uses_anonymous_args = 0
10218
- ldr r3, .L1552
10659
+ @ frame_needed = 1, uses_anonymous_args = 0
10660
+ mov ip, sp
10661
+ push {fp, ip, lr, pc}
10662
+ sub fp, ip, #4
10663
+ push {lr}
10664
+ bl __gnu_mcount_nc
10665
+ ldr r3, .L1425
1021910666 ldr r3, [r3]
1022010667 cmp r3, #1
10221
- bne .L1549
10222
- push {r4, lr}
10223
- .save {r4, lr}
10668
+ bne .L1424
1022410669 bl FtlSysFlush
10670
+.L1424:
1022510671 mov r0, #0
10226
- pop {r4, pc}
10227
-.L1549:
10228
- mov r0, #0
10229
- bx lr
10230
-.L1553:
10672
+ ldmfd sp, {fp, sp, pc}
10673
+.L1426:
1023110674 .align 2
10232
-.L1552:
10675
+.L1425:
1023310676 .word .LANCHOR2
10234
- .fnend
1023510677 .size sftl_deinit, .-sftl_deinit
1023610678 .align 2
1023710679 .global sftl_discard
....@@ -10240,112 +10682,115 @@
1024010682 .fpu softvfp
1024110683 .type sftl_discard, %function
1024210684 sftl_discard:
10243
- .fnstart
1024410685 @ args = 0, pretend = 0, frame = 16
10245
- @ frame_needed = 0, uses_anonymous_args = 0
10246
- push {r4, r5, r6, r7, r8, r9, lr}
10247
- .save {r4, r5, r6, r7, r8, r9, lr}
10248
- .pad #20
10249
- sub sp, sp, #20
10250
- ldr r8, .L1572
10251
- ldr r4, .L1572+4
10252
- ldr r3, [r8]
10253
- str r3, [sp, #12]
10254
- ldr r3, [r4, #340]
10686
+ @ frame_needed = 1, uses_anonymous_args = 0
10687
+ mov ip, sp
10688
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
10689
+ sub fp, ip, #4
10690
+ sub sp, sp, #16
10691
+ push {lr}
10692
+ bl __gnu_mcount_nc
10693
+ mov r3, sp
10694
+ ldr r8, .L1444
10695
+ bic r7, r3, #8128
10696
+ mov r9, r0
10697
+ bic r7, r7, #63
10698
+ mov r4, r1
10699
+ ldr r3, [r7, #24]
10700
+ str r3, [fp, #-40]
10701
+ ldr r3, [r8, #340]
1025510702 cmp r3, r1
1025610703 cmpcs r3, r0
10257
- bls .L1564
10704
+ bls .L1437
1025810705 add r2, r0, r1
10259
- mov r7, r0
1026010706 cmp r3, r2
10261
- mov r5, r1
10262
- bcc .L1564
10707
+ bcc .L1437
1026310708 cmp r1, #31
10264
- bhi .L1556
10265
-.L1561:
10709
+ bhi .L1429
10710
+.L1434:
1026610711 mov r0, #0
10267
-.L1554:
10268
- ldr r2, [sp, #12]
10269
- ldr r3, [r8]
10712
+.L1427:
10713
+ ldr r2, [fp, #-40]
10714
+ ldr r3, [r7, #24]
1027010715 cmp r2, r3
10271
- beq .L1562
10716
+ beq .L1435
1027210717 bl __stack_chk_fail
10273
-.L1556:
10718
+.L1429:
1027410719 movw r3, #258
10275
- ldrh r6, [r4, r3]
10276
- mov r1, r6
10720
+ ldrh r5, [r8, r3]
10721
+ mov r1, r5
1027710722 bl __aeabi_uidiv
10278
- smulbb r3, r0, r6
10279
- mov r9, r0
10280
- sub r7, r7, r3
10281
- uxth r7, r7
10282
- cmp r7, #0
10283
- beq .L1557
10284
- sub r6, r6, r7
10285
- add r9, r0, #1
10286
- cmp r6, r5
10287
- movcs r6, r5
10288
- uxth r6, r6
10289
- sub r5, r5, r6
10290
-.L1557:
10291
- ldr r6, .L1572+8
10723
+ mov r6, r0
10724
+ smulbb r0, r0, r5
10725
+ sub r9, r9, r0
10726
+ uxth r9, r9
10727
+ cmp r9, #0
10728
+ beq .L1430
10729
+ sub r5, r5, r9
10730
+ add r6, r6, #1
10731
+ cmp r5, r4
10732
+ movcs r5, r4
10733
+ uxth r5, r5
10734
+ sub r4, r4, r5
10735
+.L1430:
10736
+ ldr r5, .L1444+4
1029210737 mvn r3, #0
10293
- str r3, [sp, #8]
10294
- mov r7, r6
10295
-.L1558:
10296
- ldrh r3, [r6]
10297
- cmp r5, r3
10298
- bcs .L1560
10299
- ldr r3, [r4, #3656]
10738
+ str r3, [fp, #-44]
10739
+.L1431:
10740
+ ldrh r3, [r5]
10741
+ cmp r3, r4
10742
+ bls .L1433
10743
+ ldr r3, [r8, #3656]
1030010744 cmp r3, #32
10301
- bls .L1561
10302
- mov r5, #0
10303
- str r5, [r4, #3656]
10745
+ bls .L1434
10746
+ mov r4, #0
10747
+ str r4, [r8, #3656]
1030410748 bl l2p_flush
1030510749 bl FtlVpcTblFlush
10306
- b .L1561
10307
-.L1560:
10750
+ b .L1434
10751
+.L1433:
10752
+ sub r1, fp, #48
10753
+ mov r0, r6
1030810754 mov r2, #0
10309
- add r1, sp, #4
10310
- mov r0, r9
1031110755 bl log2phys
10312
- ldr r3, [sp, #4]
10756
+ ldr r3, [fp, #-48]
1031310757 cmn r3, #1
10314
- beq .L1559
10315
- ldr r3, [r4, #3656]
10758
+ beq .L1432
10759
+ ldr r3, [r8, #3656]
10760
+ sub r1, fp, #44
1031610761 mov r2, #1
10317
- add r1, sp, #8
10318
- mov r0, r9
10762
+ mov r0, r6
1031910763 add r3, r3, #1
10320
- str r3, [r4, #3656]
10321
- ldr r3, [r4, #2560]
10764
+ str r3, [r8, #3656]
10765
+ ldr r3, [r8, #2560]
1032210766 add r3, r3, #1
10323
- str r3, [r4, #2560]
10767
+ str r3, [r8, #2560]
1032410768 bl log2phys
10325
- ldr r0, [sp, #4]
10769
+ ldr r0, [fp, #-48]
1032610770 ubfx r0, r0, #10, #16
1032710771 bl P2V_block_in_plane
1032810772 bl decrement_vpc_count
10329
-.L1559:
10330
- ldrh r3, [r7]
10331
- add r9, r9, #1
10332
- sub r5, r5, r3
10333
- b .L1558
10334
-.L1564:
10773
+.L1432:
10774
+ ldrh r3, [r5]
10775
+ add r6, r6, #1
10776
+ sub r4, r4, r3
10777
+ b .L1431
10778
+.L1437:
1033510779 mvn r0, #0
10336
- b .L1554
10337
-.L1562:
10338
- add sp, sp, #20
10339
- @ sp needed
10340
- pop {r4, r5, r6, r7, r8, r9, pc}
10341
-.L1573:
10780
+ b .L1427
10781
+.L1435:
10782
+ sub sp, fp, #36
10783
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
10784
+.L1445:
1034210785 .align 2
10343
-.L1572:
10344
- .word __stack_chk_guard
10786
+.L1444:
1034510787 .word .LANCHOR0
1034610788 .word .LANCHOR0+258
10347
- .fnend
1034810789 .size sftl_discard, .-sftl_discard
10790
+ .section .rodata.str1.1
10791
+.LC121:
10792
+ .ascii "FtlCheckVpc %x = %x %x\012\000"
10793
+ .text
1034910794 .align 2
1035010795 .global FtlVpcCheckAndModify
1035110796 .syntax unified
....@@ -10353,53 +10798,56 @@
1035310798 .fpu softvfp
1035410799 .type FtlVpcCheckAndModify, %function
1035510800 FtlVpcCheckAndModify:
10356
- .fnstart
1035710801 @ args = 0, pretend = 0, frame = 8
10358
- @ frame_needed = 0, uses_anonymous_args = 0
10359
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
10360
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10361
- .pad #12
10802
+ @ frame_needed = 1, uses_anonymous_args = 0
10803
+ mov ip, sp
10804
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
10805
+ sub fp, ip, #4
10806
+ sub sp, sp, #12
10807
+ push {lr}
10808
+ bl __gnu_mcount_nc
10809
+ mov r3, sp
10810
+ ldr r4, .L1461
10811
+ bic r7, r3, #8128
10812
+ ldr r1, .L1461+4
10813
+ bic r7, r7, #63
10814
+ ldr r0, .L1461+8
1036210815 mov r5, #0
10363
- ldr r7, .L1590
10364
- ldr r4, .L1590+4
10365
- ldr r3, [r7]
10366
- ldr r1, .L1590+8
10367
- ldr r0, .L1590+12
10368
- str r3, [sp, #4]
10816
+ ldr r3, [r7, #24]
10817
+ str r3, [fp, #-48]
1036910818 bl sftl_printk
1037010819 ldrh r2, [r4, #242]
1037110820 mov r1, #0
1037210821 ldr r0, [r4, #3352]
1037310822 lsl r2, r2, #1
1037410823 bl ftl_memset
10375
-.L1575:
10824
+.L1447:
1037610825 ldr r3, [r4, #2552]
10377
- cmp r5, r3
10378
- bcc .L1577
10379
- ldr r9, .L1590+16
10826
+ cmp r3, r5
10827
+ bhi .L1449
10828
+ ldr r9, .L1461+12
1038010829 mov r8, #0
10381
- ldr r10, .L1590+20
10382
- ldr fp, .L1590+8
10383
-.L1578:
10830
+ ldr r10, .L1461+16
10831
+.L1450:
1038410832 ldrh r3, [r4, #240]
1038510833 uxth r5, r8
1038610834 cmp r3, r5
10387
- bhi .L1584
10835
+ bhi .L1456
1038810836 bl l2p_flush
1038910837 bl FtlVpcTblFlush
10390
- ldr r2, [sp, #4]
10391
- ldr r3, [r7]
10838
+ ldr r2, [fp, #-48]
10839
+ ldr r3, [r7, #24]
1039210840 cmp r2, r3
10393
- beq .L1585
10841
+ beq .L1457
1039410842 bl __stack_chk_fail
10395
-.L1577:
10396
- mov r2, #0
10397
- mov r1, sp
10843
+.L1449:
10844
+ sub r1, fp, #52
1039810845 mov r0, r5
10846
+ mov r2, #0
1039910847 bl log2phys
10400
- ldr r0, [sp]
10848
+ ldr r0, [fp, #-52]
1040110849 cmn r0, #1
10402
- beq .L1576
10850
+ beq .L1448
1040310851 ubfx r0, r0, #10, #16
1040410852 bl P2V_block_in_plane
1040510853 ldr r2, [r4, #3352]
....@@ -10407,10 +10855,10 @@
1040710855 ldrh r3, [r2, r0]
1040810856 add r3, r3, #1
1040910857 strh r3, [r2, r0] @ movhi
10410
-.L1576:
10858
+.L1448:
1041110859 add r5, r5, #1
10412
- b .L1575
10413
-.L1584:
10860
+ b .L1447
10861
+.L1456:
1041410862 uxth r1, r8
1041510863 ldr r3, [r4, #72]
1041610864 movw r0, #65535
....@@ -10420,63 +10868,60 @@
1042010868 ldrh r3, [r3, r6]
1042110869 cmp r2, r0
1042210870 cmpne r2, r3
10423
- beq .L1580
10871
+ beq .L1452
1042410872 mov r0, r9
1042510873 bl sftl_printk
1042610874 ldrh r3, [r4, #24]
1042710875 cmp r3, r5
10428
- beq .L1580
10876
+ beq .L1452
1042910877 ldrh r3, [r4, #124]
1043010878 cmp r3, r5
10431
- beq .L1580
10879
+ beq .L1452
1043210880 ldrh r3, [r4, #76]
1043310881 cmp r3, r5
10434
- beq .L1580
10882
+ beq .L1452
1043510883 ldr r3, [r4, #72]
10436
- ldrh r2, [r3, r6]
10437
- cmp r2, #0
1043810884 ldr r2, [r4, #3352]
10885
+ ldrh r1, [r3, r6]
1043910886 ldrh r2, [r2, r6]
10887
+ cmp r1, #0
1044010888 strh r2, [r3, r6] @ movhi
10441
- bne .L1582
10889
+ bne .L1454
1044210890 mov r1, r5
1044310891 mov r0, r10
1044410892 bl List_remove_node
1044510893 ldrh r3, [r4, #224]
1044610894 cmp r3, #0
10447
- bne .L1583
10895
+ bne .L1455
10896
+ ldr r1, .L1461+4
1044810897 movw r2, #2330
10449
- mov r1, fp
10450
- ldr r0, .L1590+24
10898
+ ldr r0, .L1461+20
1045110899 bl sftl_printk
10452
-.L1583:
10900
+.L1455:
1045310901 ldrh r3, [r4, #224]
1045410902 mov r0, r5
1045510903 sub r3, r3, #1
1045610904 strh r3, [r4, #224] @ movhi
1045710905 bl INSERT_DATA_LIST
10458
-.L1580:
10906
+.L1452:
1045910907 add r8, r8, #1
10460
- b .L1578
10461
-.L1582:
10908
+ b .L1450
10909
+.L1454:
1046210910 mov r0, r5
1046310911 bl update_vpc_list
10464
- b .L1580
10465
-.L1585:
10466
- add sp, sp, #12
10467
- @ sp needed
10468
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10469
-.L1591:
10912
+ b .L1452
10913
+.L1457:
10914
+ sub sp, fp, #40
10915
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
10916
+.L1462:
1047010917 .align 2
10471
-.L1590:
10472
- .word __stack_chk_guard
10918
+.L1461:
1047310919 .word .LANCHOR0
1047410920 .word .LANCHOR1+486
1047510921 .word .LC111
1047610922 .word .LC121
1047710923 .word .LANCHOR0+2532
1047810924 .word .LC8
10479
- .fnend
1048010925 .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
1048110926 .align 2
1048210927 .global allocate_new_data_superblock
....@@ -10485,73 +10930,80 @@
1048510930 .fpu softvfp
1048610931 .type allocate_new_data_superblock, %function
1048710932 allocate_new_data_superblock:
10488
- .fnstart
1048910933 @ args = 0, pretend = 0, frame = 0
10490
- @ frame_needed = 0, uses_anonymous_args = 0
10491
- push {r4, r5, r6, lr}
10492
- .save {r4, r5, r6, lr}
10493
- mov r6, r0
10494
- ldr r4, .L1603
10495
- ldrh r5, [r0]
10496
- ldrh r3, [r4, #240]
10497
- cmp r3, r5
10498
- bcs .L1593
10934
+ @ frame_needed = 1, uses_anonymous_args = 0
10935
+ mov ip, sp
10936
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
10937
+ sub fp, ip, #4
10938
+ push {lr}
10939
+ bl __gnu_mcount_nc
10940
+ ldr r6, .L1473
10941
+ mov r5, r0
10942
+ ldrh r4, [r0]
10943
+ ldrh r3, [r6, #240]
10944
+ cmp r3, r4
10945
+ bcs .L1464
10946
+ ldr r1, .L1473+4
1049910947 movw r2, #2766
10500
- ldr r1, .L1603+4
10501
- ldr r0, .L1603+8
10948
+ ldr r0, .L1473+8
1050210949 bl sftl_printk
10503
-.L1593:
10950
+.L1464:
1050410951 movw r3, #65535
10505
- cmp r5, r3
10506
- beq .L1594
10507
- ldr r2, [r4, #72]
10508
- lsl r3, r5, #1
10509
- mov r0, r5
10952
+ cmp r4, r3
10953
+ beq .L1465
10954
+ ldr r2, [r6, #72]
10955
+ lsl r3, r4, #1
10956
+ mov r0, r4
1051010957 ldrh r3, [r2, r3]
1051110958 cmp r3, #0
10512
- beq .L1595
10959
+ beq .L1466
1051310960 bl INSERT_DATA_LIST
10514
-.L1594:
10961
+.L1465:
1051510962 mov r3, #1
10516
- strb r3, [r6, #8]
10963
+ strb r3, [r5, #8]
1051710964 movw r3, #3438
10518
- ldrh r0, [r4, r3]
10965
+ ldrh r0, [r6, r3]
1051910966 movw r3, #65535
1052010967 cmp r0, r3
10521
- beq .L1596
10522
- cmp r5, r0
10523
- bne .L1597
10524
- ldr r2, [r4, #72]
10525
- lsl r3, r0, #1
10526
- ldrh r3, [r2, r3]
10968
+ beq .L1467
10969
+ cmp r0, r4
10970
+ bne .L1468
10971
+ ldr r3, [r6, #72]
10972
+ lsl r4, r4, #1
10973
+ ldrh r3, [r3, r4]
1052710974 cmp r3, #0
10528
- beq .L1598
10529
-.L1597:
10975
+ beq .L1469
10976
+.L1468:
1053010977 bl update_vpc_list
10531
-.L1598:
10532
- mvn r2, #0
10978
+.L1469:
1053310979 movw r3, #3438
10534
- strh r2, [r4, r3] @ movhi
10535
-.L1596:
10536
- mov r0, r6
10980
+ mvn r2, #0
10981
+ strh r2, [r6, r3] @ movhi
10982
+.L1467:
10983
+ mov r0, r5
1053710984 bl allocate_data_superblock
1053810985 bl l2p_flush
1053910986 mov r0, #0
1054010987 bl FtlEctTblFlush
1054110988 bl FtlVpcTblFlush
1054210989 mov r0, #0
10543
- pop {r4, r5, r6, pc}
10544
-.L1595:
10990
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
10991
+.L1466:
1054510992 bl INSERT_FREE_LIST
10546
- b .L1594
10547
-.L1604:
10993
+ b .L1465
10994
+.L1474:
1054810995 .align 2
10549
-.L1603:
10996
+.L1473:
1055010997 .word .LANCHOR0
1055110998 .word .LANCHOR1+507
1055210999 .word .LC8
10553
- .fnend
1055411000 .size allocate_new_data_superblock, .-allocate_new_data_superblock
11001
+ .section .rodata.str1.1
11002
+.LC122:
11003
+ .ascii "FtlProgPages error %x = %d\012\000"
11004
+.LC123:
11005
+ .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
11006
+ .text
1055511007 .align 2
1055611008 .global FtlProgPages
1055711009 .syntax unified
....@@ -10559,46 +11011,37 @@
1055911011 .fpu softvfp
1056011012 .type FtlProgPages, %function
1056111013 FtlProgPages:
10562
- .fnstart
1056311014 @ args = 0, pretend = 0, frame = 16
10564
- @ frame_needed = 0, uses_anonymous_args = 0
10565
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10566
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10567
- mov r5, r3
10568
- ldr r6, .L1620
10569
- .pad #20
11015
+ @ frame_needed = 1, uses_anonymous_args = 0
11016
+ mov ip, sp
11017
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
11018
+ sub fp, ip, #4
1057011019 sub sp, sp, #20
11020
+ push {lr}
11021
+ bl __gnu_mcount_nc
11022
+ mov r5, r3
11023
+ mov r3, sp
11024
+ bic r6, r3, #8128
11025
+ ldr r9, .L1493
11026
+ bic r6, r6, #63
1057111027 mov r7, #0
11028
+ mov r8, r7
1057211029 mov r2, #0
10573
- ldr fp, .L1620+4
1057411030 mov r4, r0
10575
- ldr r3, [r6]
10576
- mov r10, r1
10577
- ldr r9, .L1620+8
10578
- str r3, [sp, #12]
11031
+ str r1, [fp, #-56]
11032
+ ldr r3, [r6, #24]
11033
+ str r3, [fp, #-48]
1057911034 ldrb r3, [r5, #9] @ zero_extendqisi2
1058011035 bl FlashProgPages
10581
-.L1606:
10582
- cmp r7, r10
10583
- bne .L1613
10584
- ldr r3, .L1620+8
10585
- ldrb r2, [r5, #6] @ zero_extendqisi2
10586
- ldrh r3, [r3, #232]
10587
- cmp r2, r3
10588
- bcc .L1605
10589
- mov r2, #1000
10590
- ldr r1, .L1620+12
10591
- ldr r0, .L1620+16
10592
- bl sftl_printk
10593
-.L1605:
10594
- ldr r2, [sp, #12]
10595
- ldr r3, [r6]
10596
- cmp r2, r3
10597
- beq .L1615
10598
- bl __stack_chk_fail
10599
-.L1608:
11036
+.L1476:
11037
+ ldr r3, [fp, #-56]
11038
+ cmp r8, r3
11039
+ beq .L1482
11040
+ ldr r10, .L1493+4
11041
+ b .L1483
11042
+.L1478:
1060011043 ldr r1, [r4, #4]
10601
- mov r0, fp
11044
+ mov r0, r10
1060211045 bl sftl_printk
1060311046 ldr r0, [r4, #4]
1060411047 ubfx r0, r0, #10, #16
....@@ -10606,77 +11049,93 @@
1060611049 bl decrement_vpc_count
1060711050 ldrh r3, [r5, #4]
1060811051 cmp r3, #0
10609
- bne .L1607
11052
+ bne .L1477
1061011053 mov r0, r5
1061111054 bl allocate_new_data_superblock
10612
-.L1607:
11055
+.L1477:
1061311056 mov r0, r5
11057
+ mov r7, #1
1061411058 bl get_new_active_ppa
10615
- mov r2, #0
1061611059 str r0, [r4, #4]
10617
- str r0, [sp, #8]
10618
- mov r1, #1
11060
+ str r0, [fp, #-52]
11061
+ mov r2, #0
1061911062 ldrb r3, [r5, #9] @ zero_extendqisi2
1062011063 mov r0, r4
11064
+ mov r1, #1
1062111065 bl FlashProgPages
10622
-.L1613:
11066
+.L1483:
1062311067 ldr r2, [r4]
1062411068 cmn r2, #1
1062511069 cmpne r2, #256
10626
- beq .L1608
11070
+ beq .L1478
1062711071 ldrb r2, [r5, #6] @ zero_extendqisi2
1062811072 ldrh r3, [r9, #232]
1062911073 cmp r2, r3
10630
- bcc .L1609
10631
- movw r2, #985
10632
- ldr r1, .L1620+12
10633
- ldr r0, .L1620+16
11074
+ bcc .L1479
11075
+ ldr r1, .L1493+8
11076
+ movw r2, #986
11077
+ ldr r0, .L1493+12
1063411078 bl sftl_printk
10635
-.L1609:
11079
+.L1479:
1063611080 ldr r3, [r4, #4]
10637
- add r1, sp, #16
10638
- mov r2, #1
11081
+ sub r1, fp, #52
1063911082 ldr r0, [r4, #16]
10640
- str r3, [r1, #-8]!
11083
+ mov r2, #1
11084
+ str r3, [fp, #-52]
1064111085 bl log2phys
1064211086 ldr r3, [r4, #12]
10643
- ldr r3, [r3, #12]
10644
- ubfx r0, r3, #10, #16
10645
- str r3, [sp, #4]
11087
+ ldr r0, [r3, #12]
11088
+ cmn r0, #1
11089
+ beq .L1480
11090
+ ubfx r0, r0, #10, #16
1064611091 bl P2V_block_in_plane
10647
- ldr r3, [sp, #4]
10648
- mov r8, r0
10649
- cmn r3, #1
10650
- beq .L1610
1065111092 ldr r2, [r9, #72]
1065211093 lsl r3, r0, #1
11094
+ mov r10, r0
1065311095 ldrh r2, [r2, r3]
1065411096 cmp r2, #0
10655
- bne .L1611
11097
+ bne .L1481
1065611098 mov r1, r0
10657
- ldr r0, .L1620+20
11099
+ ldr r0, .L1493+16
1065811100 bl sftl_printk
10659
-.L1611:
10660
- mov r0, r8
11101
+.L1481:
11102
+ mov r0, r10
1066111103 bl decrement_vpc_count
10662
-.L1610:
10663
- add r7, r7, #1
11104
+.L1480:
11105
+ add r8, r8, #1
1066411106 add r4, r4, #20
10665
- b .L1606
10666
-.L1615:
10667
- add sp, sp, #20
10668
- @ sp needed
10669
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10670
-.L1621:
11107
+ b .L1476
11108
+.L1482:
11109
+ cmp r7, #0
11110
+ beq .L1484
11111
+ bl FtlSysFlush
11112
+.L1484:
11113
+ ldr r3, .L1493
11114
+ ldrb r2, [r5, #6] @ zero_extendqisi2
11115
+ ldrh r3, [r3, #232]
11116
+ cmp r2, r3
11117
+ bcc .L1475
11118
+ ldr r1, .L1493+8
11119
+ movw r2, #1005
11120
+ ldr r0, .L1493+12
11121
+ bl sftl_printk
11122
+.L1475:
11123
+ ldr r2, [fp, #-48]
11124
+ ldr r3, [r6, #24]
11125
+ cmp r2, r3
11126
+ beq .L1486
11127
+ bl __stack_chk_fail
11128
+.L1486:
11129
+ sub sp, fp, #40
11130
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
11131
+.L1494:
1067111132 .align 2
10672
-.L1620:
10673
- .word __stack_chk_guard
10674
- .word .LC122
11133
+.L1493:
1067511134 .word .LANCHOR0
11135
+ .word .LC122
1067611136 .word .LANCHOR1+536
1067711137 .word .LC8
1067811138 .word .LC123
10679
- .fnend
1068011139 .size FtlProgPages, .-FtlProgPages
1068111140 .align 2
1068211141 .global FtlGcFreeTempBlock
....@@ -10685,98 +11144,102 @@
1068511144 .fpu softvfp
1068611145 .type FtlGcFreeTempBlock, %function
1068711146 FtlGcFreeTempBlock:
10688
- .fnstart
10689
- @ args = 0, pretend = 0, frame = 8
10690
- @ frame_needed = 0, uses_anonymous_args = 0
10691
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
10692
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
10693
- .pad #12
10694
- ldr r6, .L1648
10695
- ldr r4, .L1648+4
10696
- ldr r3, [r6]
11147
+ @ args = 0, pretend = 0, frame = 16
11148
+ @ frame_needed = 1, uses_anonymous_args = 0
11149
+ mov ip, sp
11150
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
11151
+ sub fp, ip, #4
11152
+ sub sp, sp, #20
11153
+ push {lr}
11154
+ bl __gnu_mcount_nc
11155
+ mov r3, sp
11156
+ ldr r4, .L1520
11157
+ bic r6, r3, #8128
11158
+ bic r6, r6, #63
1069711159 ldrh r2, [r4, #124]
10698
- str r3, [sp, #4]
11160
+ ldr r3, [r6, #24]
11161
+ str r3, [fp, #-48]
1069911162 movw r3, #302
1070011163 ldrh r1, [r4, r3]
1070111164 movw r3, #65535
1070211165 cmp r2, r3
10703
- bne .L1623
10704
-.L1630:
11166
+ bne .L1496
11167
+.L1503:
1070511168 ldrh r2, [r4, #124]
1070611169 mov r3, #0
1070711170 str r3, [r4, #3444]
1070811171 movw r3, #65535
1070911172 cmp r2, r3
10710
- bne .L1644
10711
-.L1624:
11173
+ bne .L1517
11174
+.L1497:
1071211175 mov r0, #0
10713
- b .L1622
10714
-.L1623:
11176
+ b .L1495
11177
+.L1496:
11178
+ ldr r5, .L1520+4
1071511179 cmp r0, #0
10716
- ldr r5, .L1648+8
10717
- beq .L1626
11180
+ beq .L1499
1071811181 ldrh r2, [r5, #4]
1071911182 cmp r2, r3
10720
- beq .L1627
10721
-.L1628:
11183
+ beq .L1500
11184
+.L1501:
1072211185 mov r1, #2
10723
-.L1626:
10724
- ldr r0, .L1648+12
11186
+.L1499:
11187
+ ldr r0, .L1520+8
1072511188 bl FtlGcScanTempBlk
1072611189 ldrh r2, [r5, #4]
1072711190 movw r3, #65535
10728
- str r0, [sp]
11191
+ str r0, [fp, #-52]
1072911192 cmp r2, r3
1073011193 movne r0, #1
10731
- beq .L1630
10732
-.L1622:
10733
- ldr r2, [sp, #4]
10734
- ldr r3, [r6]
11194
+ beq .L1503
11195
+.L1495:
11196
+ ldr r2, [fp, #-48]
11197
+ ldr r3, [r6, #24]
1073511198 cmp r2, r3
10736
- beq .L1639
11199
+ beq .L1512
1073711200 bl __stack_chk_fail
10738
-.L1627:
11201
+.L1500:
1073911202 mov r3, #0
1074011203 strh r3, [r5, #4] @ movhi
1074111204 ldrh r3, [r4, #224]
1074211205 cmp r3, #17
10743
- bhi .L1628
10744
- b .L1626
10745
-.L1644:
11206
+ bhi .L1501
11207
+ b .L1499
11208
+.L1517:
1074611209 movw r3, #3204
10747
- ldrb r1, [r4, #131] @ zero_extendqisi2
11210
+ movw r1, #302
1074811211 ldrh r2, [r4, r3]
10749
- movw r3, #302
10750
- ldrh r3, [r4, r3]
10751
- mul r3, r3, r1
11212
+ ldrh r1, [r4, r1]
11213
+ ldrb r3, [r4, #131] @ zero_extendqisi2
11214
+ mul r3, r1, r3
1075211215 cmp r2, r3
10753
- beq .L1631
11216
+ beq .L1504
11217
+ ldr r1, .L1520+12
1075411218 mov r2, #164
10755
- ldr r1, .L1648+16
10756
- ldr r0, .L1648+20
11219
+ ldr r0, .L1520+16
1075711220 bl sftl_printk
10758
-.L1631:
11221
+.L1504:
1075911222 movw r0, #302
10760
- ldrb r2, [r4, #131] @ zero_extendqisi2
10761
- ldrh r0, [r4, r0]
10762
- mov r5, #0
1076311223 ldrh r3, [r4, #124]
11224
+ ldrb r2, [r4, #131] @ zero_extendqisi2
11225
+ mov r5, #0
11226
+ ldrh r0, [r4, r0]
1076411227 mov r10, #12
10765
- ldr r1, [r4, #72]
10766
- ldr r9, .L1648+24
10767
- smulbb r2, r2, r0
1076811228 lsl r3, r3, #1
11229
+ ldr r1, [r4, #72]
11230
+ ldr r9, .L1520+20
11231
+ smulbb r2, r2, r0
1076911232 strh r2, [r1, r3] @ movhi
1077011233 movw r3, #3204
1077111234 ldr r2, [r4, #2576]
1077211235 ldrh r3, [r4, r3]
1077311236 add r3, r3, r2
1077411237 str r3, [r4, #2576]
10775
-.L1632:
11238
+.L1505:
1077611239 ldrh r2, [r9]
1077711240 uxth r3, r5
1077811241 cmp r2, r3
10779
- bhi .L1636
11242
+ bhi .L1509
1078011243 movw r0, #65535
1078111244 bl decrement_vpc_count
1078211245 ldrh r0, [r4, #124]
....@@ -10784,15 +11247,15 @@
1078411247 lsl r3, r0, #1
1078511248 ldrh r3, [r2, r3]
1078611249 cmp r3, #0
10787
- beq .L1637
11250
+ beq .L1510
1078811251 bl INSERT_DATA_LIST
10789
-.L1638:
10790
- mov r5, #0
11252
+.L1511:
1079111253 movw r3, #3204
10792
- strh r5, [r4, r3] @ movhi
11254
+ mov r5, #0
1079311255 mvn r7, #0
10794
- movw r3, #3196
1079511256 strh r7, [r4, #124] @ movhi
11257
+ strh r5, [r4, r3] @ movhi
11258
+ movw r3, #3196
1079611259 strh r5, [r4, r3] @ movhi
1079711260 bl l2p_flush
1079811261 bl FtlVpcTblFlush
....@@ -10801,60 +11264,60 @@
1080111264 ldrh r3, [r4, r3]
1080211265 strh r7, [r4, #172] @ movhi
1080311266 add r3, r3, r3, lsl #1
10804
- cmp r2, r3, asr #2
10805
- ldrgt r3, .L1648+28
11267
+ cmp r2, r3, lsr #2
11268
+ ldrgt r3, .L1520+24
1080611269 movgt r2, #20
1080711270 strhgt r2, [r3] @ movhi
10808
- b .L1624
10809
-.L1636:
11271
+ b .L1497
11272
+.L1509:
1081011273 uxth r8, r5
10811
- ldr fp, [r4, #3200]
10812
- ldr r3, [r4, #2552]
11274
+ ldr r3, [r4, #3200]
11275
+ ldr r2, [r4, #2552]
1081311276 mul r8, r10, r8
10814
- add r7, fp, r8
11277
+ add r7, r3, r8
1081511278 ldr r0, [r7, #8]
10816
- cmp r0, r3
10817
- bcc .L1633
10818
-.L1646:
11279
+ cmp r0, r2
11280
+ bcc .L1506
11281
+.L1518:
1081911282 ldrh r0, [r4, #124]
10820
- b .L1647
10821
-.L1633:
11283
+ b .L1519
11284
+.L1506:
1082211285 mov r2, #0
10823
- mov r1, sp
11286
+ sub r1, fp, #52
11287
+ str r3, [fp, #-56]
1082411288 bl log2phys
10825
- ldr r0, [fp, r8]
10826
- ldr r3, [sp]
10827
- cmp r0, r3
10828
- bne .L1635
11289
+ ldr r3, [fp, #-56]
11290
+ ldr r2, [fp, #-52]
11291
+ ldr r0, [r3, r8]
11292
+ cmp r0, r2
11293
+ bne .L1508
1082911294 ubfx r0, r0, #10, #16
1083011295 bl P2V_block_in_plane
10831
- mov r2, #1
10832
- mov r8, r0
1083311296 add r1, r7, #4
11297
+ mov r8, r0
11298
+ mov r2, #1
1083411299 ldr r0, [r7, #8]
1083511300 bl log2phys
1083611301 mov r0, r8
10837
-.L1647:
11302
+.L1519:
1083811303 bl decrement_vpc_count
10839
- b .L1634
10840
-.L1635:
10841
- ldr r2, [r7, #4]
10842
- cmp r3, r2
10843
- bne .L1646
10844
-.L1634:
11304
+ b .L1507
11305
+.L1508:
11306
+ ldr r3, [r7, #4]
11307
+ cmp r2, r3
11308
+ bne .L1518
11309
+.L1507:
1084511310 add r5, r5, #1
10846
- b .L1632
10847
-.L1637:
11311
+ b .L1505
11312
+.L1510:
1084811313 bl INSERT_FREE_LIST
10849
- b .L1638
10850
-.L1639:
10851
- add sp, sp, #12
10852
- @ sp needed
10853
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
10854
-.L1649:
11314
+ b .L1511
11315
+.L1512:
11316
+ sub sp, fp, #40
11317
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
11318
+.L1521:
1085511319 .align 2
10856
-.L1648:
10857
- .word __stack_chk_guard
11320
+.L1520:
1085811321 .word .LANCHOR0
1085911322 .word .LANCHOR2
1086011323 .word .LANCHOR0+124
....@@ -10862,7 +11325,6 @@
1086211325 .word .LC8
1086311326 .word .LANCHOR0+3204
1086411327 .word .LANCHOR0+3152
10865
- .fnend
1086611328 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
1086711329 .align 2
1086811330 .global FtlGcPageRecovery
....@@ -10871,32 +11333,33 @@
1087111333 .fpu softvfp
1087211334 .type FtlGcPageRecovery, %function
1087311335 FtlGcPageRecovery:
10874
- .fnstart
1087511336 @ args = 0, pretend = 0, frame = 0
10876
- @ frame_needed = 0, uses_anonymous_args = 0
10877
- push {r4, r5, r6, lr}
10878
- .save {r4, r5, r6, lr}
11337
+ @ frame_needed = 1, uses_anonymous_args = 0
11338
+ mov ip, sp
11339
+ push {r4, r5, fp, ip, lr, pc}
11340
+ sub fp, ip, #4
11341
+ push {lr}
11342
+ bl __gnu_mcount_nc
11343
+ ldr r4, .L1524
1087911344 movw r5, #302
10880
- ldr r4, .L1653
10881
- ldrh r1, [r4, r5]
1088211345 add r0, r4, #124
11346
+ ldrh r1, [r4, r5]
1088311347 bl FtlGcScanTempBlk
1088411348 ldrh r2, [r4, #126]
1088511349 ldrh r3, [r4, r5]
1088611350 cmp r2, r3
10887
- popcc {r4, r5, r6, pc}
11351
+ ldmfdcc sp, {r4, r5, fp, sp, pc}
1088811352 add r0, r4, #3392
1088911353 bl FtlMapBlkWriteDump_data
1089011354 mov r0, #0
1089111355 bl FtlGcFreeTempBlock
1089211356 mov r3, #0
1089311357 str r3, [r4, #3444]
10894
- pop {r4, r5, r6, pc}
10895
-.L1654:
11358
+ ldmfd sp, {r4, r5, fp, sp, pc}
11359
+.L1525:
1089611360 .align 2
10897
-.L1653:
11361
+.L1524:
1089811362 .word .LANCHOR0
10899
- .fnend
1090011363 .size FtlGcPageRecovery, .-FtlGcPageRecovery
1090111364 .align 2
1090211365 .global FtlPowerLostRecovery
....@@ -10905,17 +11368,19 @@
1090511368 .fpu softvfp
1090611369 .type FtlPowerLostRecovery, %function
1090711370 FtlPowerLostRecovery:
10908
- .fnstart
1090911371 @ args = 0, pretend = 0, frame = 0
10910
- @ frame_needed = 0, uses_anonymous_args = 0
10911
- push {r4, r5, r6, lr}
10912
- .save {r4, r5, r6, lr}
11372
+ @ frame_needed = 1, uses_anonymous_args = 0
11373
+ mov ip, sp
11374
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
11375
+ sub fp, ip, #4
11376
+ push {lr}
11377
+ bl __gnu_mcount_nc
11378
+ ldr r4, .L1527
1091311379 mov r5, #0
10914
- ldr r4, .L1657
1091511380 add r6, r4, #24
10916
- str r5, [r4, #3476]
10917
- mov r0, r6
1091811381 add r4, r4, #76
11382
+ mov r0, r6
11383
+ str r5, [r4, #3400]
1091911384 bl FtlRecoverySuperblock
1092011385 mov r0, r6
1092111386 bl FtlSlcSuperblockCheck
....@@ -10927,12 +11392,11 @@
1092711392 movw r0, #65535
1092811393 bl decrement_vpc_count
1092911394 mov r0, r5
10930
- pop {r4, r5, r6, pc}
10931
-.L1658:
11395
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
11396
+.L1528:
1093211397 .align 2
10933
-.L1657:
11398
+.L1527:
1093411399 .word .LANCHOR0
10935
- .fnend
1093611400 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery
1093711401 .align 2
1093811402 .global Ftl_gc_temp_data_write_back
....@@ -10941,53 +11405,54 @@
1094111405 .fpu softvfp
1094211406 .type Ftl_gc_temp_data_write_back, %function
1094311407 Ftl_gc_temp_data_write_back:
10944
- .fnstart
1094511408 @ args = 0, pretend = 0, frame = 0
10946
- @ frame_needed = 0, uses_anonymous_args = 0
10947
- push {r4, r5, r6, lr}
10948
- .save {r4, r5, r6, lr}
10949
- mov r3, #0
10950
- ldr r4, .L1668
11409
+ @ frame_needed = 1, uses_anonymous_args = 0
11410
+ mov ip, sp
11411
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
11412
+ sub fp, ip, #4
11413
+ push {lr}
11414
+ bl __gnu_mcount_nc
11415
+ ldr r4, .L1537
1095111416 mov r5, #0
1095211417 mov r6, #20
11418
+ mov r3, #0
1095311419 mov r2, r3
1095411420 ldr r1, [r4, #3168]
1095511421 ldr r0, [r4, #3292]
1095611422 bl FlashProgPages
10957
-.L1660:
11423
+.L1530:
1095811424 ldr r1, [r4, #3168]
1095911425 uxth r3, r5
10960
- cmp r1, r3
10961
- bhi .L1663
10962
- ldr r0, [r4, #3292]
11426
+ ldr r2, [r4, #3292]
11427
+ cmp r3, r1
11428
+ bcc .L1533
11429
+ mov r0, r2
1096311430 bl FtlGcBufFree
1096411431 ldrh r3, [r4, #128]
1096511432 mov r0, #0
1096611433 str r0, [r4, #3168]
1096711434 cmp r3, r0
10968
- popne {r4, r5, r6, pc}
11435
+ ldmfdne sp, {r4, r5, r6, r7, fp, sp, pc}
1096911436 mov r0, #1
1097011437 bl FtlGcFreeTempBlock
1097111438 mov r0, #1
10972
- pop {r4, r5, r6, pc}
10973
-.L1663:
11439
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
11440
+.L1533:
1097411441 mul r3, r6, r3
10975
- ldr r2, [r4, #3292]
1097611442 add r5, r5, #1
1097711443 add r1, r2, r3
1097811444 ldr r2, [r2, r3]
10979
- ldr r0, [r1, #12]
10980
- ldr r1, [r1, #4]
11445
+ ldr ip, [r1, #12]
1098111446 cmn r2, #1
10982
- ldrne r2, [r0, #8]
10983
- ldr r0, [r0, #12]
11447
+ ldr r1, [r1, #4]
11448
+ ldr r0, [ip, #12]
11449
+ ldrne r2, [ip, #8]
1098411450 bl FtlGcUpdatePage
10985
- b .L1660
10986
-.L1669:
11451
+ b .L1530
11452
+.L1538:
1098711453 .align 2
10988
-.L1668:
11454
+.L1537:
1098911455 .word .LANCHOR0
10990
- .fnend
1099111456 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
1099211457 .align 2
1099311458 .global Ftl_get_new_temp_ppa
....@@ -10996,24 +11461,26 @@
1099611461 .fpu softvfp
1099711462 .type Ftl_get_new_temp_ppa, %function
1099811463 Ftl_get_new_temp_ppa:
10999
- .fnstart
1100011464 @ args = 0, pretend = 0, frame = 0
11001
- @ frame_needed = 0, uses_anonymous_args = 0
11002
- push {r4, r5, r6, lr}
11003
- .save {r4, r5, r6, lr}
11465
+ @ frame_needed = 1, uses_anonymous_args = 0
11466
+ mov ip, sp
11467
+ push {r4, r5, fp, ip, lr, pc}
11468
+ sub fp, ip, #4
11469
+ push {lr}
11470
+ bl __gnu_mcount_nc
11471
+ ldr r4, .L1542
1100411472 movw r3, #65535
11005
- ldr r4, .L1674
1100611473 ldrh r2, [r4, #124]
1100711474 cmp r2, r3
11008
- beq .L1671
11475
+ beq .L1540
1100911476 ldrh r3, [r4, #128]
1101011477 cmp r3, #0
11011
- bne .L1672
11012
-.L1671:
11478
+ bne .L1541
11479
+.L1540:
1101311480 mov r0, #0
1101411481 mov r5, #0
1101511482 bl FtlGcFreeTempBlock
11016
- ldr r0, .L1674+4
11483
+ ldr r0, .L1542+4
1101711484 strb r5, [r4, #132]
1101811485 bl allocate_data_superblock
1101911486 movw r3, #3196
....@@ -11024,17 +11491,20 @@
1102411491 mov r0, r5
1102511492 bl FtlEctTblFlush
1102611493 bl FtlVpcTblFlush
11027
-.L1672:
11028
- ldr r0, .L1674+4
11029
- pop {r4, r5, r6, lr}
11030
- b get_new_active_ppa
11031
-.L1675:
11494
+.L1541:
11495
+ ldr r0, .L1542+4
11496
+ bl get_new_active_ppa
11497
+ ldmfd sp, {r4, r5, fp, sp, pc}
11498
+.L1543:
1103211499 .align 2
11033
-.L1674:
11500
+.L1542:
1103411501 .word .LANCHOR0
1103511502 .word .LANCHOR0+124
11036
- .fnend
1103711503 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
11504
+ .section .rodata.str1.1
11505
+.LC124:
11506
+ .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
11507
+ .text
1103811508 .align 2
1103911509 .global rk_ftl_garbage_collect
1104011510 .syntax unified
....@@ -11042,226 +11512,219 @@
1104211512 .fpu softvfp
1104311513 .type rk_ftl_garbage_collect, %function
1104411514 rk_ftl_garbage_collect:
11045
- .fnstart
11046
- @ args = 0, pretend = 0, frame = 40
11047
- @ frame_needed = 0, uses_anonymous_args = 0
11048
- ldr r3, .L1803
11049
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
11050
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
11051
- .pad #52
11052
- sub sp, sp, #52
11053
- str r0, [sp, #20]
11054
- ldr r3, [r3]
11055
- str r3, [sp, #44]
11056
- ldr r3, .L1803+4
11057
- ldr r0, [r3, #3272]
11515
+ @ args = 0, pretend = 0, frame = 32
11516
+ @ frame_needed = 1, uses_anonymous_args = 0
11517
+ mov ip, sp
11518
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
11519
+ sub fp, ip, #4
11520
+ sub sp, sp, #44
11521
+ push {lr}
11522
+ bl __gnu_mcount_nc
11523
+ ldr r4, .L1660
11524
+ mov r3, sp
11525
+ bic r3, r3, #8128
11526
+ str r0, [fp, #-72]
11527
+ bic r3, r3, #63
11528
+ ldr r0, [r4, #3272]
11529
+ ldr r3, [r3, #24]
1105811530 cmp r0, #0
11531
+ str r3, [fp, #-48]
1105911532 movne r0, #0
11060
- bne .L1676
11061
- add r2, r3, #2528
11062
- ldrh r2, [r2]
11063
- cmp r2, #47
11064
- bls .L1676
11065
- ldr r2, .L1803+8
11066
- mov r4, r3
11067
- ldrh r1, [r2, #4]
11068
- movw r2, #65535
11069
- cmp r1, r2
11070
- bne .L1678
11071
-.L1681:
11533
+ bne .L1544
11534
+ add r3, r4, #2528
11535
+ ldrh r3, [r3]
11536
+ cmp r3, #47
11537
+ bls .L1544
11538
+ ldr r3, .L1660+4
11539
+ ldrh r2, [r3, #4]
11540
+ movw r3, #65535
11541
+ cmp r2, r3
11542
+ bne .L1546
11543
+.L1549:
1107211544 ldrh r3, [r4, #220]
1107311545 movw r2, #65535
1107411546 cmp r3, r2
11075
- bne .L1679
11076
-.L1680:
11547
+ bne .L1547
11548
+.L1548:
1107711549 bl FtlReadRefresh
11550
+ ldrh r0, [r4, #124]
11551
+ ldrh r5, [r4, #172]
11552
+ movw r6, #65535
1107811553 ldr r3, [r4, #3156]
11079
- movw r7, #65535
11080
- ldr r2, [sp, #20]
11554
+ and r5, r5, r0
11555
+ ldrh r0, [r4, #222]
11556
+ ldr r2, [fp, #-72]
1108111557 add r3, r3, #1
11558
+ and r5, r5, r0
11559
+ cmp r5, r6
1108211560 add r3, r3, r2, lsl #7
11083
- ldrh r2, [r4, #172]
11561
+ movne r5, r6
1108411562 str r3, [r4, #3156]
11085
- cmp r2, r7
11086
- bne .L1682
11087
- ldrh r7, [r4, #124]
11088
- cmp r7, r2
11089
- movne r7, r2
11090
- bne .L1682
11091
- ldrh r5, [r4, #222]
11092
- cmp r5, r7
11093
- bne .L1682
11563
+ bne .L1550
1109411564 ldrh r2, [r4, #224]
1109511565 cmp r2, #24
1109611566 movcc r2, #5120
1109711567 movcs r2, #1024
1109811568 cmp r3, r2
11099
- movls r7, r5
11100
- bls .L1682
11101
- mov r8, #0
11569
+ bls .L1550
1110211570 movw r3, #3660
11103
- str r8, [r4, #3156]
11104
- strh r8, [r4, r3] @ movhi
11571
+ mov r7, #0
11572
+ str r7, [r4, #3156]
11573
+ strh r7, [r4, r3] @ movhi
1110511574 bl GetSwlReplaceBlock
11106
- cmp r0, r5
11107
- mov r7, r0
11108
- movne r5, r0
11109
- bne .L1684
11575
+ mov r5, r0
11576
+ cmp r0, r6
11577
+ bne .L1552
1111011578 movw r6, #3154
1111111579 ldrh r2, [r4, #224]
1111211580 ldrh r3, [r4, r6]
1111311581 cmp r2, r3
11114
- bcs .L1685
11582
+ bcs .L1553
1111511583 mov r0, #64
1111611584 bl List_get_gc_head_node
1111711585 uxth r3, r0
11118
- cmp r3, r7
11119
- beq .L1687
11586
+ cmp r3, r5
11587
+ beq .L1555
1112011588 mov r0, r3
1112111589 ldr r3, [r4, #72]
1112211590 lsl r0, r0, #1
1112311591 ldrh r3, [r3, r0]
1112411592 cmp r3, #7
11125
- bhi .L1688
11126
- mov r0, r8
11593
+ bhi .L1556
11594
+ mov r0, r7
1112711595 bl List_get_gc_head_node
11128
- uxth r5, r0
11596
+ uxth r0, r0
1112911597 mov r3, #128
11598
+ cmp r0, r5
1113011599 strh r3, [r4, r6] @ movhi
11131
- cmp r5, r7
11132
- bne .L1684
11133
-.L1687:
11134
- bl FtlGcReFreshBadBlk
11135
-.L1682:
11136
- movw r1, #65535
11137
- ldr r2, [sp, #20]
11138
- sub r3, r7, r1
11139
- clz r3, r3
11140
- lsr r3, r3, #5
11141
- cmp r2, #0
11142
- movne r2, #0
11143
- andeq r2, r3, #1
11144
- cmp r2, #0
11145
- beq .L1690
11146
- ldrh r3, [r4, #224]
11147
- cmp r3, #24
11148
- movhi r6, #1
11149
- bhi .L1691
11150
- movw r2, #302
11151
- cmp r3, #16
11152
- ldrh r6, [r4, r2]
11153
- lsrhi r6, r6, #5
11154
- bhi .L1691
11155
- cmp r3, #12
11156
- lsrhi r6, r6, #4
11157
- bhi .L1691
11158
- cmp r3, #8
11159
- lsrhi r6, r6, #2
11160
-.L1691:
11161
- ldr r2, .L1803+12
11162
- ldrh r1, [r2]
11163
- cmp r1, r3
11164
- mov r1, r2
11165
- bcs .L1695
11166
- ldrh r3, [r4, #124]
11167
- movw r0, #65535
11168
- cmp r3, r0
11169
- bne .L1696
11170
- ldrh r0, [r4, #222]
11171
- cmp r0, r3
11172
- bne .L1696
11173
- movw r3, #3660
11174
- ldrh r0, [r4, r3]
11175
- cmp r0, #0
11176
- bne .L1697
11177
- ldr r3, [r4, #2552]
11178
- ldr ip, [r4, #2548]
11179
- add r3, r3, r3, lsl #1
11180
- cmp ip, r3, lsr #2
11181
- movcs r3, #18
11182
- strhcs r3, [r2] @ movhi
11183
- bcs .L1699
11184
-.L1697:
11185
- movw r3, #2620
11186
- ldrh r3, [r4, r3]
11187
- add r3, r3, r3, lsl #1
11188
- asr r3, r3, #2
11189
- strh r3, [r1] @ movhi
11190
-.L1699:
11191
- mov r3, #0
11192
- str r3, [r4, #3164]
11193
-.L1676:
11194
- ldr r3, .L1803
11195
- ldr r2, [sp, #44]
11196
- ldr r3, [r3]
11600
+ beq .L1555
11601
+ mov r5, r0
11602
+.L1552:
11603
+ ldr r1, .L1660+8
11604
+ lsl r2, r5, #1
11605
+ ldr r3, [r4, #72]
11606
+ ldr r0, .L1660+12
11607
+ ldrh r1, [r1]
11608
+ ldrh r3, [r3, r2]
11609
+ str r1, [sp, #4]
11610
+ ldr r1, [r4, #2536]
11611
+ ldrh r2, [r1, r2]
11612
+ mov r1, r5
11613
+ str r2, [sp]
11614
+ ldrh r2, [r4, #224]
11615
+ bl sftl_printk
11616
+ b .L1555
11617
+.L1546:
11618
+ ldrh r2, [r4, #124]
1119711619 cmp r2, r3
11198
- beq .L1754
11199
- bl __stack_chk_fail
11200
-.L1678:
11201
- ldrh r3, [r3, #124]
11202
- cmp r3, r2
11203
- beq .L1681
11620
+ beq .L1549
1120411621 mov r0, #1
1120511622 bl FtlGcFreeTempBlock
1120611623 cmp r0, #0
11207
- beq .L1681
11624
+ beq .L1549
1120811625 mov r0, #1
11209
- b .L1676
11210
-.L1679:
11626
+ b .L1544
11627
+.L1547:
1121111628 ldrh r1, [r4, #222]
1121211629 cmp r1, r2
1121311630 strheq r3, [r4, #222] @ movhi
1121411631 mvneq r3, #0
1121511632 strheq r3, [r4, #220] @ movhi
11216
- b .L1680
11217
-.L1688:
11633
+ b .L1548
11634
+.L1556:
1121811635 mov r3, #64
11219
-.L1799:
11636
+.L1656:
1122011637 strh r3, [r4, r6] @ movhi
11221
- b .L1687
11222
-.L1685:
11638
+.L1555:
11639
+ bl FtlGcReFreshBadBlk
11640
+.L1550:
11641
+ ldr r2, [fp, #-72]
11642
+ movw r3, #65535
11643
+ cmp r2, #0
11644
+ cmpeq r5, r3
11645
+ moveq r2, #1
11646
+ movne r2, #0
11647
+ bne .L1558
11648
+ ldrh r3, [r4, #224]
11649
+ cmp r3, #24
11650
+ movhi r6, #1
11651
+ bhi .L1559
11652
+ movw r2, #302
11653
+ cmp r3, #16
11654
+ ldrh r6, [r4, r2]
11655
+ lsrhi r6, r6, #5
11656
+ bhi .L1559
11657
+ cmp r3, #12
11658
+ lsrhi r6, r6, #4
11659
+ bhi .L1559
11660
+ cmp r3, #8
11661
+ lsrhi r6, r6, #2
11662
+.L1559:
11663
+ ldr r2, .L1660+8
11664
+ ldrh r1, [r2]
11665
+ cmp r1, r3
11666
+ bcs .L1562
11667
+ ldrh r1, [r4, #222]
11668
+ ldrh r3, [r4, #124]
11669
+ and r3, r3, r1
11670
+ movw r1, #65535
11671
+ cmp r3, r1
11672
+ bne .L1563
11673
+ movw r3, #3660
11674
+ ldrh r0, [r4, r3]
11675
+ cmp r0, #0
11676
+ bne .L1564
11677
+ ldr r3, [r4, #2552]
11678
+ ldr r1, [r4, #2548]
11679
+ add r3, r3, r3, lsl #1
11680
+ cmp r1, r3, lsr #2
11681
+ movcs r3, #18
11682
+ bcs .L1565
11683
+.L1564:
11684
+ movw r3, #2620
11685
+ ldrh r3, [r4, r3]
11686
+ add r3, r3, r3, lsl #1
11687
+ lsr r3, r3, #2
11688
+.L1565:
11689
+ strh r3, [r2] @ movhi
11690
+ mov r3, #0
11691
+ str r3, [r4, #3164]
11692
+.L1544:
11693
+ mov r3, sp
11694
+ ldr r2, [fp, #-48]
11695
+ bic r3, r3, #8128
11696
+ bic r3, r3, #63
11697
+ ldr r3, [r3, #24]
11698
+ cmp r2, r3
11699
+ beq .L1619
11700
+ bl __stack_chk_fail
11701
+.L1553:
1122311702 mov r3, #80
11224
- b .L1799
11225
-.L1684:
11226
- ldr r0, .L1803+12
11227
- lsl r1, r5, #1
11228
- ldr r3, [r4, #72]
11229
- mov r7, r5
11230
- ldrh r2, [r4, #224]
11231
- ldrh r0, [r0]
11232
- ldrh r3, [r3, r1]
11233
- str r0, [sp, #4]
11234
- ldr r0, [r4, #2536]
11235
- ldrh r1, [r0, r1]
11236
- ldr r0, .L1803+16
11237
- str r1, [sp]
11238
- mov r1, r5
11239
- bl sftl_printk
11240
- b .L1687
11241
-.L1696:
11703
+ b .L1656
11704
+.L1563:
1124211705 movw r3, #2620
1124311706 ldrh r3, [r4, r3]
1124411707 add r3, r3, r3, lsl #1
1124511708 asr r3, r3, #2
11246
- strh r3, [r1] @ movhi
11247
-.L1695:
11709
+ strh r3, [r2] @ movhi
11710
+.L1562:
1124811711 movw r3, #3206
11249
- movw r7, #65535
11712
+ movw r5, #65535
1125011713 ldrh r3, [r4, r3]
1125111714 cmp r3, #0
1125211715 addne r6, r6, #32
1125311716 uxthne r6, r6
11254
-.L1701:
11717
+.L1567:
1125511718 ldrh r3, [r4, #172]
1125611719 movw r2, #65535
1125711720 cmp r3, r2
11258
- bne .L1710
11259
- cmp r7, r3
11260
- strhne r7, [r4, #172] @ movhi
11261
- bne .L1712
11721
+ bne .L1575
11722
+ cmp r5, r3
11723
+ strhne r5, [r4, #172] @ movhi
11724
+ bne .L1577
1126211725 ldrh r3, [r4, #222]
11263
- cmp r3, r7
11264
- beq .L1712
11726
+ cmp r3, r5
11727
+ beq .L1577
1126511728 ldr r2, [r4, #72]
1126611729 lsl r3, r3, #1
1126711730 ldrh r3, [r2, r3]
....@@ -11272,116 +11735,95 @@
1127211735 strh r3, [r4, #172] @ movhi
1127311736 mvn r3, #0
1127411737 strh r3, [r4, #222] @ movhi
11275
-.L1712:
11738
+.L1577:
1127611739 ldrh r0, [r4, #172]
1127711740 mov r3, #0
1127811741 strb r3, [r4, #180]
1127911742 movw r3, #65535
1128011743 cmp r0, r3
11281
- beq .L1710
11744
+ beq .L1575
1128211745 bl IsBlkInGcList
11283
- cmp r0, #0
11284
- mvnne r3, #0
11285
- strhne r3, [r4, #172] @ movhi
11286
- movw r3, #65535
11287
- ldrh r2, [r4, #172]
11288
- cmp r2, r3
11289
- beq .L1710
11290
- ldr r0, .L1803+20
11291
- bl make_superblock
11292
- mov r3, #0
11293
- movw r2, #3662
11294
- strh r3, [r4, r2] @ movhi
11295
- strh r3, [r4, #174] @ movhi
11296
- strb r3, [r4, #178]
11297
- ldrh r3, [r4, #172]
11298
- ldr r2, [r4, #72]
11299
- lsl r3, r3, #1
11300
- ldrh r2, [r2, r3]
11301
- ldr r3, .L1803+24
11302
- strh r2, [r3] @ movhi
11303
-.L1710:
11746
+ subs r7, r0, #0
11747
+ beq .L1580
11748
+ mvn r3, #0
11749
+ strh r3, [r4, #172] @ movhi
11750
+.L1575:
1130411751 ldrh r3, [r4, #172]
1130511752 ldrh r2, [r4, #24]
1130611753 cmp r2, r3
11307
- beq .L1716
11754
+ beq .L1581
1130811755 ldrh r2, [r4, #76]
1130911756 cmp r2, r3
11310
- beq .L1716
11757
+ beq .L1581
1131111758 ldrh r2, [r4, #124]
1131211759 cmp r2, r3
11313
- bne .L1717
11314
-.L1716:
11760
+ bne .L1582
11761
+.L1581:
1131511762 mvn r3, #0
1131611763 strh r3, [r4, #172] @ movhi
11317
-.L1717:
11318
- ldr r5, .L1803+4
11319
- mov r4, r5
11320
-.L1752:
11321
- ldrh r2, [r5, #172]
11764
+.L1582:
11765
+ ldr r4, .L1660
11766
+.L1617:
11767
+ ldrh r2, [r4, #172]
1132211768 movw r3, #65535
1132311769 cmp r2, r3
11324
- bne .L1718
11325
- ldr fp, .L1803+28
11770
+ bne .L1583
11771
+ ldr r7, .L1660+16
1132611772 mov r3, #0
11327
- ldr r10, .L1803+32
11328
- str r3, [r5, #3164]
11329
- mov r9, fp
11330
-.L1719:
11331
- ldrh r8, [fp]
11332
- mov r0, r8
11773
+ str r3, [r4, #3164]
11774
+.L1584:
11775
+ ldrh r9, [r7]
11776
+ mov r0, r9
1133311777 bl List_get_gc_head_node
11334
- uxth r2, r0
11335
- movw r1, #65535
11336
- cmp r2, r1
11337
- strh r2, [r4, #172] @ movhi
11338
- bne .L1720
11778
+ uxth r10, r0
11779
+ movw r3, #65535
11780
+ mov r8, r0
11781
+ cmp r10, r3
11782
+ strh r10, [r4, #172] @ movhi
11783
+ bne .L1585
1133911784 mov r3, #0
1134011785 mov r0, #8
11341
- strh r3, [fp] @ movhi
11342
- b .L1676
11343
-.L1690:
11786
+ strh r3, [r7] @ movhi
11787
+ b .L1544
11788
+.L1558:
1134411789 ldrh r6, [r4, #124]
11345
- cmp r6, r1
11346
- bne .L1767
1134711790 ldrh r1, [r4, #222]
11348
- cmp r1, r6
11349
- movne r3, #0
11350
- andeq r3, r3, #1
11351
- cmp r3, #0
11352
- beq .L1767
11791
+ and r6, r6, r1
11792
+ and r6, r6, r5
11793
+ cmp r6, r3
11794
+ bne .L1629
1135311795 ldrh r3, [r4, #172]
1135411796 cmp r3, r6
11355
- beq .L1702
11356
-.L1707:
11357
- mov r7, r6
11358
-.L1767:
11797
+ beq .L1568
11798
+.L1572:
11799
+ mov r5, r6
11800
+.L1629:
1135911801 mov r6, #1
11360
- b .L1701
11361
-.L1702:
11362
- ldr r5, .L1803+12
11802
+ b .L1567
11803
+.L1568:
11804
+ ldr r8, .L1660+8
1136311805 str r2, [r4, #3164]
1136411806 ldrh r2, [r4, #224]
11365
- ldrh r3, [r5]
11807
+ ldrh r3, [r8]
1136611808 cmp r2, r3
11367
- bls .L1703
11809
+ bls .L1569
1136811810 movw r3, #3660
1136911811 ldrh r3, [r4, r3]
1137011812 cmp r3, #0
11371
- bne .L1704
11813
+ bne .L1570
1137211814 ldr r3, [r4, #2552]
1137311815 ldr r2, [r4, #2548]
1137411816 add r3, r3, r3, lsl #1
1137511817 cmp r2, r3, lsr #2
1137611818 movcs r3, #18
11377
- bcs .L1800
11378
-.L1704:
11819
+ bcs .L1571
11820
+.L1570:
1137911821 movw r3, #2620
1138011822 ldrh r3, [r4, r3]
1138111823 add r3, r3, r3, lsl #1
11382
- asr r3, r3, #2
11383
-.L1800:
11384
- strh r3, [r5] @ movhi
11824
+ lsr r3, r3, #2
11825
+.L1571:
11826
+ strh r3, [r8] @ movhi
1138511827 bl FtlReadRefresh
1138611828 mov r0, #0
1138711829 bl List_get_gc_head_node
....@@ -11390,154 +11832,154 @@
1139011832 lsl r0, r0, #1
1139111833 ldrh r3, [r3, r0]
1139211834 cmp r3, #4
11393
- bls .L1703
11394
-.L1802:
11835
+ bls .L1569
11836
+.L1659:
1139511837 movw r3, #3660
1139611838 ldrh r0, [r4, r3]
11397
- b .L1676
11398
-.L1703:
11399
- movw r7, #3660
11400
- ldrh r0, [r4, r7]
11839
+ b .L1544
11840
+.L1569:
11841
+ movw r5, #3660
11842
+ ldrh r0, [r4, r5]
1140111843 cmp r0, #0
11402
- bne .L1707
11844
+ bne .L1572
1140311845 movw r3, #2620
11404
- ldrh r8, [r4, r3]
11405
- add r3, r8, r8, lsl #1
11846
+ ldrh r7, [r4, r3]
11847
+ add r3, r7, r7, lsl #1
1140611848 asr r3, r3, #2
11407
- strh r3, [r5] @ movhi
11849
+ strh r3, [r8] @ movhi
1140811850 bl List_get_gc_head_node
1140911851 uxth r0, r0
1141011852 ldr r3, [r4, #72]
1141111853 lsl r0, r0, #1
11854
+ ldrh r1, [r4, #232]
1141211855 ldrh r2, [r3, r0]
11413
- ldr r3, .L1803+36
11414
- ldrh r1, [r3]
11415
- ldrh r3, [r4, #232]
11416
- mul r3, r3, r1
11856
+ ldr r3, .L1660+20
11857
+ ldrh r3, [r3]
11858
+ mul r3, r1, r3
1141711859 add r3, r3, r3, lsr #31
1141811860 cmp r2, r3, asr #1
11419
- ble .L1708
11861
+ ble .L1573
1142011862 ldrh r3, [r4, #224]
11421
- sub r8, r8, #1
11422
- cmp r3, r8
11423
- blt .L1708
11863
+ sub r7, r7, #1
11864
+ cmp r3, r7
11865
+ blt .L1573
1142411866 bl FtlReadRefresh
11425
- ldrh r0, [r4, r7]
11426
- b .L1676
11427
-.L1708:
11867
+ ldrh r0, [r4, r5]
11868
+ b .L1544
11869
+.L1573:
1142811870 cmp r2, #0
11429
- bne .L1707
11871
+ bne .L1572
1143011872 movw r0, #65535
1143111873 bl decrement_vpc_count
1143211874 ldrh r0, [r4, #224]
1143311875 add r0, r0, #1
11434
- b .L1676
11435
-.L1720:
11436
- str r0, [sp, #16]
11437
- mov r0, r2
11438
- str r2, [sp, #12]
11439
- add r8, r8, #1
11876
+ b .L1544
11877
+.L1585:
11878
+ mov r0, r10
1144011879 bl IsBlkInGcList
11880
+ add r3, r9, #1
1144111881 cmp r0, #0
11442
- ldr r2, [sp, #12]
11443
- ldr r3, [sp, #16]
11444
- strhne r8, [fp] @ movhi
11445
- bne .L1719
1144611882 uxth r3, r3
11447
- ldrh lr, [r4, #232]
11448
- ldr r0, [r4, #72]
11883
+ beq .L1586
11884
+.L1657:
11885
+ strh r3, [r7] @ movhi
11886
+ b .L1584
11887
+.L1586:
11888
+ ldr r2, .L1660+24
1144911889 uxth r8, r8
11450
- lsl r1, r3, #1
11451
- ldrh r3, [r10]
11452
- strh r8, [fp] @ movhi
11453
- ldrh ip, [r0, r1]
11454
- mul r3, lr, r3
11455
- add lr, r3, r3, lsr #31
11456
- cmp ip, lr, asr #1
11457
- bgt .L1723
11458
- cmp r8, #48
11459
- cmphi ip, #8
11460
- bls .L1724
11461
- ldr ip, .L1803+40
11462
- ldrh ip, [ip]
11463
- cmp ip, #35
11464
- bhi .L1724
11465
-.L1723:
11466
- mov ip, #0
11467
- strh ip, [r9] @ movhi
11468
-.L1724:
11469
- ldrh r1, [r0, r1]
11470
- movw r0, #65535
11471
- cmp r3, r1
11472
- cmple r7, r0
11473
- bne .L1725
11474
- ldrh r3, [r9]
11475
- cmp r3, #3
11476
- mvnls r3, #0
11477
- strhls r3, [r4, #172] @ movhi
11478
- movls r3, #0
11479
- strhls r3, [r9] @ movhi
11480
- bls .L1802
11481
-.L1725:
11482
- cmp r1, #0
11483
- bne .L1726
11890
+ ldrh ip, [r4, #232]
11891
+ ldr r1, [r4, #72]
11892
+ lsl r8, r8, #1
11893
+ strh r3, [r7] @ movhi
11894
+ ldrh r2, [r2]
11895
+ ldrh r0, [r1, r8]
11896
+ mul r2, ip, r2
11897
+ add ip, r2, r2, lsr #31
11898
+ cmp r0, ip, asr #1
11899
+ bgt .L1588
11900
+ cmp r0, #8
11901
+ cmphi r3, #48
11902
+ bls .L1589
11903
+ ldr r3, .L1660+28
11904
+ ldrh r3, [r3]
11905
+ cmp r3, #35
11906
+ bhi .L1589
11907
+.L1588:
11908
+ mov r3, #0
11909
+ strh r3, [r7] @ movhi
11910
+.L1589:
11911
+ ldrh r3, [r1, r8]
11912
+ movw r1, #65535
11913
+ cmp r2, r3
11914
+ cmple r5, r1
11915
+ bne .L1590
11916
+ ldrh r2, [r7]
11917
+ cmp r2, #3
11918
+ bhi .L1590
11919
+ mvn r3, #0
11920
+ strh r3, [r4, #172] @ movhi
11921
+ mov r3, #0
11922
+ strh r3, [r7] @ movhi
11923
+ b .L1659
11924
+.L1590:
11925
+ cmp r3, #0
11926
+ bne .L1591
1148411927 movw r0, #65535
1148511928 bl decrement_vpc_count
11486
- ldrh r3, [r9]
11929
+ ldrh r3, [r7]
1148711930 add r3, r3, #1
11488
- strh r3, [r9] @ movhi
11489
- b .L1719
11490
-.L1726:
11931
+ b .L1657
11932
+.L1591:
1149111933 mov r3, #0
1149211934 strb r3, [r4, #180]
1149311935 ldrh r3, [r4, #24]
11494
- cmp r3, r2
11495
- bne .L1727
11936
+ cmp r3, r10
11937
+ bne .L1592
11938
+ ldr r1, .L1660+32
1149611939 movw r2, #717
11497
- ldr r1, .L1803+44
11498
- ldr r0, .L1803+48
11940
+ ldr r0, .L1660+36
1149911941 bl sftl_printk
11500
-.L1727:
11942
+.L1592:
1150111943 ldrh r2, [r4, #172]
1150211944 ldrh r3, [r4, #76]
1150311945 cmp r2, r3
11504
- bne .L1728
11946
+ bne .L1593
11947
+ ldr r1, .L1660+32
1150511948 movw r2, #718
11506
- ldr r1, .L1803+44
11507
- ldr r0, .L1803+48
11949
+ ldr r0, .L1660+36
1150811950 bl sftl_printk
11509
-.L1728:
11951
+.L1593:
1151011952 ldrh r2, [r4, #172]
1151111953 ldrh r3, [r4, #124]
1151211954 cmp r2, r3
11513
- bne .L1729
11955
+ bne .L1594
11956
+ ldr r1, .L1660+32
1151411957 movw r2, #719
11515
- ldr r1, .L1803+44
11516
- ldr r0, .L1803+48
11958
+ ldr r0, .L1660+36
1151711959 bl sftl_printk
11518
-.L1729:
11519
- ldr r0, .L1803+20
11960
+.L1594:
11961
+ ldr r0, .L1660+40
1152011962 bl make_superblock
11963
+ ldr r1, .L1660+44
1152111964 ldrh r2, [r4, #172]
1152211965 mov r3, #0
11523
- ldr r1, .L1803+52
1152411966 ldr r0, [r4, #72]
1152511967 lsl r2, r2, #1
1152611968 strh r3, [r1] @ movhi
1152711969 ldrh r2, [r0, r2]
11970
+ strh r2, [r1, #2] @ movhi
1152811971 strh r3, [r4, #174] @ movhi
1152911972 strb r3, [r4, #178]
11530
- strh r2, [r1, #2] @ movhi
11531
-.L1718:
11973
+.L1583:
1153211974 mov r3, #1
1153311975 str r3, [r4, #3272]
11534
- ldr r3, .L1803+32
11976
+ ldr r3, .L1660+24
1153511977 ldrh r3, [r3]
11536
- str r3, [sp, #12]
11537
- ldr r3, [sp, #20]
11978
+ str r3, [fp, #-64]
11979
+ ldr r3, [fp, #-72]
1153811980 cmp r3, #0
11539
- beq .L1730
11540
- ldr r2, [sp, #12]
11981
+ beq .L1595
11982
+ ldr r2, [fp, #-64]
1154111983 ldrh r3, [r4, #232]
1154211984 ldr r1, [r4, #72]
1154311985 mul r3, r2, r3
....@@ -11545,120 +11987,120 @@
1154511987 lsl r2, r2, #1
1154611988 ldrh r2, [r1, r2]
1154711989 sub r3, r3, r2
11548
- add r2, r3, #3
1154911990 cmp r3, #0
11550
- movlt r3, r2
11551
- add r6, r6, r3, asr #2
11991
+ add r2, r3, #3
11992
+ movge r2, r3
11993
+ add r6, r6, r2, asr #2
1155211994 uxth r6, r6
11553
-.L1730:
11995
+.L1595:
1155411996 ldrh r3, [r4, #174]
11555
- ldr r1, [sp, #12]
11997
+ ldr r1, [fp, #-64]
1155611998 add r2, r3, r6
1155711999 cmp r2, r1
1155812000 movgt r2, r1
11559
- subgt r6, r2, r3
12001
+ subgt r3, r2, r3
12002
+ uxthgt r6, r3
1156012003 mov r3, #0
11561
- uxthgt r6, r6
11562
-.L1801:
11563
- str r3, [sp, #16]
11564
- ldrh r3, [sp, #16]
12004
+.L1658:
12005
+ str r3, [fp, #-68]
12006
+ ldrh r8, [r4, #174]
12007
+ ldrh r3, [fp, #-68]
1156512008 cmp r6, r3
11566
- bls .L1740
11567
- ldr r3, [sp, #16]
12009
+ bls .L1605
12010
+ ldr r3, [fp, #-68]
1156812011 movw r9, #65535
11569
- ldrh r8, [r5, #174]
12012
+ ldrh ip, [r4, #232]
1157012013 mov r10, #20
11571
- ldrh ip, [r5, #232]
11572
- ldr r0, [r5, #3184]
1157312014 add r8, r8, r3
12015
+ ldr r0, [r4, #3184]
1157412016 mov r3, #0
11575
- ldr r1, .L1803+56
11576
- mov fp, r3
11577
- b .L1741
11578
-.L1734:
11579
- ldrh r2, [r1, #2]!
11580
- add r3, r3, #1
12017
+ ldr r1, .L1660+48
12018
+ mov r7, r3
12019
+ b .L1606
12020
+.L1599:
12021
+ ldrh r2, [r1], #2
1158112022 cmp r2, r9
11582
- mlane lr, r10, fp, r0
11583
- orrne r2, r8, r2, lsl #10
11584
- strne r2, [lr, #4]
11585
- addne r2, fp, #1
11586
- uxthne fp, r2
11587
-.L1741:
12023
+ beq .L1598
12024
+ mla lr, r10, r7, r0
12025
+ add r7, r7, #1
12026
+ orr r2, r8, r2, lsl #10
12027
+ uxth r7, r7
12028
+ str r2, [lr, #4]
12029
+.L1598:
12030
+ add r3, r3, #1
12031
+.L1606:
1158812032 uxth r2, r3
1158912033 cmp ip, r2
11590
- bhi .L1734
12034
+ bhi .L1599
1159112035 mov r10, #0
11592
- ldrb r2, [r5, #180] @ zero_extendqisi2
11593
- mov r1, fp
12036
+ ldrb r2, [r4, #180] @ zero_extendqisi2
12037
+ mov r1, r7
1159412038 bl FlashReadPages
11595
-.L1735:
12039
+.L1600:
1159612040 uxth r3, r10
11597
- cmp fp, r3
11598
- ldrls r3, [sp, #16]
12041
+ cmp r7, r3
12042
+ ldrls r3, [fp, #-68]
1159912043 addls r3, r3, #1
11600
- bls .L1801
11601
-.L1739:
12044
+ bls .L1658
12045
+.L1604:
1160212046 mov r8, #20
11603
- ldr r3, [r5, #3184]
12047
+ ldr r3, [r4, #3184]
1160412048 mul r8, r8, r10
1160512049 add r2, r3, r8
1160612050 ldr r3, [r3, r8]
1160712051 cmn r3, #1
11608
- beq .L1736
12052
+ beq .L1601
1160912053 ldr r9, [r2, #12]
1161012054 movw r3, #61589
1161112055 ldrh r2, [r9]
1161212056 cmp r2, r3
11613
- bne .L1736
12057
+ bne .L1601
1161412058 ldr r3, [r9, #8]
1161512059 cmn r3, #1
11616
- bne .L1737
12060
+ bne .L1602
12061
+ ldr r1, .L1660+32
1161712062 movw r2, #753
11618
- ldr r1, .L1803+44
11619
- ldr r0, .L1803+48
11620
- str r3, [sp, #24]
12063
+ ldr r0, .L1660+36
12064
+ str r3, [fp, #-76]
1162112065 bl sftl_printk
11622
- ldr r3, [sp, #24]
11623
-.L1737:
11624
- mov r2, #0
11625
- add r1, sp, #36
12066
+ ldr r3, [fp, #-76]
12067
+.L1602:
12068
+ sub r1, fp, #56
1162612069 mov r0, r3
12070
+ mov r2, #0
1162712071 bl log2phys
1162812072 ldr r1, [r4, #3184]
11629
- ldr r3, [sp, #36]
12073
+ ldr r3, [fp, #-56]
1163012074 add r1, r1, r8
1163112075 ldr r2, [r1, #4]
1163212076 cmp r2, r3
11633
- bne .L1736
11634
- ldr r3, .L1803+52
11635
- ldr r2, .L1803+52
12077
+ bne .L1601
12078
+ ldr r2, .L1660+44
1163612079 ldr r0, [r4, #3168]
11637
- ldrh r3, [r3]
1163812080 ldr r1, [r1, #16]
12081
+ ldrh r3, [r2]
1163912082 add r3, r3, #1
1164012083 strh r3, [r2] @ movhi
11641
- mov r2, #20
1164212084 ldr r3, [r4, #3292]
11643
- str r2, [sp, #28]
12085
+ mov r2, #20
1164412086 mla r3, r2, r0, r3
12087
+ str r3, [fp, #-76]
1164512088 str r1, [r3, #16]
11646
- str r3, [sp, #24]
1164712089 bl Ftl_get_new_temp_ppa
11648
- ldr r3, [sp, #24]
11649
- ldr r1, [r4, #3292]
11650
- ldr r2, [sp, #28]
12090
+ ldr r3, [fp, #-76]
12091
+ ldr r1, [r4, #3184]
12092
+ mov r2, #20
1165112093 str r0, [r3, #4]
11652
- ldr r3, [r4, #3168]
11653
- mla r3, r2, r3, r1
11654
- ldr r2, [r4, #3184]
11655
- add r2, r2, r8
11656
- ldr r1, [r2, #8]
11657
- str r1, [r3, #8]
12094
+ add r1, r1, r8
12095
+ ldr r0, [r4, #3168]
12096
+ ldr r3, [r4, #3292]
12097
+ mla r3, r2, r0, r3
12098
+ ldr r2, [r1, #8]
12099
+ str r2, [r3, #8]
12100
+ ldr r2, [r1, #12]
1165812101 mov r1, #1
11659
- ldr r2, [r2, #12]
1166012102 str r2, [r3, #12]
11661
- ldr r3, [sp, #36]
12103
+ ldr r3, [fp, #-56]
1166212104 str r3, [r9, #12]
1166312105 ldrh r3, [r4, #124]
1166412106 strh r3, [r9, #2] @ movhi
....@@ -11673,128 +12115,138 @@
1167312115 ldrb r2, [r4, #131] @ zero_extendqisi2
1167412116 ldr r3, [r4, #3168]
1167512117 cmp r2, r3
11676
- beq .L1738
12118
+ beq .L1603
1167712119 ldrh r3, [r4, #128]
1167812120 cmp r3, #0
11679
- bne .L1736
11680
-.L1738:
12121
+ bne .L1601
12122
+.L1603:
1168112123 bl Ftl_gc_temp_data_write_back
1168212124 cmp r0, #0
11683
- beq .L1736
11684
- ldr r3, .L1803+4
12125
+ beq .L1601
12126
+ ldr r3, .L1660
1168512127 mov r2, #0
11686
- mvn r1, #0
1168712128 str r2, [r3, #3272]
11688
- strh r2, [r3, #174] @ movhi
12129
+ movw r2, #65535
12130
+ str r2, [r3, #172]
1168912131 movw r2, #3660
11690
- strh r1, [r3, #172] @ movhi
1169112132 ldrh r0, [r3, r2]
11692
- b .L1676
11693
-.L1736:
12133
+ b .L1544
12134
+.L1601:
1169412135 add r10, r10, #1
11695
- b .L1735
11696
-.L1740:
11697
- ldrh r3, [r5, #174]
11698
- add r6, r6, r3
11699
- ldr r3, [sp, #12]
12136
+ b .L1600
12137
+.L1605:
12138
+ add r6, r6, r8
12139
+ ldr r3, [fp, #-64]
1170012140 uxth r6, r6
12141
+ strh r6, [r4, #174] @ movhi
1170112142 cmp r3, r6
11702
- strh r6, [r5, #174] @ movhi
11703
- bhi .L1742
11704
- ldr r3, [r5, #3168]
12143
+ bhi .L1607
12144
+ ldr r3, [r4, #3168]
1170512145 cmp r3, #0
11706
- beq .L1743
12146
+ beq .L1608
1170712147 bl Ftl_gc_temp_data_write_back
1170812148 cmp r0, #0
1170912149 movne r3, #0
11710
- strne r3, [r5, #3272]
11711
- movwne r3, #3660
11712
- ldrhne r0, [r5, r3]
11713
- bne .L1676
11714
-.L1743:
11715
- ldr r3, .L1803+52
12150
+ strne r3, [r4, #3272]
12151
+ bne .L1659
12152
+.L1608:
12153
+ ldr r3, .L1660+44
1171612154 ldrh r6, [r3]
1171712155 cmp r6, #0
11718
- bne .L1744
11719
- ldrh r3, [r5, #172]
11720
- ldr r2, [r5, #72]
12156
+ bne .L1609
12157
+ ldrh r3, [r4, #172]
12158
+ ldr r2, [r4, #72]
1172112159 lsl r3, r3, #1
1172212160 ldrh r3, [r2, r3]
1172312161 cmp r3, #0
11724
- beq .L1744
11725
-.L1745:
11726
- ldr r3, [r5, #2552]
12162
+ beq .L1609
12163
+.L1610:
12164
+ ldr r3, [r4, #2552]
1172712165 cmp r6, r3
11728
- bcs .L1750
11729
- mov r2, #0
11730
- add r1, sp, #40
11731
- mov r0, r6
11732
- bl log2phys
11733
- ldr r0, [sp, #40]
11734
- cmn r0, #1
11735
- beq .L1746
11736
- ubfx r0, r0, #10, #16
11737
- bl P2V_block_in_plane
11738
- ldrh r3, [r5, #172]
11739
- cmp r3, r0
11740
- bne .L1746
11741
-.L1750:
11742
- ldr r3, [r5, #2552]
11743
- cmp r6, r3
11744
- bcc .L1744
11745
- ldrh r3, [r5, #172]
12166
+ bcc .L1613
12167
+.L1615:
12168
+ ldrh r3, [r4, #172]
1174612169 mov r1, #0
11747
- ldr r2, [r5, #72]
12170
+ ldr r2, [r4, #72]
1174812171 lsl r3, r3, #1
1174912172 strh r1, [r2, r3] @ movhi
11750
- ldrh r0, [r5, #172]
12173
+ ldrh r0, [r4, #172]
1175112174 bl update_vpc_list
1175212175 bl l2p_flush
1175312176 bl FtlVpcTblFlush
11754
-.L1744:
12177
+.L1609:
1175512178 mvn r3, #0
11756
- strh r3, [r5, #172] @ movhi
11757
-.L1742:
12179
+ strh r3, [r4, #172] @ movhi
12180
+.L1607:
1175812181 mov r3, #0
11759
- str r3, [r5, #3272]
11760
- ldrh r3, [r5, #224]
12182
+ str r3, [r4, #3272]
12183
+ ldrh r3, [r4, #224]
1176112184 cmp r3, #2
11762
- bhi .L1751
11763
- ldr r3, .L1803+32
12185
+ bhi .L1616
12186
+ ldr r3, .L1660+24
1176412187 ldrh r6, [r3]
11765
- b .L1752
11766
-.L1746:
12188
+ b .L1617
12189
+.L1613:
12190
+ sub r1, fp, #52
12191
+ mov r0, r6
12192
+ mov r2, #0
12193
+ bl log2phys
12194
+ ldr r0, [fp, #-52]
12195
+ cmn r0, #1
12196
+ beq .L1611
12197
+ ubfx r0, r0, #10, #16
12198
+ bl P2V_block_in_plane
12199
+ ldrh r3, [r4, #172]
12200
+ cmp r3, r0
12201
+ beq .L1612
12202
+.L1611:
1176712203 add r6, r6, #1
11768
- b .L1745
11769
-.L1751:
12204
+ b .L1610
12205
+.L1612:
12206
+ ldr r3, [r4, #2552]
12207
+ cmp r6, r3
12208
+ bcc .L1609
12209
+ b .L1615
12210
+.L1616:
1177012211 movw r2, #3660
11771
- ldrh r0, [r5, r2]
12212
+ ldrh r0, [r4, r2]
1177212213 cmp r0, #0
1177312214 addeq r0, r3, #1
11774
- b .L1676
11775
-.L1754:
11776
- add sp, sp, #52
11777
- @ sp needed
11778
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
11779
-.L1804:
12215
+ b .L1544
12216
+.L1580:
12217
+ ldr r0, .L1660+40
12218
+ bl make_superblock
12219
+ movw r3, #3662
12220
+ ldr r2, [r4, #72]
12221
+ strh r7, [r4, r3] @ movhi
12222
+ ldrh r3, [r4, #172]
12223
+ strh r7, [r4, #174] @ movhi
12224
+ strb r7, [r4, #178]
12225
+ lsl r3, r3, #1
12226
+ ldrh r2, [r2, r3]
12227
+ ldr r3, .L1660+52
12228
+ strh r2, [r3] @ movhi
12229
+ b .L1575
12230
+.L1619:
12231
+ sub sp, fp, #40
12232
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
12233
+.L1661:
1178012234 .align 2
11781
-.L1803:
11782
- .word __stack_chk_guard
12235
+.L1660:
1178312236 .word .LANCHOR0
1178412237 .word .LANCHOR2
1178512238 .word .LANCHOR0+3152
1178612239 .word .LC124
11787
- .word .LANCHOR0+172
11788
- .word .LANCHOR0+3664
1178912240 .word .LANCHOR0+3160
11790
- .word .LANCHOR0+302
1179112241 .word .LANCHOR0+304
12242
+ .word .LANCHOR0+302
1179212243 .word .LANCHOR0+3196
1179312244 .word .LANCHOR1+568
1179412245 .word .LC8
12246
+ .word .LANCHOR0+172
1179512247 .word .LANCHOR0+3662
11796
- .word .LANCHOR0+186
11797
- .fnend
12248
+ .word .LANCHOR0+188
12249
+ .word .LANCHOR0+3664
1179812250 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
1179912251 .align 2
1180012252 .global FtlRead
....@@ -11803,209 +12255,180 @@
1180312255 .fpu softvfp
1180412256 .type FtlRead, %function
1180512257 FtlRead:
11806
- .fnstart
1180712258 @ args = 0, pretend = 0, frame = 56
11808
- @ frame_needed = 0, uses_anonymous_args = 0
11809
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
11810
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
11811
- mov r10, r3
11812
- ldr r3, .L1844
11813
- cmp r0, #16
11814
- .pad #60
12259
+ @ frame_needed = 1, uses_anonymous_args = 0
12260
+ mov ip, sp
12261
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
12262
+ sub fp, ip, #4
1181512263 sub sp, sp, #60
12264
+ push {lr}
12265
+ bl __gnu_mcount_nc
12266
+ mov r8, r3
12267
+ mov r3, sp
12268
+ bic r3, r3, #8128
1181612269 mov r5, r1
11817
- str r2, [sp, #4]
11818
- ldr r3, [r3]
11819
- str r3, [sp, #52]
11820
- bne .L1806
11821
- mov r2, r10
11822
- ldr r1, [sp, #4]
12270
+ bic r3, r3, #63
12271
+ cmp r0, #16
12272
+ str r2, [fp, #-60]
12273
+ ldr r3, [r3, #24]
12274
+ str r3, [fp, #-48]
12275
+ bne .L1663
12276
+ ldr r1, [fp, #-60]
12277
+ mov r2, r8
1182312278 add r0, r5, #256
1182412279 bl FtlVendorPartRead
1182512280 mov r6, r0
11826
-.L1805:
11827
- ldr r3, .L1844
11828
- mov r0, r6
11829
- ldr r2, [sp, #52]
11830
- ldr r3, [r3]
12281
+.L1662:
12282
+ mov r3, sp
12283
+ ldr r2, [fp, #-48]
12284
+ bic r3, r3, #8128
12285
+ bic r3, r3, #63
12286
+ ldr r3, [r3, #24]
1183112287 cmp r2, r3
11832
- beq .L1827
12288
+ beq .L1685
1183312289 bl __stack_chk_fail
11834
-.L1806:
11835
- ldr r4, .L1844+4
11836
- ldr r2, [sp, #4]
12290
+.L1663:
12291
+ ldr r4, .L1703
12292
+ ldr r2, [fp, #-60]
1183712293 ldr r3, [r4, #340]
11838
- cmp r2, r3
11839
- cmpls r1, r3
11840
- movcs r9, #1
11841
- movcc r9, #0
11842
- bcs .L1829
11843
- add r2, r1, r2
1184412294 cmp r3, r2
11845
- str r2, [sp, #12]
11846
- bcc .L1829
11847
- ldr r3, .L1844+8
12295
+ cmpcs r3, r1
12296
+ movls r7, #1
12297
+ movhi r7, #0
12298
+ bls .L1687
12299
+ add r2, r1, r2
12300
+ str r2, [fp, #-64]
12301
+ cmp r3, r2
12302
+ bcc .L1687
12303
+ ldr r3, .L1703+4
1184812304 ldr r6, [r3]
1184912305 cmn r6, #1
11850
- beq .L1805
12306
+ beq .L1662
1185112307 movw r3, #258
1185212308 mov r0, r5
1185312309 ldrh r6, [r4, r3]
11854
- mov r8, r9
1185512310 mov r1, r6
1185612311 bl __aeabi_uidiv
11857
- ldr r3, [sp, #12]
12312
+ ldr r3, [fp, #-64]
1185812313 mov r1, r6
11859
- str r0, [sp, #16]
11860
- mov r6, r9
12314
+ str r0, [fp, #-72]
1186112315 sub r0, r3, #1
12316
+ mov r6, r7
1186212317 bl __aeabi_uidiv
11863
- ldr r3, [sp, #16]
11864
- ldr r2, [sp, #4]
11865
- ldr r7, [sp, #16]
12318
+ ldr r3, [fp, #-72]
12319
+ ldr r2, [fp, #-60]
1186612320 rsb r3, r3, #1
11867
- str r0, [sp, #20]
12321
+ ldr r9, [fp, #-72]
1186812322 add r3, r3, r0
11869
- str r9, [sp, #28]
11870
- str r3, [sp, #8]
12323
+ str r3, [fp, #-68]
1187112324 ldr r3, [r4, #2584]
11872
- str r9, [sp, #24]
12325
+ str r0, [fp, #-76]
1187312326 add r3, r3, r2
11874
- ldr r2, [sp, #8]
12327
+ ldr r2, [fp, #-68]
1187512328 str r3, [r4, #2584]
1187612329 ldr r3, [r4, #2556]
12330
+ str r7, [fp, #-56]
1187712331 add r3, r3, r2
12332
+ str r7, [fp, #-84]
1187812333 str r3, [r4, #2556]
11879
-.L1808:
11880
- ldr r3, [sp, #8]
12334
+ str r7, [fp, #-80]
12335
+.L1665:
12336
+ ldr r3, [fp, #-68]
1188112337 cmp r3, #0
11882
- bne .L1825
11883
- ldr r3, .L1844+4
12338
+ bne .L1683
12339
+ ldr r3, .L1703
1188412340 movw r2, #3206
1188512341 ldrh r2, [r3, r2]
1188612342 cmp r2, #0
11887
- bne .L1826
12343
+ bne .L1684
1188812344 ldrh r3, [r3, #224]
1188912345 cmp r3, #31
11890
- bhi .L1805
11891
-.L1826:
12346
+ bhi .L1662
12347
+.L1684:
1189212348 mov r1, #1
1189312349 mov r0, #0
1189412350 bl rk_ftl_garbage_collect
11895
- b .L1805
11896
-.L1825:
12351
+ b .L1662
12352
+.L1683:
12353
+ sub r1, fp, #52
12354
+ mov r0, r9
1189712355 mov r2, #0
11898
- add r1, sp, #48
11899
- mov r0, r7
1190012356 bl log2phys
11901
- ldr r3, [sp, #48]
12357
+ ldr r3, [fp, #-52]
1190212358 cmn r3, #1
11903
- moveq fp, #0
11904
- beq .L1810
11905
- ldr r2, [r4, #3288]
11906
- mov fp, #20
11907
- mla fp, fp, r8, r2
11908
- str r3, [fp, #4]
11909
- ldr r3, [sp, #16]
11910
- cmp r7, r3
11911
- bne .L1814
11912
- ldr r3, [r4, #3312]
11913
- mov r0, r5
11914
- str r3, [fp, #8]
11915
- ldr r3, .L1844+12
11916
- ldrh r3, [r3]
11917
- mov r1, r3
11918
- str r3, [sp, #28]
11919
- bl __aeabi_uidivmod
11920
- ldr r3, [sp, #28]
11921
- str r1, [sp, #24]
11922
- sub r2, r3, r1
11923
- ldr r1, [sp, #4]
11924
- cmp r1, r2
11925
- movcc r2, r1
11926
- cmp r2, r3
11927
- str r2, [sp, #28]
11928
- streq r10, [fp, #8]
11929
-.L1815:
11930
- ldr r3, .L1844+16
11931
- ldr r2, [r4, #3336]
11932
- str r7, [fp, #16]
11933
- ldrh r3, [r3]
11934
- mul r3, r8, r3
11935
- add r8, r8, #1
11936
- bic r3, r3, #3
11937
- add r3, r2, r3
11938
- str r3, [fp, #12]
11939
- b .L1813
11940
-.L1812:
11941
- mla r0, r0, r7, fp
11942
- ldr r2, [sp, #12]
12359
+ bne .L1700
12360
+ ldr r3, .L1703+8
12361
+ mov r10, #0
12362
+ b .L1666
12363
+.L1669:
12364
+ mla r0, r9, r0, r10
12365
+ ldr r1, [fp, #-64]
1194312366 cmp r5, r0
11944
- movls r3, #1
11945
- movhi r3, #0
11946
- cmp r2, r0
11947
- movls r3, #0
11948
- cmp r3, #0
11949
- beq .L1811
12367
+ movls r2, #1
12368
+ movhi r2, #0
12369
+ cmp r1, r0
12370
+ movls r2, #0
12371
+ cmp r2, #0
12372
+ beq .L1668
1195012373 sub r0, r0, r5
1195112374 mov r2, #512
1195212375 mov r1, #0
11953
- add r0, r10, r0, lsl #9
12376
+ add r0, r8, r0, lsl #9
1195412377 bl ftl_memset
11955
-.L1811:
11956
- add fp, fp, #1
11957
-.L1810:
11958
- ldr r3, .L1844+12
12378
+ ldr r3, .L1703+8
12379
+.L1668:
12380
+ add r10, r10, #1
12381
+.L1666:
1195912382 ldrh r0, [r3]
11960
- cmp fp, r0
11961
- bcc .L1812
11962
-.L1813:
11963
- ldr r3, [sp, #8]
11964
- add r7, r7, #1
12383
+ cmp r0, r10
12384
+ bhi .L1669
12385
+.L1670:
12386
+ ldr r3, [fp, #-68]
12387
+ add r9, r9, #1
1196512388 subs r3, r3, #1
11966
- str r3, [sp, #8]
11967
- beq .L1817
12389
+ str r3, [fp, #-68]
12390
+ beq .L1675
1196812391 ldrh r3, [r4, #232]
11969
- cmp r8, r3, lsl #2
11970
- bne .L1808
11971
-.L1817:
11972
- cmp r8, #0
11973
- beq .L1808
11974
- mov r2, #0
11975
- mov r1, r8
12392
+ cmp r7, r3, lsl #2
12393
+ bne .L1665
12394
+.L1675:
12395
+ cmp r7, #0
12396
+ beq .L1665
1197612397 ldr r0, [r4, #3288]
11977
- mov fp, #0
12398
+ mov r1, r7
12399
+ mov r2, #0
12400
+ mov r10, #0
1197812401 bl FlashReadPages
11979
- lsl r3, r9, #9
11980
- str r3, [sp, #40]
11981
- ldr r3, [sp, #24]
12402
+ ldr r3, [fp, #-56]
1198212403 lsl r3, r3, #9
11983
- str r3, [sp, #32]
11984
- ldr r3, [sp, #28]
12404
+ str r3, [fp, #-96]
12405
+ ldr r3, [fp, #-80]
1198512406 lsl r3, r3, #9
11986
- str r3, [sp, #36]
11987
-.L1824:
12407
+ str r3, [fp, #-88]
12408
+ ldr r3, [fp, #-84]
12409
+ lsl r3, r3, #9
12410
+ str r3, [fp, #-92]
12411
+.L1682:
1198812412 mov r3, #20
1198912413 ldr r2, [r4, #3288]
11990
- mul r3, r3, fp
11991
- ldr r0, [sp, #16]
12414
+ ldr r0, [fp, #-72]
12415
+ mul r3, r3, r10
1199212416 add r2, r2, r3
1199312417 ldr r1, [r2, #16]
11994
- cmp r0, r1
11995
- bne .L1819
12418
+ cmp r1, r0
12419
+ bne .L1677
1199612420 ldr r1, [r2, #8]
1199712421 ldr r2, [r4, #3312]
1199812422 cmp r1, r2
11999
- bne .L1820
12000
- str r3, [sp, #44]
12001
- mov r0, r10
12002
- ldr r3, [sp, #32]
12003
- ldr r2, [sp, #36]
12423
+ bne .L1678
12424
+ str r3, [fp, #-100]
12425
+ mov r0, r8
12426
+ ldrd r2, [fp, #-92]
1200412427 add r1, r1, r3
12005
-.L1843:
12428
+.L1702:
1200612429 bl ftl_memcpy
12007
- ldr r3, [sp, #44]
12008
-.L1820:
12430
+ ldr r3, [fp, #-100]
12431
+.L1678:
1200912432 ldr r1, [r4, #3288]
1201012433 add r2, r1, r3
1201112434 ldr r0, [r2, #12]
....@@ -12017,79 +12440,108 @@
1201712440 strne r0, [r4, #2712]
1201812441 ldr ip, [r1, r3]
1201912442 cmn ip, #1
12020
- ldreq r0, [r4, #2712]
1202112443 moveq r6, ip
12444
+ ldreq r0, [r4, #2712]
1202212445 addeq r0, r0, #1
1202312446 streq r0, [r4, #2712]
1202412447 ldr r3, [r1, r3]
1202512448 cmp r3, #256
12026
- bne .L1823
12449
+ bne .L1681
1202712450 ldr r0, [r2, #4]
1202812451 ubfx r0, r0, #10, #16
1202912452 bl P2V_block_in_plane
1203012453 bl FtlGcRefreshBlock
12031
-.L1823:
12032
- add fp, fp, #1
12033
- cmp r8, fp
12034
- bne .L1824
12035
- mov r8, #0
12036
- b .L1808
12037
-.L1814:
12038
- ldr r3, [sp, #20]
12039
- cmp r7, r3
12040
- bne .L1816
12041
- ldr r3, [r4, #3316]
12042
- ldr r1, [sp, #12]
12043
- str r3, [fp, #8]
12044
- ldr r3, .L1844+12
12045
- ldrh r2, [r3]
12046
- mul r3, r2, r7
12047
- sub r9, r1, r3
12048
- cmp r2, r9
12049
- bne .L1815
12050
-.L1842:
12051
- sub r3, r3, r5
12052
- add r3, r10, r3, lsl #9
12053
- str r3, [fp, #8]
12054
- b .L1815
12055
-.L1816:
12056
- ldr r3, .L1844+12
12454
+.L1681:
12455
+ add r10, r10, #1
12456
+ cmp r7, r10
12457
+ bne .L1682
12458
+ mov r7, #0
12459
+ b .L1665
12460
+.L1700:
12461
+ ldr r10, [r4, #3288]
12462
+ mov r2, #20
12463
+ mla r10, r2, r7, r10
12464
+ str r3, [r10, #4]
12465
+ ldr r3, [fp, #-72]
12466
+ cmp r9, r3
12467
+ ldr r3, .L1703+8
12468
+ bne .L1671
12469
+ ldrh r3, [r3]
12470
+ mov r0, r5
12471
+ ldr r2, [r4, #3312]
12472
+ mov r1, r3
12473
+ str r2, [r10, #8]
12474
+ str r3, [fp, #-84]
12475
+ bl __aeabi_uidivmod
12476
+ ldr r3, [fp, #-84]
12477
+ str r1, [fp, #-80]
12478
+ sub r2, r3, r1
12479
+ ldr r1, [fp, #-60]
12480
+ cmp r1, r2
12481
+ movcc r2, r1
12482
+ str r2, [fp, #-84]
12483
+ cmp r3, r2
12484
+ streq r8, [r10, #8]
12485
+.L1672:
12486
+ ldr r3, .L1703+12
12487
+ ldr r2, [r4, #3336]
12488
+ str r9, [r10, #16]
1205712489 ldrh r3, [r3]
1205812490 mul r3, r7, r3
12059
- b .L1842
12060
-.L1819:
12061
- ldr r0, [sp, #20]
12062
- cmp r0, r1
12063
- bne .L1820
12491
+ add r7, r7, #1
12492
+ bic r3, r3, #3
12493
+ add r3, r2, r3
12494
+ str r3, [r10, #12]
12495
+ b .L1670
12496
+.L1671:
12497
+ ldrh r2, [r3]
12498
+ ldr r1, [fp, #-76]
12499
+ cmp r9, r1
12500
+ mul r3, r2, r9
12501
+ bne .L1673
12502
+ ldr r1, [fp, #-64]
12503
+ sub r1, r1, r3
12504
+ str r1, [fp, #-56]
12505
+ cmp r1, r2
12506
+ ldrne r3, [r4, #3316]
12507
+ bne .L1701
12508
+.L1673:
12509
+ sub r3, r3, r5
12510
+ add r3, r8, r3, lsl #9
12511
+.L1701:
12512
+ str r3, [r10, #8]
12513
+ b .L1672
12514
+.L1677:
12515
+ ldr r0, [fp, #-76]
12516
+ cmp r1, r0
12517
+ bne .L1678
1206412518 ldr r1, [r2, #8]
1206512519 ldr r2, [r4, #3316]
1206612520 cmp r1, r2
12067
- bne .L1820
12068
- str r3, [sp, #44]
12069
- ldr r3, .L1844+12
12070
- ldr r2, [sp, #40]
12071
- ldrh r0, [r3]
12072
- ldr r3, [sp, #20]
12521
+ bne .L1678
12522
+ ldr r2, .L1703+8
12523
+ str r3, [fp, #-100]
12524
+ ldr r3, [fp, #-76]
12525
+ ldrh r0, [r2]
12526
+ ldr r2, [fp, #-96]
1207312527 mul r0, r3, r0
1207412528 sub r0, r0, r5
12075
- add r0, r10, r0, lsl #9
12076
- b .L1843
12077
-.L1829:
12529
+ add r0, r8, r0, lsl #9
12530
+ b .L1702
12531
+.L1687:
1207812532 mvn r6, #0
12079
- b .L1805
12080
-.L1827:
12081
- add sp, sp, #60
12082
- @ sp needed
12083
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12084
-.L1845:
12533
+ b .L1662
12534
+.L1685:
12535
+ mov r0, r6
12536
+ sub sp, fp, #40
12537
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
12538
+.L1704:
1208512539 .align 2
12086
-.L1844:
12087
- .word __stack_chk_guard
12540
+.L1703:
1208812541 .word .LANCHOR0
1208912542 .word .LANCHOR2
1209012543 .word .LANCHOR0+258
1209112544 .word .LANCHOR0+312
12092
- .fnend
1209312545 .size FtlRead, .-FtlRead
1209412546 .align 2
1209512547 .global sftl_read
....@@ -12098,17 +12550,26 @@
1209812550 .fpu softvfp
1209912551 .type sftl_read, %function
1210012552 sftl_read:
12101
- .fnstart
1210212553 @ args = 0, pretend = 0, frame = 0
12103
- @ frame_needed = 0, uses_anonymous_args = 0
12104
- @ link register save eliminated.
12554
+ @ frame_needed = 1, uses_anonymous_args = 0
12555
+ mov ip, sp
12556
+ push {fp, ip, lr, pc}
12557
+ sub fp, ip, #4
12558
+ push {lr}
12559
+ bl __gnu_mcount_nc
1210512560 mov r3, r2
1210612561 mov r2, r1
1210712562 mov r1, r0
1210812563 mov r0, #0
12109
- b FtlRead
12110
- .fnend
12564
+ bl FtlRead
12565
+ ldmfd sp, {fp, sp, pc}
1211112566 .size sftl_read, .-sftl_read
12567
+ .section .rodata.str1.1
12568
+.LC125:
12569
+ .ascii "FtlWrite: ecc error:%x %x %x\012\000"
12570
+.LC126:
12571
+ .ascii "FtlWrite: lpa error:%x %x\012\000"
12572
+ .text
1211212573 .align 2
1211312574 .global FtlWrite
1211412575 .syntax unified
....@@ -12116,401 +12577,403 @@
1211612577 .fpu softvfp
1211712578 .type FtlWrite, %function
1211812579 FtlWrite:
12119
- .fnstart
12120
- @ args = 0, pretend = 0, frame = 72
12121
- @ frame_needed = 0, uses_anonymous_args = 0
12122
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12123
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12124
- .pad #76
12125
- sub sp, sp, #76
12126
- str r3, [sp, #12]
12580
+ @ args = 0, pretend = 0, frame = 80
12581
+ @ frame_needed = 1, uses_anonymous_args = 0
12582
+ mov ip, sp
12583
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
12584
+ sub fp, ip, #4
12585
+ sub sp, sp, #84
12586
+ push {lr}
12587
+ bl __gnu_mcount_nc
12588
+ str r3, [fp, #-92]
12589
+ mov r3, sp
12590
+ bic r3, r3, #8128
12591
+ mov r8, r1
12592
+ bic r3, r3, #63
1212712593 cmp r0, #16
12128
- mov r10, r1
12129
- ldr r3, .L1902
12130
- str r2, [sp, #8]
12131
- ldr r3, [r3]
12132
- str r3, [sp, #68]
12133
- bne .L1848
12134
- ldr r2, [sp, #12]
12135
- add r0, r10, #256
12136
- ldr r1, [sp, #8]
12594
+ str r2, [fp, #-88]
12595
+ ldr r3, [r3, #24]
12596
+ str r3, [fp, #-48]
12597
+ bne .L1707
12598
+ ldr r2, [fp, #-92]
12599
+ add r0, r8, #256
12600
+ ldr r1, [fp, #-88]
1213712601 bl FtlVendorPartWrite
12138
-.L1847:
12139
- ldr r3, .L1902
12140
- ldr r2, [sp, #68]
12141
- ldr r3, [r3]
12602
+.L1706:
12603
+ mov r3, sp
12604
+ ldr r2, [fp, #-48]
12605
+ bic r3, r3, #8128
12606
+ bic r3, r3, #63
12607
+ ldr r3, [r3, #24]
1214212608 cmp r2, r3
12143
- beq .L1884
12609
+ beq .L1744
1214412610 bl __stack_chk_fail
12145
-.L1848:
12146
- ldr r4, .L1902+4
12147
- ldr r2, [sp, #8]
12611
+.L1707:
12612
+ ldr r4, .L1759
12613
+ ldr r2, [fp, #-88]
1214812614 ldr r3, [r4, #340]
12149
- cmp r2, r3
12150
- cmpls r1, r3
12151
- bcs .L1886
12615
+ cmp r3, r2
12616
+ cmpcs r3, r1
12617
+ bls .L1746
1215212618 add r6, r1, r2
1215312619 cmp r3, r6
12154
- bcc .L1886
12155
- ldr r5, .L1902+8
12620
+ bcc .L1746
12621
+ ldr r5, .L1759+4
1215612622 ldr r0, [r5]
1215712623 cmn r0, #1
12158
- beq .L1847
12624
+ beq .L1706
1215912625 mov r3, #2048
12160
- mov r0, r10
1216112626 str r3, [r4, #3668]
1216212627 movw r3, #258
12628
+ mov r0, r8
1216312629 ldrh r7, [r4, r3]
1216412630 mov r1, r7
1216512631 bl __aeabi_uidiv
1216612632 mov r1, r7
12167
- str r0, [sp, #4]
12633
+ str r0, [fp, #-84]
1216812634 sub r0, r6, #1
1216912635 bl __aeabi_uidiv
12170
- ldr r2, [sp, #4]
12171
- str r0, [sp, #20]
12636
+ ldr r2, [fp, #-84]
12637
+ str r0, [fp, #-108]
1217212638 sub r3, r0, r2
12173
- ldr r2, [sp, #8]
12174
- add fp, r3, #1
12175
- str r3, [sp, #24]
12639
+ ldr r2, [fp, #-88]
12640
+ str r3, [fp, #-104]
12641
+ add r3, r3, #1
12642
+ str r3, [fp, #-80]
1217612643 ldr r3, [r4, #2580]
1217712644 add r3, r3, r2
12645
+ ldr r2, [fp, #-80]
1217812646 str r3, [r4, #2580]
1217912647 ldr r3, [r4, #2564]
12180
- add r3, r3, fp
12648
+ add r3, r3, r2
1218112649 str r3, [r4, #2564]
1218212650 ldr r3, [r5, #8]
1218312651 cmp r3, #0
1218412652 addeq r4, r4, #24
12185
- beq .L1850
12653
+ beq .L1709
1218612654 ldrh r3, [r4, #28]
1218712655 cmp r3, #0
1218812656 addne r4, r4, #24
1218912657 addeq r4, r4, #76
12190
-.L1850:
12191
- ldr r7, [sp, #4]
12192
- ldr r5, .L1902+4
12193
-.L1851:
12194
- cmp fp, #0
12195
- bne .L1879
12196
- ldr r1, [sp, #24]
12197
- mov r0, fp
12658
+.L1709:
12659
+ ldr r6, [fp, #-84]
12660
+ ldr r5, .L1759
12661
+.L1710:
12662
+ ldr r3, [fp, #-80]
12663
+ cmp r3, #0
12664
+ bne .L1740
12665
+ mov r0, r3
12666
+ ldr r1, [fp, #-104]
1219812667 bl rk_ftl_garbage_collect
1219912668 ldrh r3, [r5, #224]
1220012669 cmp r3, #5
12201
- movls r4, #256
12202
- ldrls r6, .L1902+12
12203
- bls .L1883
12204
-.L1882:
12670
+ bls .L1751
12671
+.L1743:
1220512672 mov r0, #0
12206
- b .L1847
12207
-.L1879:
12673
+ b .L1706
12674
+.L1740:
1220812675 ldrb r2, [r4, #6] @ zero_extendqisi2
1220912676 ldrh r3, [r5, #232]
1221012677 cmp r2, r3
12211
- bcc .L1852
12212
- movw r2, #1041
12213
- ldr r1, .L1902+16
12214
- ldr r0, .L1902+20
12678
+ bcc .L1711
12679
+ ldr r1, .L1759+8
12680
+ movw r2, #1046
12681
+ ldr r0, .L1759+12
1221512682 bl sftl_printk
12216
-.L1852:
12217
- ldrh r2, [r4, #4]
12218
- cmp r2, #0
12219
- bne .L1853
12220
- ldr r3, .L1902+24
12221
- ldr r6, .L1902+8
12222
- cmp r4, r3
12223
- bne .L1854
12224
- ldrh r8, [r5, #80]
12225
- cmp r8, #0
12226
- bne .L1855
12227
- add r0, r4, #52
12228
- bl allocate_new_data_superblock
12229
- str r8, [r6, #8]
12230
-.L1855:
12231
- ldr r0, .L1902+24
12232
- bl allocate_new_data_superblock
12233
- ldr r4, .L1902+24
12234
- ldr r2, [r6, #8]
12235
- add r3, r4, #52
12236
- cmp r2, #0
12237
- movne r4, r3
12238
-.L1856:
12683
+.L1711:
1223912684 ldrh r3, [r4, #4]
1224012685 cmp r3, #0
12241
- bne .L1853
12686
+ bne .L1712
12687
+ ldr r2, .L1759+16
12688
+ ldr r7, .L1759+4
12689
+ cmp r4, r2
12690
+ bne .L1713
12691
+ ldrh r9, [r5, #80]
12692
+ cmp r9, #0
12693
+ bne .L1714
12694
+ add r0, r4, #52
12695
+ bl allocate_new_data_superblock
12696
+ str r9, [r7, #8]
12697
+.L1714:
12698
+ ldr r0, .L1759+16
12699
+ bl allocate_new_data_superblock
12700
+ ldr r3, [r7, #8]
12701
+ cmp r3, #0
12702
+ ldrne r4, .L1759+20
12703
+ bne .L1715
12704
+.L1716:
12705
+ ldr r4, .L1759+16
12706
+.L1715:
12707
+ ldrh r3, [r4, #4]
12708
+ cmp r3, #0
12709
+ bne .L1712
1224212710 mov r0, r4
1224312711 bl allocate_new_data_superblock
12244
-.L1853:
12245
- ldrb r2, [r4, #7] @ zero_extendqisi2
12712
+.L1712:
1224612713 ldrh r3, [r4, #4]
12714
+ ldr r1, [fp, #-80]
12715
+ ldrb r2, [r4, #7] @ zero_extendqisi2
12716
+ cmp r3, r1
12717
+ movcs r3, r1
1224712718 lsl r2, r2, #2
12248
- cmp r3, fp
12249
- movcs r3, fp
1225012719 cmp r2, r3
1225112720 movcc r3, r2
1225212721 ldrb r2, [r4, #6] @ zero_extendqisi2
12253
- str r3, [sp, #36]
12722
+ str r3, [fp, #-120]
1225412723 ldrh r3, [r5, #232]
1225512724 cmp r2, r3
12256
- bcc .L1857
12257
- movw r2, #1074
12258
- ldr r1, .L1902+16
12259
- ldr r0, .L1902+20
12725
+ bcc .L1717
12726
+ ldr r1, .L1759+8
12727
+ movw r2, #1079
12728
+ ldr r0, .L1759+12
1226012729 bl sftl_printk
12261
-.L1857:
12262
- mov r3, #0
12263
-.L1901:
12264
- str r3, [sp]
12265
- ldr r3, [sp]
12266
- ldr r2, [sp, #36]
12267
- cmp r3, r2
12268
- bne .L1877
12269
-.L1859:
12730
+.L1717:
12731
+ mov r10, #0
12732
+.L1718:
12733
+ ldr r3, [fp, #-120]
12734
+ cmp r3, r10
12735
+ bne .L1738
12736
+.L1719:
1227012737 mov r3, r4
12271
- mov r2, #0
12272
- ldr r1, [sp]
1227312738 ldr r0, [r5, #3296]
12739
+ mov r1, r10
12740
+ mov r2, #0
1227412741 bl FtlProgPages
12275
- ldr r3, [sp]
12276
- cmp r3, fp
12277
- bls .L1878
12278
- mov r2, #1152
12279
- ldr r1, .L1902+16
12280
- ldr r0, .L1902+20
12742
+ ldr r3, [fp, #-80]
12743
+ cmp r3, r10
12744
+ bcs .L1739
12745
+ ldr r1, .L1759+8
12746
+ movw r2, #1157
12747
+ ldr r0, .L1759+12
1228112748 bl sftl_printk
12282
-.L1878:
12283
- ldr r3, [sp]
12284
- sub fp, fp, r3
12285
- b .L1851
12286
-.L1854:
12287
- str r2, [r6, #8]
12288
- ldrh r2, [r5, #28]
12289
- cmp r2, #0
12290
- movne r4, r3
12291
- bne .L1853
12749
+.L1739:
12750
+ ldr r3, [fp, #-80]
12751
+ sub r3, r3, r10
12752
+ str r3, [fp, #-80]
12753
+ b .L1710
12754
+.L1713:
12755
+ str r3, [r7, #8]
12756
+ ldrh r3, [r5, #28]
12757
+ cmp r3, #0
12758
+ bne .L1716
1229212759 mov r0, r4
1229312760 bl allocate_new_data_superblock
12294
- b .L1856
12295
-.L1877:
12761
+ b .L1715
12762
+.L1738:
1229612763 ldrh r3, [r4, #4]
1229712764 cmp r3, #0
12298
- beq .L1859
12765
+ beq .L1719
12766
+ sub r1, fp, #72
1229912767 mov r2, #0
12300
- add r1, sp, #44
12301
- mov r0, r7
12302
- mov r8, #20
12768
+ mov r0, r6
1230312769 bl log2phys
1230412770 mov r0, r4
1230512771 bl get_new_active_ppa
12306
- ldr r2, .L1902+28
12307
- ldr r1, [sp]
12308
- ldr r3, [sp]
12309
- ldrh r2, [r2]
12310
- mul r8, r8, r3
12772
+ mov r3, #20
12773
+ mul r3, r3, r10
12774
+ str r3, [fp, #-96]
12775
+ ldr r2, [fp, #-96]
1231112776 ldr r3, [r5, #3296]
12312
- mul r1, r2, r1
12313
- add r3, r3, r8
12777
+ add r3, r3, r2
12778
+ ldr r2, .L1759+24
1231412779 str r0, [r3, #4]
12780
+ ldrh r2, [r2]
12781
+ str r6, [r3, #16]
12782
+ mul r1, r10, r2
1231512783 bic r1, r1, #3
12316
- str r7, [r3, #16]
12317
- str r1, [sp, #28]
12318
- ldr r0, [sp, #28]
12784
+ str r1, [fp, #-112]
12785
+ ldr r0, [fp, #-112]
1231912786 ldr r1, [r5, #3336]
12787
+ str r1, [fp, #-116]
1232012788 add r9, r1, r0
12321
- str r1, [sp, #32]
12322
- str r9, [r3, #12]
1232312789 mov r1, #0
12790
+ str r9, [r3, #12]
1232412791 mov r0, r9
1232512792 bl ftl_memset
12326
- ldr r3, [sp, #4]
12327
- ldr r2, [sp, #20]
12328
- cmp r7, r2
12329
- cmpne r7, r3
12330
- bne .L1860
12331
- cmp r7, r3
12332
- bne .L1861
12333
- ldr r3, .L1902+32
12334
- mov r0, r10
12335
- ldrh r6, [r3]
12336
- mov r1, r6
12337
- bl __aeabi_uidivmod
12338
- ldr r3, [sp, #8]
12339
- sub r6, r6, r1
12340
- str r1, [sp, #16]
12341
- cmp r6, r3
12342
- movcs r6, r3
12343
-.L1862:
12344
- ldr r3, .L1902+32
12793
+ ldr r3, [fp, #-84]
12794
+ ldr r2, [fp, #-108]
12795
+ cmp r6, r2
12796
+ cmpne r6, r3
12797
+ ldr r3, .L1759+28
12798
+ bne .L1720
12799
+ ldr r2, [fp, #-84]
1234512800 ldrh r3, [r3]
12346
- cmp r6, r3
12347
- ldr r3, [sp, #4]
12348
- bne .L1863
12349
- cmp r7, r3
12350
- ldr r3, [r5, #3296]
12351
- add r8, r3, r8
12352
- ldreq r3, [sp, #12]
12353
- beq .L1898
12354
- mul r6, r6, r7
12355
- ldr r3, [sp, #12]
12356
- sub r6, r6, r10
12357
- add r6, r3, r6, lsl #9
12358
- str r6, [r8, #8]
12359
-.L1865:
12801
+ cmp r6, r2
12802
+ bne .L1721
12803
+ mov r1, r3
12804
+ mov r0, r8
12805
+ str r3, [fp, #-124]
12806
+ bl __aeabi_uidivmod
12807
+ ldr r3, [fp, #-124]
12808
+ ldr r2, [fp, #-88]
12809
+ sub r7, r3, r1
12810
+ str r1, [fp, #-100]
12811
+ cmp r7, r2
12812
+ movcs r7, r2
12813
+.L1722:
12814
+ ldr r0, [r5, #3296]
12815
+ cmp r3, r7
12816
+ ldr r2, [fp, #-96]
12817
+ add r0, r0, r2
12818
+ bne .L1723
12819
+ ldr r2, [fp, #-84]
12820
+ cmp r6, r2
12821
+ mulne r3, r6, r3
12822
+ ldrne r2, [fp, #-92]
12823
+ ldreq r3, [fp, #-92]
12824
+ subne r3, r3, r8
12825
+ addne r3, r2, r3, lsl #9
12826
+ str r3, [r0, #8]
12827
+.L1725:
1236012828 ldrb r2, [r4, #6] @ zero_extendqisi2
1236112829 ldrh r3, [r5, #232]
1236212830 cmp r2, r3
12363
- bcc .L1874
12364
- movw r2, #1143
12365
- ldr r1, .L1902+16
12366
- ldr r0, .L1902+20
12831
+ bcc .L1735
12832
+ ldr r1, .L1759+8
12833
+ movw r2, #1148
12834
+ ldr r0, .L1759+12
1236712835 bl sftl_printk
12368
-.L1874:
12369
- ldr r3, .L1902+36
12370
- ldr r2, [sp, #32]
12371
- ldr r1, [sp, #28]
12836
+.L1735:
12837
+ ldr r2, [fp, #-116]
12838
+ add r10, r10, #1
12839
+ ldr r1, [fp, #-112]
12840
+ ldr r3, .L1759+32
1237212841 strh r3, [r2, r1] @ movhi
12842
+ str r6, [r9, #8]
12843
+ add r6, r6, #1
1237312844 ldr r3, [r5, #2592]
12374
- str r7, [r9, #8]
12375
- add r7, r7, #1
1237612845 str r3, [r9, #4]
12377
- add r3, r3, #1
12378
- cmn r3, #1
12846
+ cmn r3, #2
12847
+ add r2, r3, #1
12848
+ strne r2, [r5, #2592]
1237912849 moveq r3, #0
12380
- str r3, [r5, #2592]
12381
- ldr r3, [sp, #44]
12850
+ streq r3, [r5, #2592]
12851
+ ldr r3, [fp, #-72]
1238212852 str r3, [r9, #12]
1238312853 ldrh r3, [r4]
1238412854 strh r3, [r9, #2] @ movhi
12385
- ldr r3, [sp]
12386
- add r3, r3, #1
12387
- b .L1901
12388
-.L1861:
12389
- ldr r3, [sp, #8]
12390
- add r6, r10, r3
12391
- ldr r3, .L1902+32
12392
- ldrh r2, [r3]
12393
- mov r3, #0
12394
- str r3, [sp, #16]
12395
- smulbb r2, r2, r7
12396
- sub r6, r6, r2
12397
- uxth r6, r6
12398
- b .L1862
12399
-.L1863:
12400
- cmp r7, r3
12401
- ldr r3, [r5, #3296]
12402
- ldreq r2, [r5, #3312]
12403
- ldrne r2, [r5, #3316]
12404
- add r3, r3, r8
12405
- str r2, [r3, #8]
12406
- ldr r3, [sp, #44]
12407
- cmn r3, #1
12408
- beq .L1868
12409
- str r3, [sp, #52]
12410
- mov r1, #1
12411
- ldr r3, [r5, #3296]
12412
- add r0, sp, #48
12413
- str r7, [sp, #64]
12414
- add r3, r3, r8
12415
- ldr r2, [r3, #8]
12416
- ldr r3, [r3, #12]
12417
- str r2, [sp, #56]
12855
+ b .L1718
12856
+.L1721:
12857
+ ldr r2, [fp, #-88]
12858
+ add r7, r8, r2
12859
+ smulbb r2, r6, r3
12860
+ sub r7, r7, r2
1241812861 mov r2, #0
12419
- str r3, [sp, #60]
12420
- bl FlashReadPages
12421
- ldr r3, [sp, #48]
12862
+ str r2, [fp, #-100]
12863
+ uxth r7, r7
12864
+ b .L1722
12865
+.L1723:
12866
+ ldr r3, [fp, #-84]
12867
+ cmp r6, r3
12868
+ ldreq r3, [r5, #3312]
12869
+ ldrne r3, [r5, #3316]
12870
+ str r3, [r0, #8]
12871
+ ldr r3, [fp, #-72]
1242212872 cmn r3, #1
12423
- bne .L1869
12873
+ beq .L1728
12874
+ str r6, [fp, #-52]
12875
+ mov r2, #0
12876
+ str r3, [fp, #-64]
12877
+ mov r1, #1
12878
+ ldr r3, [r0, #8]
12879
+ str r3, [fp, #-60]
12880
+ ldr r3, [r0, #12]
12881
+ sub r0, fp, #68
12882
+ str r3, [fp, #-56]
12883
+ bl FlashReadPages
12884
+ ldr r3, [fp, #-68]
12885
+ cmn r3, #1
12886
+ bne .L1729
1242412887 ldr r2, [r5, #2712]
12425
- ldr r0, .L1902+40
12888
+ ldr r0, .L1759+36
1242612889 add r2, r2, #1
1242712890 str r2, [r5, #2712]
12428
- mov r2, r7
12891
+ mov r2, r6
1242912892 ldr r1, [r9, #8]
1243012893 bl sftl_printk
12431
-.L1872:
12432
- ldr r3, [sp, #4]
12433
- lsl r2, r6, #9
12434
- cmp r7, r3
12435
- bne .L1873
12894
+.L1733:
12895
+ ldr r3, [fp, #-84]
12896
+ lsl r2, r7, #9
12897
+ cmp r6, r3
12898
+ bne .L1734
12899
+ ldr r1, [fp, #-96]
1243612900 ldr r3, [r5, #3296]
12437
- ldr r1, [sp, #12]
12438
- add r8, r3, r8
12439
- ldr r3, [sp, #16]
12440
- ldr r0, [r8, #8]
12901
+ add r3, r3, r1
12902
+ ldr r1, [fp, #-92]
12903
+ ldr r0, [r3, #8]
12904
+ ldr r3, [fp, #-100]
1244112905 add r0, r0, r3, lsl #9
12442
-.L1899:
12906
+.L1758:
1244312907 bl ftl_memcpy
12444
- b .L1865
12445
-.L1869:
12908
+ b .L1725
12909
+.L1729:
1244612910 ldr r3, [r9, #8]
12447
- cmp r7, r3
12448
- beq .L1871
12911
+ cmp r3, r6
12912
+ beq .L1733
1244912913 ldr r3, [r5, #2712]
12450
- mov r2, r7
12451
- ldr r0, .L1902+44
12914
+ mov r2, r6
12915
+ ldr r0, .L1759+40
1245212916 add r3, r3, #1
1245312917 str r3, [r5, #2712]
1245412918 ldr r1, [r9, #8]
1245512919 bl sftl_printk
12456
-.L1871:
1245712920 ldr r3, [r9, #8]
12458
- cmp r7, r3
12459
- beq .L1872
12460
- movw r2, #1128
12461
- ldr r1, .L1902+16
12462
- ldr r0, .L1902+20
12921
+ cmp r3, r6
12922
+ beq .L1733
12923
+ ldr r1, .L1759+8
12924
+ movw r2, #1133
12925
+ ldr r0, .L1759+12
1246312926 bl sftl_printk
12464
- b .L1872
12465
-.L1868:
12466
- ldr r3, [r5, #3296]
12927
+ b .L1733
12928
+.L1728:
12929
+ ldr r3, .L1759+44
1246712930 mov r1, #0
12468
- ldr r2, .L1902+48
12469
- add r3, r3, r8
12470
- ldrh r2, [r2]
12471
- ldr r0, [r3, #8]
12931
+ ldr r0, [r0, #8]
12932
+ ldrh r2, [r3]
1247212933 bl ftl_memset
12473
- b .L1872
12474
-.L1873:
12475
- ldr r3, .L1902+32
12934
+ b .L1733
12935
+.L1734:
12936
+ ldr r3, .L1759+28
12937
+ ldr r0, [fp, #-96]
1247612938 ldrh r1, [r3]
1247712939 ldr r3, [r5, #3296]
12478
- mul r1, r7, r1
12479
- add r8, r3, r8
12480
- ldr r3, [sp, #12]
12481
- ldr r0, [r8, #8]
12482
- sub r1, r1, r10
12483
- add r1, r3, r1, lsl #9
12484
- b .L1899
12485
-.L1860:
12486
- ldr r3, [r5, #3296]
12487
- ldr r2, [sp, #12]
12488
- add r8, r3, r8
12489
- ldr r3, .L1902+32
12940
+ add r3, r3, r0
12941
+ ldr r0, [fp, #-92]
12942
+ mul r1, r6, r1
12943
+ sub r1, r1, r8
12944
+ add r1, r0, r1, lsl #9
12945
+ ldr r0, [r3, #8]
12946
+ b .L1758
12947
+.L1720:
1249012948 ldrh r3, [r3]
12491
- mul r3, r7, r3
12492
- sub r3, r3, r10
12493
- add r3, r2, r3, lsl #9
12494
-.L1898:
12495
- str r3, [r8, #8]
12496
- b .L1865
12497
-.L1883:
12949
+ ldr r1, [fp, #-96]
12950
+ ldr r2, [r5, #3296]
12951
+ mul r3, r6, r3
12952
+ add r2, r2, r1
12953
+ ldr r1, [fp, #-92]
12954
+ sub r3, r3, r8
12955
+ add r3, r1, r3, lsl #9
12956
+ str r3, [r2, #8]
12957
+ b .L1725
12958
+.L1751:
12959
+ ldr r6, .L1759+48
12960
+ mov r4, #256
12961
+.L1741:
12962
+ ldrh r2, [r5, #222]
1249812963 ldrh r3, [r5, #172]
12964
+ and r3, r3, r2
1249912965 movw r2, #65535
1250012966 cmp r3, r2
12501
- bne .L1881
12502
- ldrh r2, [r5, #222]
12503
- cmp r2, r3
12504
- bne .L1881
12967
+ bne .L1742
1250512968 mov r0, #0
1250612969 bl List_get_gc_head_node
1250712970 uxth r0, r0
1250812971 bl FtlGcRefreshBlock
12509
-.L1881:
12510
- ldr r2, .L1902+52
12972
+.L1742:
12973
+ ldr r2, .L1759+52
1251112974 mov r1, #1
12512
- mov r3, #128
1251312975 mov r0, r1
12976
+ mov r3, #128
1251412977 strh r3, [r6] @ movhi
1251512978 strh r3, [r2] @ movhi
1251612979 bl rk_ftl_garbage_collect
....@@ -12519,35 +12982,33 @@
1251912982 bl rk_ftl_garbage_collect
1252012983 ldrh r3, [r5, #224]
1252112984 cmp r3, #2
12522
- bhi .L1882
12985
+ bhi .L1743
1252312986 subs r4, r4, #1
12524
- bne .L1883
12525
- b .L1882
12526
-.L1886:
12987
+ bne .L1741
12988
+ b .L1743
12989
+.L1746:
1252712990 mvn r0, #0
12528
- b .L1847
12529
-.L1884:
12530
- add sp, sp, #76
12531
- @ sp needed
12532
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12533
-.L1903:
12991
+ b .L1706
12992
+.L1744:
12993
+ sub sp, fp, #40
12994
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
12995
+.L1760:
1253412996 .align 2
12535
-.L1902:
12536
- .word __stack_chk_guard
12997
+.L1759:
1253712998 .word .LANCHOR0
1253812999 .word .LANCHOR2
12539
- .word .LANCHOR0+3154
1254013000 .word .LANCHOR1+591
1254113001 .word .LC8
1254213002 .word .LANCHOR0+24
13003
+ .word .LANCHOR0+76
1254313004 .word .LANCHOR0+312
1254413005 .word .LANCHOR0+258
1254513006 .word -3947
1254613007 .word .LC125
1254713008 .word .LC126
1254813009 .word .LANCHOR0+310
13010
+ .word .LANCHOR0+3154
1254913011 .word .LANCHOR0+3152
12550
- .fnend
1255113012 .size FtlWrite, .-FtlWrite
1255213013 .align 2
1255313014 .global sftl_gc
....@@ -12556,15 +13017,23 @@
1255613017 .fpu softvfp
1255713018 .type sftl_gc, %function
1255813019 sftl_gc:
12559
- .fnstart
1256013020 @ args = 0, pretend = 0, frame = 0
12561
- @ frame_needed = 0, uses_anonymous_args = 0
12562
- @ link register save eliminated.
13021
+ @ frame_needed = 1, uses_anonymous_args = 0
13022
+ mov ip, sp
13023
+ push {fp, ip, lr, pc}
13024
+ sub fp, ip, #4
13025
+ push {lr}
13026
+ bl __gnu_mcount_nc
1256313027 mov r1, #1
1256413028 mov r0, r1
12565
- b rk_ftl_garbage_collect
12566
- .fnend
13029
+ bl rk_ftl_garbage_collect
13030
+ ldmfd sp, {fp, sp, pc}
1256713031 .size sftl_gc, .-sftl_gc
13032
+ .section .rodata.str1.1
13033
+.LC127:
13034
+ .ascii "%s hash error this.id =%x page =%x pre_id =%x hash "
13035
+ .ascii "=%x hash_r =%x\012\000"
13036
+ .text
1256813037 .align 2
1256913038 .global FtlLoadSysInfo
1257013039 .syntax unified
....@@ -12572,123 +13041,125 @@
1257213041 .fpu softvfp
1257313042 .type FtlLoadSysInfo, %function
1257413043 FtlLoadSysInfo:
12575
- .fnstart
12576
- @ args = 0, pretend = 0, frame = 0
12577
- @ frame_needed = 0, uses_anonymous_args = 0
12578
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12579
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13044
+ @ args = 0, pretend = 0, frame = 8
13045
+ @ frame_needed = 1, uses_anonymous_args = 0
13046
+ mov ip, sp
13047
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
13048
+ sub fp, ip, #4
13049
+ sub sp, sp, #28
13050
+ push {lr}
13051
+ bl __gnu_mcount_nc
13052
+ ldr r4, .L1790
1258013053 mov r1, #0
12581
- ldr r4, .L1936
12582
- .pad #20
12583
- sub sp, sp, #20
12584
- ldr r3, [r4, #3300]
1258513054 add r6, r4, #2624
1258613055 ldrh r2, [r4, #240]
12587
- ldr r0, [r4, #72]
13056
+ ldr r3, [r4, #3300]
1258813057 str r3, [r4, #3460]
12589
- ldr r3, [r4, #3332]
13058
+ ldr r0, [r4, #72]
1259013059 lsl r2, r2, #1
13060
+ ldr r3, [r4, #3332]
1259113061 str r3, [r4, #3464]
1259213062 bl ftl_memset
1259313063 ldrh r0, [r6]
1259413064 movw r3, #65535
1259513065 cmp r0, r3
12596
- bne .L1906
12597
-.L1917:
13066
+ bne .L1763
13067
+.L1775:
1259813068 mvn r0, #0
12599
-.L1905:
12600
- add sp, sp, #20
12601
- @ sp needed
12602
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12603
-.L1906:
13069
+.L1762:
13070
+ sub sp, fp, #40
13071
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
13072
+.L1763:
1260413073 mov r1, #1
12605
- ldr r8, .L1936+4
13074
+ ldr r9, .L1790+4
1260613075 bl FtlGetLastWrittenPage
12607
- ldr r9, .L1936+8
12608
- sxth r5, r0
13076
+ ldr r10, .L1790+8
1260913077 ldrsh r7, [r6]
12610
- add r0, r0, #1
12611
- ldr r10, .L1936+12
12612
- strh r0, [r6, #2] @ movhi
12613
-.L1908:
13078
+ sxth r5, r0
13079
+ add r3, r5, #1
13080
+ strh r3, [r6, #2] @ movhi
13081
+.L1765:
1261413082 cmp r5, #0
12615
- bge .L1914
13083
+ bge .L1772
13084
+ ldr r1, .L1790+12
1261613085 movw r2, #1474
12617
- ldr r1, .L1936+16
12618
- ldr r0, .L1936+20
13086
+ ldr r0, .L1790+16
1261913087 bl sftl_printk
12620
- b .L1913
12621
-.L1914:
13088
+ b .L1771
13089
+.L1772:
1262213090 orr r3, r5, r7, lsl #10
1262313091 mov r2, #1
12624
- mov r1, r2
1262513092 str r3, [r4, #3456]
12626
- mov r0, r8
13093
+ mov r1, r2
1262713094 ldr r3, [r4, #3300]
13095
+ mov r0, r9
1262813096 str r3, [r4, #3460]
1262913097 bl FlashReadPages
1263013098 ldr r3, [r4, #3464]
12631
- ldr fp, [r3, #12]
12632
- cmp fp, #0
12633
- beq .L1909
12634
- ldr r3, [r4, #3452]
12635
- cmn r3, #1
12636
- beq .L1909
12637
- ldrh r1, [r10]
13099
+ ldr r3, [r3, #12]
13100
+ str r3, [fp, #-48]
13101
+ cmp r3, #0
13102
+ beq .L1766
13103
+ ldr r2, [r4, #3452]
13104
+ cmn r2, #1
13105
+ beq .L1767
13106
+ ldr r8, .L1790+20
1263813107 ldr r0, [r4, #3460]
13108
+ ldrh r1, [r8]
1263913109 bl js_hash
12640
- cmp fp, r0
12641
- beq .L1909
13110
+ ldr r3, [fp, #-48]
13111
+ cmp r3, r0
13112
+ beq .L1768
1264213113 str r0, [sp, #8]
1264313114 mov r2, r7
12644
- str fp, [sp, #4]
13115
+ str r3, [sp, #4]
13116
+ ldr r1, .L1790+12
1264513117 ldrh r3, [r6, #4]
12646
- ldr r1, .L1936+16
12647
- ldr r0, .L1936+24
1264813118 str r3, [sp]
1264913119 mov r3, r5
13120
+ ldr r0, .L1790+24
1265013121 bl sftl_printk
1265113122 cmp r5, #0
12652
- bne .L1910
13123
+ bne .L1769
1265313124 ldrh r3, [r6, #4]
1265413125 cmp r7, r3
12655
- beq .L1910
12656
- sxth r7, r3
12657
- ldr r3, .L1936+28
12658
- ldrh r5, [r3]
12659
-.L1912:
12660
- sub r5, r5, #1
12661
- sxth r5, r5
12662
- b .L1908
12663
-.L1910:
13126
+ sxthne r7, r3
13127
+ ldrhne r5, [r8, #-6]
13128
+ bne .L1767
13129
+.L1769:
1266413130 mvn r3, #0
1266513131 str r3, [r4, #3452]
12666
-.L1909:
13132
+.L1767:
13133
+ sub r5, r5, #1
13134
+ sxth r5, r5
13135
+ b .L1765
13136
+.L1766:
1266713137 ldr r3, [r4, #3452]
1266813138 cmn r3, #1
12669
- beq .L1912
13139
+ beq .L1767
13140
+.L1768:
1267013141 ldr r3, [r4, #3300]
1267113142 ldr r3, [r3]
12672
- cmp r3, r9
12673
- bne .L1912
13143
+ cmp r3, r10
13144
+ bne .L1767
1267413145 ldr r3, [r4, #3332]
1267513146 ldrh r2, [r3]
1267613147 movw r3, #61604
1267713148 cmp r2, r3
12678
- bne .L1912
12679
-.L1913:
13149
+ bne .L1767
13150
+.L1771:
1268013151 movw r2, #310
1268113152 ldrh r3, [r4, #240]
1268213153 ldrh r2, [r4, r2]
1268313154 add r3, r3, #24
1268413155 cmp r2, r3, lsl #1
12685
- bcs .L1916
13156
+ bcs .L1774
13157
+ ldr r1, .L1790+12
1268613158 movw r2, #1476
12687
- ldr r1, .L1936+16
12688
- ldr r0, .L1936+20
13159
+ ldr r0, .L1790+16
1268913160 bl sftl_printk
12690
-.L1916:
12691
- ldr r5, .L1936+32
13161
+.L1774:
13162
+ ldr r5, .L1790+28
1269213163 mov r2, #48
1269313164 ldr r1, [r4, #3460]
1269413165 mov r0, r5
....@@ -12700,84 +13171,83 @@
1270013171 add r1, r1, #48
1270113172 bl ftl_memcpy
1270213173 ldr r2, [r4, #2468]
12703
- ldr r3, .L1936+8
13174
+ ldr r3, .L1790+8
1270413175 cmp r2, r3
12705
- bne .L1917
13176
+ bne .L1775
1270613177 ldrb r2, [r4, #2478] @ zero_extendqisi2
1270713178 ldrh r3, [r4, #254]
1270813179 ldrh r7, [r5, #8]
1270913180 cmp r2, r3
1271013181 strh r7, [r6, #6] @ movhi
12711
- bne .L1917
13182
+ bne .L1775
1271213183 movw r3, #302
1271313184 movw r2, #258
13185
+ ldr r6, [r4, #244]
1271413186 ldrh r3, [r4, r3]
1271513187 ldrh r2, [r4, r2]
12716
- ldr r6, [r4, #244]
13188
+ ldrh r1, [r4, #232]
1271713189 str r7, [r4, #3672]
1271813190 mul r3, r7, r3
12719
- ldrh r1, [r4, #232]
1272013191 str r3, [r4, #2552]
1272113192 mul r3, r3, r2
1272213193 str r3, [r4, #340]
12723
- ldr r3, .L1936+36
13194
+ ldr r3, .L1790+32
1272413195 ldrh r0, [r3, #6]
13196
+ add r0, r0, r7
1272513197 sub r0, r6, r0
12726
- sub r0, r0, r7
1272713198 bl __aeabi_uidiv
12728
- cmp r7, r6
1272913199 movw r3, #2620
13200
+ cmp r7, r6
1273013201 strh r0, [r4, r3] @ movhi
12731
- bls .L1918
13202
+ bls .L1776
13203
+ ldr r1, .L1790+12
1273213204 movw r2, #1498
12733
- ldr r1, .L1936+16
12734
- ldr r0, .L1936+20
13205
+ ldr r0, .L1790+16
1273513206 bl sftl_printk
12736
-.L1918:
13207
+.L1776:
1273713208 ldrh r3, [r5, #16]
1273813209 ldrh r1, [r5, #14]
13210
+ strh r1, [r4, #24] @ movhi
1273913211 lsr r2, r3, #6
12740
- and r3, r3, #63
12741
- strb r3, [r4, #30]
1274213212 strh r2, [r4, #26] @ movhi
1274313213 ldrh r2, [r5, #18]
12744
- ldrb r3, [r4, #2479] @ zero_extendqisi2
12745
- strh r1, [r4, #24] @ movhi
13214
+ and r3, r3, #63
1274613215 strh r2, [r4, #76] @ movhi
1274713216 ldrh r2, [r5, #20]
12748
- strb r3, [r4, #32]
12749
- mvn r3, #0
12750
- strh r3, [r4, #172] @ movhi
12751
- mov r3, #0
12752
- strh r3, [r4, #174] @ movhi
13217
+ strb r3, [r4, #30]
13218
+ ldrb r3, [r4, #2479] @ zero_extendqisi2
1275313219 lsr r0, r2, #6
1275413220 and r2, r2, #63
1275513221 strb r2, [r4, #82]
1275613222 ldrb r2, [r4, #2480] @ zero_extendqisi2
12757
- strh r0, [r4, #78] @ movhi
12758
- strb r3, [r4, #178]
1275913223 strb r2, [r4, #84]
1276013224 ldrh r2, [r5, #22]
12761
- strb r3, [r4, #180]
12762
- str r3, [r4, #2576]
1276313225 strh r2, [r4, #124] @ movhi
1276413226 ldrh r2, [r5, #24]
12765
- str r3, [r4, #2564]
12766
- str r3, [r4, #2556]
12767
- str r3, [r4, #2572]
13227
+ strh r0, [r4, #78] @ movhi
13228
+ strb r3, [r4, #32]
13229
+ movw r3, #65535
1276813230 lsr r0, r2, #6
1276913231 and r2, r2, #63
1277013232 strb r2, [r4, #130]
1277113233 ldrb r2, [r4, #2481] @ zero_extendqisi2
12772
- str r3, [r4, #2600]
12773
- strh r0, [r4, #126] @ movhi
1277413234 strb r2, [r4, #132]
1277513235 ldr r2, [r4, #2500]
13236
+ str r3, [r4, #172]
13237
+ mov r3, #0
1277613238 str r2, [r4, #2596]
13239
+ strb r3, [r4, #178]
13240
+ strb r3, [r4, #180]
13241
+ str r3, [r4, #2576]
13242
+ str r3, [r4, #2564]
13243
+ str r3, [r4, #2556]
13244
+ str r3, [r4, #2572]
13245
+ str r3, [r4, #2600]
1277713246 str r3, [r4, #2612]
12778
- ldr r2, [r4, #2588]
13247
+ strh r0, [r4, #126] @ movhi
1277913248 str r3, [r4, #2568]
1278013249 ldr r3, [r4, #2508]
13250
+ ldr r2, [r4, #2588]
1278113251 cmp r3, r2
1278213252 ldr r2, [r4, #2592]
1278313253 strhi r3, [r4, #2588]
....@@ -12786,52 +13256,58 @@
1278613256 strhi r3, [r4, #2592]
1278713257 movw r3, #65535
1278813258 cmp r1, r3
12789
- beq .L1921
12790
- ldr r0, .L1936+40
13259
+ beq .L1779
13260
+ ldr r0, .L1790+36
1279113261 bl make_superblock
12792
-.L1921:
13262
+.L1779:
1279313263 ldrh r2, [r4, #76]
1279413264 movw r3, #65535
1279513265 cmp r2, r3
12796
- beq .L1922
12797
- ldr r0, .L1936+44
13266
+ beq .L1780
13267
+ ldr r0, .L1790+40
1279813268 bl make_superblock
12799
-.L1922:
13269
+.L1780:
1280013270 ldrh r2, [r4, #124]
1280113271 movw r3, #65535
1280213272 cmp r2, r3
12803
- beq .L1923
12804
- ldr r0, .L1936+48
13273
+ beq .L1781
13274
+ ldr r0, .L1790+44
1280513275 bl make_superblock
12806
-.L1923:
13276
+.L1781:
1280713277 ldrh r2, [r4, #172]
1280813278 movw r3, #65535
1280913279 cmp r2, r3
12810
- beq .L1924
12811
- ldr r0, .L1936+52
13280
+ beq .L1782
13281
+ ldr r0, .L1790+48
1281213282 bl make_superblock
12813
-.L1924:
13283
+.L1782:
1281413284 mov r0, #0
12815
- b .L1905
12816
-.L1937:
13285
+ b .L1762
13286
+.L1791:
1281713287 .align 2
12818
-.L1936:
13288
+.L1790:
1281913289 .word .LANCHOR0
1282013290 .word .LANCHOR0+3452
1282113291 .word 1179929683
12822
- .word .LANCHOR0+310
1282313292 .word .LANCHOR1+600
1282413293 .word .LC8
13294
+ .word .LANCHOR0+310
1282513295 .word .LC127
12826
- .word .LANCHOR0+304
1282713296 .word .LANCHOR0+2468
1282813297 .word .LANCHOR0+352
1282913298 .word .LANCHOR0+24
1283013299 .word .LANCHOR0+76
1283113300 .word .LANCHOR0+124
1283213301 .word .LANCHOR0+172
12833
- .fnend
1283413302 .size FtlLoadSysInfo, .-FtlLoadSysInfo
13303
+ .section .rodata.str1.1
13304
+.LC128:
13305
+ .ascii "%s last blk_id =%x page =%x hash error hash =%x has"
13306
+ .ascii "h_r =%x\012\000"
13307
+.LC129:
13308
+ .ascii "%s scan blk_id =%x page =%x hash error hash =%x has"
13309
+ .ascii "h_r =%x\012\000"
13310
+ .text
1283513311 .align 2
1283613312 .global FtlMapTblRecovery
1283713313 .syntax unified
....@@ -12839,259 +13315,265 @@
1283913315 .fpu softvfp
1284013316 .type FtlMapTblRecovery, %function
1284113317 FtlMapTblRecovery:
12842
- .fnstart
1284313318 @ args = 0, pretend = 0, frame = 32
12844
- @ frame_needed = 0, uses_anonymous_args = 0
12845
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12846
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
12847
- .pad #44
13319
+ @ frame_needed = 1, uses_anonymous_args = 0
13320
+ mov ip, sp
13321
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
13322
+ sub fp, ip, #4
1284813323 sub sp, sp, #44
12849
- ldr r3, [r0, #24]
13324
+ push {lr}
13325
+ bl __gnu_mcount_nc
13326
+ ldr r3, [r0, #12]
1285013327 mov r4, r0
13328
+ str r3, [fp, #-56]
1285113329 mov r1, #0
12852
- mov r8, #0
12853
- ldr r6, .L1980
12854
- str r3, [sp, #12]
1285513330 ldr r3, [r0, #16]
12856
- ldr r9, [r0, #12]
12857
- add fp, r6, #304
12858
- str r3, [sp, #24]
13331
+ mov r6, #0
13332
+ str r3, [fp, #-64]
1285913333 ldrh r3, [r0, #6]
12860
- str r3, [sp, #16]
13334
+ str r3, [fp, #-48]
1286113335 ldrh r3, [r0, #8]
12862
- ldr r0, [sp, #12]
12863
- str r3, [sp, #20]
12864
- ldr r3, [sp, #16]
13336
+ ldr r5, .L1831
13337
+ str r3, [fp, #-60]
13338
+ ldr r3, [fp, #-48]
13339
+ ldr r9, [r0, #24]
1286513340 lsl r2, r3, #2
13341
+ mov r0, r9
1286613342 bl ftl_memset
12867
- ldr r3, [r6, #3300]
12868
- ldr r5, [r6, #3332]
12869
- str r8, [r4, #32]
12870
- str r3, [r6, #3460]
13343
+ ldr r3, [r5, #3300]
13344
+ ldr r8, [r5, #3332]
13345
+ str r3, [r5, #3460]
1287113346 mvn r3, #0
12872
- str r5, [r6, #3464]
12873
- strh r3, [r4] @ movhi
12874
- strh r3, [r4, #2] @ movhi
13347
+ str r8, [r5, #3464]
13348
+ str r6, [r4, #32]
13349
+ str r3, [r4]
1287513350 mov r3, #1
12876
- str r8, [r4, #28]
13351
+ str r6, [r4, #28]
1287713352 str r3, [r4, #36]
12878
-.L1939:
12879
- ldr r3, [sp, #20]
12880
- sxth r7, r8
13353
+.L1793:
13354
+ ldr r3, [fp, #-60]
13355
+ sxth r7, r6
13356
+ uxth r10, r6
1288113357 cmp r7, r3
12882
- bge .L1958
12883
- ldr r3, [sp, #20]
12884
- sub r3, r3, #1
12885
- cmp r7, r3
13358
+ bge .L1813
13359
+ ldr r2, [fp, #-56]
1288613360 lsl r3, r7, #1
12887
- bne .L1940
12888
- ldrh r0, [r9, r3]
13361
+ add r2, r2, r7, lsl #1
13362
+ str r2, [fp, #-52]
13363
+ ldr r2, [fp, #-60]
13364
+ sub r2, r2, #1
13365
+ cmp r2, r7
13366
+ bne .L1794
13367
+ ldr r3, [fp, #-52]
1288913368 mov r1, #1
12890
- add r10, r9, r3
12891
- ldr r6, .L1980
13369
+ ldr r5, .L1831
13370
+ ldrh r0, [r3]
1289213371 bl FtlGetLastWrittenPage
1289313372 sxth r3, r0
12894
- ldr fp, .L1980+4
12895
- add r0, r0, #1
12896
- strh r8, [r4] @ movhi
12897
- str r3, [sp, #20]
12898
- mov r8, #0
12899
- ldr r3, [sp, #24]
12900
- strh r0, [r4, #2] @ movhi
13373
+ str r3, [fp, #-56]
13374
+ add r3, r3, #1
13375
+ strh r3, [r4, #2] @ movhi
13376
+ ldr r3, [fp, #-64]
13377
+ strh r10, [r4] @ movhi
13378
+ mov r10, #0
1290113379 ldr r3, [r3, r7, lsl #2]
1290213380 str r3, [r4, #28]
12903
-.L1941:
12904
- ldr r3, [sp, #20]
12905
- sxth r9, r8
13381
+.L1795:
13382
+ ldr r3, [fp, #-56]
13383
+ sxth r6, r10
1290613384 add r2, r3, #1
12907
- cmp r9, r2
12908
- blt .L1944
12909
-.L1958:
13385
+ cmp r6, r2
13386
+ blt .L1799
13387
+.L1813:
1291013388 mov r0, r4
1291113389 bl ftl_free_no_use_map_blk
12912
- ldr r3, .L1980+8
13390
+ ldr r3, .L1831+4
1291313391 ldrh r2, [r4, #2]
1291413392 ldrh r3, [r3]
1291513393 cmp r2, r3
12916
- bne .L1946
13394
+ bne .L1801
1291713395 mov r0, r4
1291813396 bl ftl_map_blk_alloc_new_blk
12919
-.L1946:
13397
+.L1801:
1292013398 mov r0, r4
1292113399 bl ftl_map_blk_gc
1292213400 mov r0, r4
1292313401 bl ftl_map_blk_gc
1292413402 mov r0, #0
12925
- add sp, sp, #44
12926
- @ sp needed
12927
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
12928
-.L1944:
12929
- ldrh r2, [r10]
12930
- mov r0, fp
12931
- orr r2, r9, r2, lsl #10
12932
- str r2, [r6, #3456]
13403
+ sub sp, fp, #40
13404
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
13405
+.L1799:
13406
+ ldr r3, [fp, #-52]
13407
+ ldr r0, .L1831+8
13408
+ ldrh r2, [r3]
13409
+ orr r2, r6, r2, lsl #10
13410
+ str r2, [r5, #3456]
1293313411 mov r2, #1
1293413412 mov r1, r2
1293513413 bl FlashReadPages
12936
- ldr r2, [r6, #3464]
13414
+ ldr r2, [r5, #3464]
1293713415 ldr r2, [r2, #12]
13416
+ str r2, [fp, #-60]
1293813417 cmp r2, #0
12939
- str r2, [sp, #24]
12940
- beq .L1942
12941
- ldr r1, [r6, #3452]
13418
+ beq .L1796
13419
+ ldr r1, [r5, #3452]
1294213420 cmn r1, #1
12943
- beq .L1942
12944
- ldr r1, .L1980+12
12945
- ldr r0, [r6, #3460]
13421
+ beq .L1814
13422
+ ldr r1, .L1831+12
13423
+ ldr r0, [r5, #3460]
1294613424 ldrh r1, [r1]
1294713425 bl js_hash
12948
- ldr r2, [sp, #24]
13426
+ ldr r2, [fp, #-60]
1294913427 cmp r2, r0
12950
- beq .L1942
13428
+ beq .L1798
13429
+ mov r3, r6
1295113430 str r0, [sp, #4]
12952
- mov r3, r9
1295313431 str r2, [sp]
1295413432 mov r2, r7
12955
- ldr r1, .L1980+16
12956
- ldr r0, .L1980+20
13433
+ ldr r1, .L1831+16
13434
+ ldr r0, .L1831+20
1295713435 bl sftl_printk
1295813436 mvn r3, #0
12959
- str r3, [r6, #3452]
12960
-.L1942:
12961
- ldr r3, [r6, #3452]
13437
+ str r3, [r5, #3452]
13438
+.L1814:
13439
+ add r10, r10, #1
13440
+ b .L1795
13441
+.L1796:
13442
+ ldr r3, [r5, #3452]
1296213443 cmn r3, #1
12963
- beq .L1943
12964
- ldrh r3, [r5, #8]
12965
- ldr r2, [sp, #16]
12966
- cmp r2, r3
12967
- bls .L1943
12968
- ldrh r1, [r5]
13444
+ beq .L1814
13445
+.L1798:
13446
+ ldrh r3, [r8, #8]
13447
+ ldr r2, [fp, #-48]
13448
+ cmp r3, r2
13449
+ bcs .L1814
1296913450 ldrh r2, [r4, #4]
13451
+ ldrh r1, [r8]
1297013452 cmp r1, r2
12971
- ldreq r2, [r6, #3456]
12972
- ldreq r1, [sp, #12]
12973
- streq r2, [r1, r3, lsl #2]
12974
-.L1943:
12975
- add r8, r8, #1
12976
- b .L1941
12977
-.L1940:
12978
- ldr r2, [r6, #3300]
12979
- ldr r0, .L1980+4
12980
- str r2, [r6, #3460]
12981
- add r2, r9, r3
12982
- str r2, [sp, #28]
12983
- ldrh r2, [r9, r3]
12984
- ldrh r3, [fp]
13453
+ ldreq r2, [r5, #3456]
13454
+ streq r2, [r9, r3, lsl #2]
13455
+ b .L1814
13456
+.L1794:
13457
+ ldr r2, [r5, #3300]
13458
+ str r2, [r5, #3460]
13459
+ ldr r2, [fp, #-56]
13460
+ ldr r0, .L1831+8
13461
+ ldrh r2, [r2, r3]
13462
+ ldr r3, .L1831+4
13463
+ ldrh r3, [r3]
1298513464 sub r3, r3, #1
1298613465 orr r3, r3, r2, lsl #10
1298713466 mov r2, #1
1298813467 mov r1, r2
12989
- str r3, [r6, #3456]
13468
+ str r3, [r5, #3456]
1299013469 bl FlashReadPages
12991
- ldr r3, [r6, #3452]
13470
+ ldr r3, [r5, #3452]
1299213471 cmn r3, #1
12993
- beq .L1960
12994
- ldrh r2, [r5]
13472
+ beq .L1817
13473
+ ldrh r2, [r8]
1299513474 ldrh r3, [r4, #4]
1299613475 cmp r2, r3
12997
- bne .L1960
12998
- ldrh r2, [r5, #8]
13476
+ bne .L1817
13477
+ ldrh r2, [r8, #8]
1299913478 movw r3, #64245
1300013479 cmp r2, r3
13001
- beq .L1948
13002
-.L1960:
13480
+ beq .L1818
13481
+.L1817:
1300313482 mov r10, #0
13004
-.L1949:
13005
- ldrh r2, [fp]
13006
- sxth r3, r10
13007
- cmp r3, r2
13008
- bge .L1956
13009
- ldr r2, [sp, #28]
13010
- ldr r0, .L1980+4
13011
- str r3, [sp, #36]
13483
+ b .L1809
13484
+.L1805:
13485
+ ldr r2, [r5, #3300]
13486
+ lsl lr, ip, #3
13487
+ ldr r7, [fp, #-48]
13488
+ add r1, r1, #1
13489
+ ldr r3, [r2, ip, lsl #3]
13490
+ uxth ip, r3
13491
+ cmp r7, ip
13492
+ addhi r2, r2, lr
13493
+ movhi r3, ip
13494
+ ldrhi r2, [r2, #4]
13495
+ strhi r2, [r9, r3, lsl #2]
13496
+.L1803:
13497
+ ldrh r3, [r0]
13498
+ sxth ip, r1
13499
+ sub r3, r3, #1
13500
+ cmp ip, r3
13501
+ blt .L1805
13502
+.L1811:
13503
+ add r6, r6, #1
13504
+ b .L1793
13505
+.L1818:
13506
+ ldr r0, .L1831+4
13507
+ mov r1, #0
13508
+ b .L1803
13509
+.L1810:
13510
+ ldr r2, [fp, #-52]
13511
+ ldr r0, .L1831+8
13512
+ str r3, [fp, #-72]
1301213513 ldrh r2, [r2]
1301313514 orr r2, r3, r2, lsl #10
13014
- str r2, [r6, #3456]
13515
+ str r2, [r5, #3456]
1301513516 mov r2, #1
1301613517 mov r1, r2
1301713518 bl FlashReadPages
13018
- ldr r2, [r6, #3464]
13519
+ ldr r2, [r5, #3464]
1301913520 ldr r2, [r2, #12]
13521
+ str r2, [fp, #-68]
1302013522 cmp r2, #0
13021
- str r2, [sp, #32]
13022
- beq .L1953
13023
- ldr r1, [r6, #3452]
13523
+ beq .L1806
13524
+ ldr r1, [r5, #3452]
1302413525 cmn r1, #1
13025
- beq .L1953
13026
- ldr r1, .L1980+12
13027
- ldr r0, [r6, #3460]
13526
+ beq .L1815
13527
+ ldr r1, .L1831+12
13528
+ ldr r0, [r5, #3460]
1302813529 ldrh r1, [r1]
1302913530 bl js_hash
13030
- ldr r2, [sp, #32]
13531
+ ldr r2, [fp, #-68]
1303113532 cmp r2, r0
13032
- beq .L1953
13533
+ beq .L1808
13534
+ ldr r3, [fp, #-72]
1303313535 str r0, [sp, #4]
1303413536 str r2, [sp]
1303513537 mov r2, r7
13036
- ldr r3, [sp, #36]
13037
- ldr r1, .L1980+16
13038
- ldr r0, .L1980+24
13538
+ ldr r1, .L1831+16
13539
+ ldr r0, .L1831+24
1303913540 bl sftl_printk
1304013541 mvn r3, #0
13041
- str r3, [r6, #3452]
13042
-.L1953:
13043
- ldr r3, [r6, #3452]
13044
- cmn r3, #1
13045
- beq .L1954
13046
- ldrh r3, [r5, #8]
13047
- ldr r2, [sp, #16]
13048
- cmp r2, r3
13049
- bls .L1954
13050
- ldrh r1, [r5]
13051
- ldrh r2, [r4, #4]
13052
- cmp r1, r2
13053
- ldreq r2, [r6, #3456]
13054
- ldreq r1, [sp, #12]
13055
- streq r2, [r1, r3, lsl #2]
13056
-.L1954:
13542
+ str r3, [r5, #3452]
13543
+.L1815:
1305713544 add r10, r10, #1
13058
- b .L1949
13059
-.L1948:
13060
- mov r1, #0
13061
- mov r0, #4
13062
-.L1950:
13063
- ldrh r2, [fp]
13064
- sxth r3, r1
13065
- sub r2, r2, #1
13545
+.L1809:
13546
+ ldr r2, .L1831+4
13547
+ sxth r3, r10
13548
+ ldrh r2, [r2]
1306613549 cmp r3, r2
13067
- blt .L1952
13068
-.L1956:
13069
- add r8, r8, #1
13070
- b .L1939
13071
-.L1952:
13072
- ldr ip, [r6, #3300]
13073
- add r1, r1, #1
13074
- ldr r7, [sp, #16]
13075
- ldr r2, [ip, r3, lsl #3]
13076
- uxth lr, r2
13077
- cmp r7, lr
13078
- addhi r3, r0, r3, lsl #3
13079
- movhi r2, lr
13080
- ldrhi r3, [ip, r3]
13081
- ldrhi ip, [sp, #12]
13082
- strhi r3, [ip, r2, lsl #2]
13083
- b .L1950
13084
-.L1981:
13550
+ blt .L1810
13551
+ b .L1811
13552
+.L1806:
13553
+ ldr r3, [r5, #3452]
13554
+ cmn r3, #1
13555
+ beq .L1815
13556
+.L1808:
13557
+ ldrh r3, [r8, #8]
13558
+ ldr r2, [fp, #-48]
13559
+ cmp r3, r2
13560
+ bcs .L1815
13561
+ ldrh r2, [r4, #4]
13562
+ ldrh r1, [r8]
13563
+ cmp r1, r2
13564
+ ldreq r2, [r5, #3456]
13565
+ streq r2, [r9, r3, lsl #2]
13566
+ b .L1815
13567
+.L1832:
1308513568 .align 2
13086
-.L1980:
13569
+.L1831:
1308713570 .word .LANCHOR0
13088
- .word .LANCHOR0+3452
1308913571 .word .LANCHOR0+304
13572
+ .word .LANCHOR0+3452
1309013573 .word .LANCHOR0+310
1309113574 .word .LANCHOR1+615
1309213575 .word .LC128
1309313576 .word .LC129
13094
- .fnend
1309513577 .size FtlMapTblRecovery, .-FtlMapTblRecovery
1309613578 .align 2
1309713579 .global FtlLoadVonderInfo
....@@ -13100,18 +13582,20 @@
1310013582 .fpu softvfp
1310113583 .type FtlLoadVonderInfo, %function
1310213584 FtlLoadVonderInfo:
13103
- .fnstart
1310413585 @ args = 0, pretend = 0, frame = 0
13105
- @ frame_needed = 0, uses_anonymous_args = 0
13106
- ldr r3, .L1984
13107
- push {r4, lr}
13108
- .save {r4, lr}
13109
- add r2, r3, #320
13586
+ @ frame_needed = 1, uses_anonymous_args = 0
13587
+ mov ip, sp
13588
+ push {fp, ip, lr, pc}
13589
+ sub fp, ip, #4
13590
+ push {lr}
13591
+ bl __gnu_mcount_nc
13592
+ ldr r3, .L1834
1311013593 add r0, r3, #3600
13111
- ldrh r2, [r2]
13594
+ add r2, r3, #320
1311213595 add r0, r0, #8
13596
+ ldrh r2, [r2]
1311313597 strh r2, [r0, #10] @ movhi
13114
- ldr r2, .L1984+4
13598
+ ldr r2, .L1834+4
1311513599 strh r2, [r0, #4] @ movhi
1311613600 add r2, r3, #344
1311713601 ldrh r2, [r2]
....@@ -13129,13 +13613,12 @@
1312913613 str r2, [r3, #3632]
1313013614 bl FtlMapTblRecovery
1313113615 mov r0, #0
13132
- pop {r4, pc}
13133
-.L1985:
13616
+ ldmfd sp, {fp, sp, pc}
13617
+.L1835:
1313413618 .align 2
13135
-.L1984:
13619
+.L1834:
1313613620 .word .LANCHOR0
1313713621 .word -3962
13138
- .fnend
1313913622 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo
1314013623 .align 2
1314113624 .global FtlLoadMapInfo
....@@ -13144,21 +13627,22 @@
1314413627 .fpu softvfp
1314513628 .type FtlLoadMapInfo, %function
1314613629 FtlLoadMapInfo:
13147
- .fnstart
1314813630 @ args = 0, pretend = 0, frame = 0
13149
- @ frame_needed = 0, uses_anonymous_args = 0
13150
- push {r4, lr}
13151
- .save {r4, lr}
13631
+ @ frame_needed = 1, uses_anonymous_args = 0
13632
+ mov ip, sp
13633
+ push {fp, ip, lr, pc}
13634
+ sub fp, ip, #4
13635
+ push {lr}
13636
+ bl __gnu_mcount_nc
1315213637 bl FtlL2PDataInit
13153
- ldr r0, .L1988
13638
+ ldr r0, .L1837
1315413639 bl FtlMapTblRecovery
1315513640 mov r0, #0
13156
- pop {r4, pc}
13157
-.L1989:
13641
+ ldmfd sp, {fp, sp, pc}
13642
+.L1838:
1315813643 .align 2
13159
-.L1988:
13644
+.L1837:
1316013645 .word .LANCHOR0+3392
13161
- .fnend
1316213646 .size FtlLoadMapInfo, .-FtlLoadMapInfo
1316313647 .align 2
1316413648 .global FtlSysBlkInit
....@@ -13167,13 +13651,15 @@
1316713651 .fpu softvfp
1316813652 .type FtlSysBlkInit, %function
1316913653 FtlSysBlkInit:
13170
- .fnstart
1317113654 @ args = 0, pretend = 0, frame = 0
13172
- @ frame_needed = 0, uses_anonymous_args = 0
13173
- push {r4, r5, r6, r7, r8, lr}
13174
- .save {r4, r5, r6, r7, r8, lr}
13655
+ @ frame_needed = 1, uses_anonymous_args = 0
13656
+ mov ip, sp
13657
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
13658
+ sub fp, ip, #4
13659
+ push {lr}
13660
+ bl __gnu_mcount_nc
13661
+ ldr r4, .L1855
1317513662 mov r3, #0
13176
- ldr r4, .L2007
1317713663 add r7, r4, #3472
1317813664 ldrh r0, [r4, #236]
1317913665 strh r3, [r7] @ movhi
....@@ -13183,16 +13669,16 @@
1318313669 ldrh r2, [r3]
1318413670 movw r3, #65535
1318513671 cmp r2, r3
13186
- bne .L1991
13187
-.L1993:
13188
- mvn r6, #0
13189
-.L1990:
13190
- mov r0, r6
13191
- pop {r4, r5, r6, r7, r8, pc}
13192
-.L1991:
13672
+ bne .L1840
13673
+.L1842:
13674
+ mvn r5, #0
13675
+.L1839:
13676
+ mov r0, r5
13677
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
13678
+.L1840:
1319313679 bl FtlLoadSysInfo
13194
- subs r6, r0, #0
13195
- bne .L1993
13680
+ subs r5, r0, #0
13681
+ bne .L1842
1319613682 bl FtlLoadMapInfo
1319713683 bl FtlLoadVonderInfo
1319813684 bl Ftl_load_ext_data
....@@ -13202,29 +13688,30 @@
1320213688 bl FtlPowerLostRecovery
1320313689 mov r0, #1
1320413690 bl FtlUpdateVaildLpn
13205
- ldr r2, [r4, #2540]
1320613691 movw r3, #338
13207
- ldrh r1, [r4, r3]
13692
+ ldr r2, [r4, #2540]
1320813693 mov r0, #12
13209
- mov r3, r6
13210
-.L1994:
13694
+ ldrh r1, [r4, r3]
13695
+ mov r3, r5
13696
+ add r2, r2, #4
13697
+.L1843:
1321113698 cmp r3, r1
13212
- bge .L1999
13213
- mla ip, r0, r3, r2
13214
- ldr ip, [ip, #4]
13699
+ bge .L1848
13700
+ mul ip, r0, r3
13701
+ ldr ip, [r2, ip]
1321513702 cmp ip, #0
13216
- bge .L1995
13217
-.L1999:
13218
- ldr r5, .L2007+4
13703
+ bge .L1844
13704
+.L1848:
13705
+ ldr r6, .L1855+4
1321913706 cmp r3, r1
13220
- ldrh r2, [r5, #28]
13707
+ ldrh r2, [r6, #28]
1322113708 add r2, r2, #1
13222
- strh r2, [r5, #28] @ movhi
13223
- bge .L2005
13224
-.L1996:
13225
- ldr r0, .L2007+8
13709
+ strh r2, [r6, #28] @ movhi
13710
+ bge .L1854
13711
+.L1845:
13712
+ ldr r0, .L1855+8
1322613713 bl FtlSuperblockPowerLostFix
13227
- ldr r0, .L2007+12
13714
+ ldr r0, .L1855+12
1322813715 bl FtlSuperblockPowerLostFix
1322913716 ldrh r3, [r4, #24]
1323013717 ldr r1, [r4, #72]
....@@ -13232,68 +13719,65 @@
1323213719 lsl r3, r3, #1
1323313720 ldrh r2, [r1, r3]
1323413721 sub r2, r2, r0
13235
- movw r0, #302
1323613722 strh r2, [r1, r3] @ movhi
13723
+ movw r0, #302
1323713724 ldrh r2, [r4, #76]
13238
- ldrh r3, [r4, r0]
1323913725 ldr ip, [r4, #72]
13240
- ldrh lr, [r4, #80]
13726
+ ldrh r3, [r4, r0]
1324113727 lsl r2, r2, #1
1324213728 strh r3, [r4, #26] @ movhi
1324313729 mov r3, #0
1324413730 strb r3, [r4, #30]
1324513731 strh r3, [r4, #28] @ movhi
13732
+ ldrh lr, [r4, #80]
1324613733 ldrh r1, [ip, r2]
1324713734 sub r1, r1, lr
1324813735 strh r1, [ip, r2] @ movhi
1324913736 strb r3, [r4, #82]
1325013737 strh r3, [r4, #80] @ movhi
13251
- ldrh r3, [r5, #30]
13738
+ ldrh r3, [r6, #30]
1325213739 ldrh r2, [r4, r0]
1325313740 add r3, r3, #1
1325413741 strh r2, [r4, #78] @ movhi
13255
- strh r3, [r5, #30] @ movhi
13742
+ strh r3, [r6, #30] @ movhi
1325613743 bl l2p_flush
1325713744 bl FtlVpcTblFlush
1325813745 bl FtlVpcTblFlush
13259
- b .L2000
13260
-.L1995:
13746
+ b .L1849
13747
+.L1844:
1326113748 add r3, r3, #1
13262
- b .L1994
13263
-.L2005:
13749
+ b .L1843
13750
+.L1854:
1326413751 ldrh r3, [r7]
1326513752 cmp r3, #0
13266
- bne .L1996
13267
-.L2000:
13753
+ bne .L1845
13754
+.L1849:
1326813755 ldrh r0, [r4, #24]
1326913756 movw r3, #65535
1327013757 cmp r0, r3
13271
- beq .L2001
13272
- ldrh r3, [r4, #28]
13273
- cmp r3, #0
13274
- bne .L2001
13758
+ beq .L1850
13759
+ ldrh r2, [r4, #28]
1327513760 ldrh r3, [r4, #80]
13276
- cmp r3, #0
13277
- bne .L2001
13761
+ orrs r3, r2, r3
13762
+ bne .L1850
1327813763 bl FtlGcRefreshBlock
1327913764 ldrh r0, [r4, #76]
1328013765 bl FtlGcRefreshBlock
1328113766 bl FtlVpcTblFlush
13282
- ldr r0, .L2007+8
13767
+ ldr r0, .L1855+8
1328313768 bl allocate_new_data_superblock
13284
- ldr r0, .L2007+12
13769
+ ldr r0, .L1855+12
1328513770 bl allocate_new_data_superblock
13286
-.L2001:
13771
+.L1850:
1328713772 bl FtlVpcCheckAndModify
13288
- b .L1990
13289
-.L2008:
13773
+ b .L1839
13774
+.L1856:
1329013775 .align 2
13291
-.L2007:
13776
+.L1855:
1329213777 .word .LANCHOR0
1329313778 .word .LANCHOR0+2468
1329413779 .word .LANCHOR0+24
1329513780 .word .LANCHOR0+76
13296
- .fnend
1329713781 .size FtlSysBlkInit, .-FtlSysBlkInit
1329813782 .align 2
1329913783 .global ftl_low_format
....@@ -13302,13 +13786,15 @@
1330213786 .fpu softvfp
1330313787 .type ftl_low_format, %function
1330413788 ftl_low_format:
13305
- .fnstart
1330613789 @ args = 0, pretend = 0, frame = 0
13307
- @ frame_needed = 0, uses_anonymous_args = 0
13308
- push {r4, r5, r6, r7, r8, r9, r10, lr}
13309
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
13790
+ @ frame_needed = 1, uses_anonymous_args = 0
13791
+ mov ip, sp
13792
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
13793
+ sub fp, ip, #4
13794
+ push {lr}
13795
+ bl __gnu_mcount_nc
13796
+ ldr r4, .L1881
1331013797 mov r3, #0
13311
- ldr r4, .L2034
1331213798 ldrh r0, [r4, #236]
1331313799 str r3, [r4, #2588]
1331413800 str r3, [r4, #2592]
....@@ -13316,143 +13802,140 @@
1331613802 bl FtlFreeSysBlkQueueInit
1331713803 bl FtlLoadBbt
1331813804 cmp r0, #0
13319
- beq .L2010
13805
+ beq .L1858
1332013806 bl FtlMakeBbt
13321
-.L2010:
13322
- ldr r0, .L2034+4
13807
+.L1858:
13808
+ ldr r0, .L1881+4
1332313809 mov r2, #0
13324
- ldr ip, .L2034+8
13325
-.L2011:
13810
+ ldr ip, .L1881+8
13811
+.L1859:
1332613812 ldrh r1, [r0]
1332713813 uxth r3, r2
1332813814 add r2, r2, #1
1332913815 cmp r3, r1, lsl #7
13330
- blt .L2012
13816
+ blt .L1860
1333113817 ldrh r6, [r4, #240]
1333213818 mov r5, #0
13333
-.L2013:
13819
+.L1861:
1333413820 ldrh r3, [r4, #242]
1333513821 cmp r3, r6
13336
- bhi .L2014
13822
+ bhi .L1862
1333713823 ldrh r1, [r4, #232]
1333813824 sub r3, r5, #3
1333913825 cmp r3, r1, lsl #1
13340
- bge .L2015
13341
-.L2019:
13826
+ bge .L1863
13827
+.L1867:
1334213828 mov r5, #0
1334313829 mov r6, r5
13344
-.L2016:
13830
+.L1864:
1334513831 ldrh r3, [r4, #240]
1334613832 uxth r0, r5
13347
- add r5, r5, #1
1334813833 cmp r3, r0
13349
- bhi .L2020
13350
- ldrh r3, [r4, #242]
13351
- movw r9, #2620
13352
- ldrh r5, [r4, #232]
13834
+ bhi .L1868
13835
+ ldrh r9, [r4, #232]
13836
+ movw r8, #2620
1335313837 ldr r10, [r4, #244]
13354
- str r3, [r4, #3284]
13355
- mov r1, r5
13838
+ ldrh r3, [r4, #242]
13839
+ mov r1, r9
1335613840 mov r0, r10
13841
+ str r3, [r4, #3284]
1335713842 bl __aeabi_uidiv
1335813843 ubfx r7, r0, #5, #16
13359
- mov r8, r0
1336013844 add r3, r7, #36
13361
- str r0, [r4, #2552]
13362
- strh r3, [r4, r9] @ movhi
13845
+ strh r3, [r4, r8] @ movhi
1336313846 mov r3, #24
13364
- mul r3, r3, r5
13847
+ mov r5, r0
13848
+ str r0, [r4, #2552]
13849
+ mul r3, r3, r9
1336513850 cmp r6, r3
13366
- ble .L2021
13367
- mov r1, r5
13851
+ ble .L1869
13852
+ mov r1, r9
1336813853 sub r0, r10, r6
1336913854 bl __aeabi_uidiv
13855
+ lsr r3, r0, #5
13856
+ add r3, r3, #24
1337013857 str r0, [r4, #2552]
13371
- lsr r0, r0, #5
13372
- add r0, r0, #24
13373
- strh r0, [r4, r9] @ movhi
13374
-.L2021:
13858
+ strh r3, [r4, r8] @ movhi
13859
+.L1869:
1337513860 movw r3, #294
1337613861 ldrh r3, [r4, r3]
1337713862 cmp r3, #0
13378
- beq .L2023
13863
+ beq .L1871
1337913864 movw r2, #2620
1338013865 ldrh r1, [r4, r2]
1338113866 add r1, r1, r3, lsr #1
1338213867 strh r1, [r4, r2] @ movhi
13383
- mul r1, r5, r3
13868
+ mul r1, r9, r3
1338413869 cmp r6, r1
13870
+ strlt r5, [r4, #2552]
1338513871 addlt r3, r3, #32
13386
- strlt r8, [r4, #2552]
1338713872 addlt r3, r7, r3
1338813873 strhlt r3, [r4, r2] @ movhi
13389
-.L2023:
13874
+.L1871:
1339013875 movw r3, #2620
13391
- ldr r6, .L2034+12
13392
- ldrh r2, [r4, r3]
13393
- ldr r3, [r4, #2552]
13394
- sub r3, r3, r2
13395
- mul r5, r5, r3
13876
+ ldr r1, [r4, #2552]
13877
+ ldr r6, .L1881+12
13878
+ mvn r5, #0
13879
+ ldrh r3, [r4, r3]
13880
+ sub r1, r1, r3
1339613881 movw r3, #302
1339713882 ldrh r3, [r4, r3]
13398
- str r5, [r4, #3672]
13399
- mul r5, r5, r3
13883
+ mul r1, r9, r1
13884
+ str r1, [r4, #3672]
13885
+ mul r1, r1, r3
1340013886 movw r3, #258
13887
+ str r1, [r4, #2552]
1340113888 ldrh r3, [r4, r3]
13402
- str r5, [r4, #2552]
13403
- mul r5, r5, r3
13404
- str r5, [r4, #340]
13889
+ mul r1, r1, r3
13890
+ str r1, [r4, #340]
1340513891 bl FtlBbmTblFlush
1340613892 ldrh r2, [r4, #242]
1340713893 mov r1, #0
1340813894 ldr r0, [r4, #72]
1340913895 lsl r2, r2, #1
1341013896 bl ftl_memset
13411
- mvn r2, #0
1341213897 mov r3, #0
13413
- mov r5, r2
13898
+ movw r2, #65535
1341413899 str r3, [r4, #2548]
13415
- strh r3, [r4, #174] @ movhi
1341613900 strb r3, [r4, #178]
1341713901 strb r3, [r4, #180]
13418
- strh r3, [r4, #26] @ movhi
1341913902 strb r3, [r4, #30]
13420
- strh r3, [r4, #24] @ movhi
13903
+ str r3, [r4, #24]
1342113904 mov r3, #1
13422
- strh r2, [r4, #172] @ movhi
13905
+ str r2, [r4, #172]
1342313906 strb r3, [r4, #32]
13424
-.L2025:
13907
+.L1873:
1342513908 mov r0, r6
1342613909 bl make_superblock
1342713910 ldrb r3, [r4, #31] @ zero_extendqisi2
1342813911 cmp r3, #0
1342913912 ldrh r3, [r4, #24]
13430
- bne .L2026
13431
- ldr r2, [r4, #72]
13913
+ bne .L1874
1343213914 lsl r3, r3, #1
13915
+ ldr r2, [r4, #72]
1343313916 strh r5, [r2, r3] @ movhi
1343413917 ldrh r3, [r4, #24]
1343513918 add r3, r3, #1
1343613919 strh r3, [r4, #24] @ movhi
13437
- b .L2025
13438
-.L2012:
13920
+ b .L1873
13921
+.L1860:
1343913922 ldr lr, [r4, #3312]
1344013923 mvn r1, r3
1344113924 orr r1, r3, r1, lsl #16
1344213925 str r1, [lr, r3, lsl #2]
1344313926 ldr r1, [r4, #3316]
1344413927 str ip, [r1, r3, lsl #2]
13445
- b .L2011
13446
-.L2014:
13928
+ b .L1859
13929
+.L1862:
1344713930 mov r0, r6
1344813931 mov r1, #1
13449
- bl FtlLowFormatEraseBlock
1345013932 add r6, r6, #1
13451
- add r5, r5, r0
13452
- uxth r5, r5
13933
+ bl FtlLowFormatEraseBlock
13934
+ add r5, r0, r5
1345313935 uxth r6, r6
13454
- b .L2013
13455
-.L2015:
13936
+ uxth r5, r5
13937
+ b .L1861
13938
+.L1863:
1345613939 mov r0, r5
1345713940 bl __aeabi_uidiv
1345813941 ldr r3, [r4, #332]
....@@ -13462,32 +13945,33 @@
1346213945 ldrh r0, [r4, #236]
1346313946 bl FtlFreeSysBlkQueueInit
1346413947 ldrh r5, [r4, #240]
13465
-.L2017:
13948
+.L1865:
1346613949 ldrh r3, [r4, #242]
1346713950 cmp r3, r5
13468
- bls .L2019
13951
+ bls .L1867
1346913952 mov r0, r5
13953
+ add r5, r5, #1
1347013954 mov r1, #1
13955
+ uxth r5, r5
13956
+ bl FtlLowFormatEraseBlock
13957
+ b .L1865
13958
+.L1868:
13959
+ mov r1, #0
1347113960 add r5, r5, #1
1347213961 bl FtlLowFormatEraseBlock
13473
- uxth r5, r5
13474
- b .L2017
13475
-.L2020:
13476
- mov r1, #0
13477
- bl FtlLowFormatEraseBlock
13478
- add r6, r6, r0
13962
+ add r6, r0, r6
1347913963 uxth r6, r6
13480
- b .L2016
13481
-.L2026:
13964
+ b .L1864
13965
+.L1874:
1348213966 ldr r2, [r4, #2588]
1348313967 lsl r3, r3, #1
13484
- ldrh r1, [r4, #28]
13485
- mvn r5, #0
13486
- ldr r6, .L2034+16
1348713968 str r2, [r4, #36]
13969
+ mvn r5, #0
1348813970 add r2, r2, #1
1348913971 str r2, [r4, #2588]
1349013972 ldr r2, [r4, #72]
13973
+ ldrh r1, [r4, #28]
13974
+ ldr r6, .L1881+16
1349113975 strh r1, [r2, r3] @ movhi
1349213976 mov r3, #0
1349313977 strh r3, [r4, #78] @ movhi
....@@ -13497,39 +13981,39 @@
1349713981 strh r3, [r4, #76] @ movhi
1349813982 mov r3, #1
1349913983 strb r3, [r4, #84]
13500
-.L2027:
13984
+.L1875:
1350113985 mov r0, r6
1350213986 bl make_superblock
1350313987 ldrb r3, [r4, #83] @ zero_extendqisi2
1350413988 cmp r3, #0
1350513989 ldrh r3, [r4, #76]
13506
- bne .L2028
13507
- ldr r2, [r4, #72]
13990
+ bne .L1876
1350813991 lsl r3, r3, #1
13992
+ ldr r2, [r4, #72]
1350913993 strh r5, [r2, r3] @ movhi
1351013994 ldrh r3, [r4, #76]
1351113995 add r3, r3, #1
1351213996 strh r3, [r4, #76] @ movhi
13513
- b .L2027
13514
-.L2028:
13997
+ b .L1875
13998
+.L1876:
1351513999 ldr r2, [r4, #2588]
1351614000 lsl r3, r3, #1
13517
- ldrh r1, [r4, #80]
13518
- mvn r5, #0
1351914001 str r2, [r4, #88]
14002
+ mvn r5, #0
1352014003 add r2, r2, #1
1352114004 str r2, [r4, #2588]
1352214005 ldr r2, [r4, #72]
14006
+ ldrh r1, [r4, #80]
1352314007 strh r1, [r2, r3] @ movhi
1352414008 strh r5, [r4, #124] @ movhi
1352514009 bl FtlFreeSysBlkQueueOut
13526
- ldr r3, .L2034+20
14010
+ ldr r3, .L1881+20
1352714011 mov r2, #0
1352814012 strh r2, [r3, #2] @ movhi
1352914013 ldr r2, [r4, #3672]
14014
+ strh r2, [r3, #6] @ movhi
1353014015 strh r5, [r3, #4] @ movhi
1353114016 strh r0, [r3] @ movhi
13532
- strh r2, [r3, #6] @ movhi
1353314017 ldr r3, [r4, #2588]
1353414018 str r3, [r4, #2632]
1353514019 add r3, r3, #1
....@@ -13538,13 +14022,13 @@
1353814022 bl FtlSysBlkInit
1353914023 cmp r0, #0
1354014024 mov r0, #0
13541
- ldreq r3, .L2034+24
1354214025 moveq r2, #1
14026
+ ldreq r3, .L1881+24
1354314027 streq r2, [r3]
13544
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
13545
-.L2035:
14028
+ ldmfd sp, {r3, r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
14029
+.L1882:
1354614030 .align 2
13547
-.L2034:
14031
+.L1881:
1354814032 .word .LANCHOR0
1354914033 .word .LANCHOR0+258
1355014034 .word 168778952
....@@ -13552,7 +14036,6 @@
1355214036 .word .LANCHOR0+76
1355314037 .word .LANCHOR0+2624
1355414038 .word .LANCHOR2
13555
- .fnend
1355614039 .size ftl_low_format, .-ftl_low_format
1355714040 .align 2
1355814041 .global sftl_init
....@@ -13561,16 +14044,18 @@
1356114044 .fpu softvfp
1356214045 .type sftl_init, %function
1356314046 sftl_init:
13564
- .fnstart
1356514047 @ args = 0, pretend = 0, frame = 0
13566
- @ frame_needed = 0, uses_anonymous_args = 0
13567
- push {r4, r5, r6, lr}
13568
- .save {r4, r5, r6, lr}
14048
+ @ frame_needed = 1, uses_anonymous_args = 0
14049
+ mov ip, sp
14050
+ push {r4, r5, fp, ip, lr, pc}
14051
+ sub fp, ip, #4
14052
+ push {lr}
14053
+ bl __gnu_mcount_nc
14054
+ ldr r5, .L1887
1356914055 mvn r3, #0
13570
- ldr r4, .L2043
13571
- ldr r5, .L2043+4
13572
- ldr r1, .L2043+8
13573
- ldr r0, .L2043+12
14056
+ ldr r4, .L1887+4
14057
+ ldr r1, .L1887+8
14058
+ ldr r0, .L1887+12
1357414059 str r3, [r5]
1357514060 bl sftl_printk
1357614061 mov r0, r4
....@@ -13581,34 +14066,41 @@
1358114066 bl FtlFreeSysBlkQueueInit
1358214067 bl FtlLoadBbt
1358314068 cmp r0, #0
13584
- bne .L2040
14069
+ bne .L1884
1358514070 bl FtlSysBlkInit
1358614071 cmp r0, #0
13587
- bne .L2040
14072
+ bne .L1884
1358814073 mov r3, #1
1358914074 str r3, [r5]
1359014075 ldrh r3, [r4, #224]
1359114076 cmp r3, #15
13592
- bhi .L2040
14077
+ bhi .L1884
1359314078 movw r4, #8129
13594
-.L2039:
14079
+.L1885:
1359514080 mov r1, #1
1359614081 mov r0, #0
1359714082 bl rk_ftl_garbage_collect
1359814083 subs r4, r4, #1
13599
- bne .L2039
13600
-.L2040:
14084
+ bne .L1885
14085
+.L1884:
1360114086 mov r0, #0
13602
- pop {r4, r5, r6, pc}
13603
-.L2044:
14087
+ ldmfd sp, {r4, r5, fp, sp, pc}
14088
+.L1888:
1360414089 .align 2
13605
-.L2043:
13606
- .word .LANCHOR0
14090
+.L1887:
1360714091 .word .LANCHOR2
14092
+ .word .LANCHOR0
1360814093 .word .LC0
1360914094 .word .LC77
13610
- .fnend
1361114095 .size sftl_init, .-sftl_init
14096
+ .section .rodata.str1.1
14097
+.LC130:
14098
+ .ascii "write_idblock %x %x\012\000"
14099
+.LC131:
14100
+ .ascii "write_idblock fail! %x %x %x %x\012\000"
14101
+.LC132:
14102
+ .ascii "%s idb buffer alloc fail\012\000"
14103
+ .text
1361214104 .align 2
1361314105 .global FtlWriteToIDB
1361414106 .syntax unified
....@@ -13616,382 +14108,388 @@
1361614108 .fpu softvfp
1361714109 .type FtlWriteToIDB, %function
1361814110 FtlWriteToIDB:
13619
- .fnstart
1362014111 @ args = 0, pretend = 0, frame = 104
13621
- @ frame_needed = 0, uses_anonymous_args = 0
13622
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13623
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
13624
- add r8, r1, r0
13625
- ldr r3, .L2106
13626
- sub r10, r8, #1
13627
- cmp r10, #63
13628
- .pad #116
14112
+ @ frame_needed = 1, uses_anonymous_args = 0
14113
+ mov ip, sp
14114
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
14115
+ sub fp, ip, #4
1362914116 sub sp, sp, #116
13630
- movhi r9, #0
13631
- movls r9, #1
13632
- ldr r3, [r3]
14117
+ push {lr}
14118
+ bl __gnu_mcount_nc
14119
+ mov r3, sp
14120
+ add r8, r1, r0
14121
+ bic r3, r3, #8128
14122
+ sub r9, r8, #1
14123
+ bic r3, r3, #63
14124
+ cmp r9, #63
14125
+ ldr r5, .L1948
14126
+ mov r4, r0
14127
+ movhi r10, #0
14128
+ movls r10, #1
14129
+ ldr r3, [r3, #24]
1363314130 cmp r0, #576
13634
- orrcs r9, r9, #1
13635
- cmp r9, #0
13636
- ldr r5, .L2106+4
13637
- str r3, [sp, #108]
13638
- beq .L2046
14131
+ orrcs r10, r10, #1
14132
+ mov r6, r1
14133
+ mov r7, r2
14134
+ cmp r10, #0
14135
+ str r3, [fp, #-48]
14136
+ beq .L1890
1363914137 ldr r3, [r5, #3676]
1364014138 cmp r3, #0
13641
- bne .L2047
13642
-.L2105:
14139
+ bne .L1891
14140
+.L1947:
1364314141 mov r4, #0
13644
- b .L2045
13645
-.L2047:
13646
- ldr r7, [r5, #3680]
13647
- ldr r3, .L2106+8
13648
- ldr r2, [r7]
14142
+ b .L1889
14143
+.L1891:
14144
+ ldr r8, [r5, #3680]
14145
+ ldr r3, .L1948+4
14146
+ ldr r2, [r8]
1364914147 cmp r2, r3
13650
- bne .L2049
14148
+ bne .L1893
1365114149 ldrh r1, [r5, #10]
13652
- add r0, r7, #260096
14150
+ add r0, r8, #260096
1365314151 mov r2, #0
1365414152 movw r3, #65023
13655
-.L2053:
14153
+.L1897:
1365614154 ldr ip, [r0, #-4]!
1365714155 cmp ip, #0
13658
- bne .L2050
13659
- ldr ip, [r7, r2, lsl #2]
14156
+ bne .L1894
14157
+ ldr ip, [r8, r2, lsl #2]
1366014158 add r2, r2, #1
1366114159 cmp r2, #4096
1366214160 sub r3, r3, #1
14161
+ str ip, [r0, #2048]
1366314162 movhi r2, #0
1366414163 cmp r3, #4096
13665
- str ip, [r0, #2048]
13666
- bne .L2053
13667
- mov fp, #512
13668
- b .L2052
13669
-.L2050:
14164
+ bne .L1897
14165
+ mov r3, #512
14166
+ b .L1946
14167
+.L1894:
1367014168 add r3, r3, #127
13671
- lsr fp, r3, #7
13672
-.L2052:
14169
+ lsr r3, r3, #7
14170
+.L1946:
14171
+ str r3, [fp, #-120]
1367314172 lsl r1, r1, #2
13674
- add r0, fp, #4
13675
- ldr r4, .L2106+4
14173
+ ldr r3, [fp, #-120]
1367614174 uxth r1, r1
14175
+ add r0, r3, #4
1367714176 bl __aeabi_uidiv
1367814177 add r3, r0, #1
13679
- mov r1, fp
1368014178 mov r2, r3
13681
- ldr r0, .L2106+12
13682
- str r3, [sp, #16]
14179
+ ldr r1, [fp, #-120]
14180
+ ldr r0, .L1948+8
14181
+ str r3, [fp, #-124]
1368314182 bl sftl_printk
13684
- lsl r3, fp, #7
13685
- str r3, [sp, #28]
14183
+ ldr r3, [fp, #-120]
14184
+ lsl r3, r3, #7
14185
+ str r3, [fp, #-140]
1368614186 mov r3, #0
13687
- str r3, [sp, #20]
13688
- str r3, [sp, #12]
13689
-.L2054:
13690
- ldr r3, [sp, #16]
13691
- ldr r2, [sp, #12]
13692
- add r3, r3, r2
14187
+ mov r10, r3
14188
+ str r3, [fp, #-128]
14189
+.L1898:
14190
+ ldr r3, [fp, #-124]
14191
+ add r3, r3, r10
14192
+ str r3, [fp, #-132]
1369314193 cmp r3, #8
13694
- str r3, [sp, #24]
13695
- bls .L2076
13696
- ldr r3, [sp, #20]
14194
+ bls .L1920
14195
+ ldr r3, [fp, #-128]
1369714196 cmp r3, #0
13698
- bne .L2077
13699
-.L2049:
13700
- mvn fp, #0
13701
-.L2077:
13702
- ldr r5, .L2106+4
13703
- mov r3, #0
13704
- mov r4, fp
13705
- ldr r0, [r5, #3680]
13706
- str r3, [r5, #3676]
13707
- bl kfree
13708
- ldr r0, [r5, #3684]
13709
- bl kfree
13710
-.L2045:
13711
- ldr r3, .L2106
13712
- mov r0, r4
13713
- ldr r2, [sp, #108]
13714
- ldr r3, [r3]
13715
- cmp r2, r3
13716
- beq .L2084
13717
- bl __stack_chk_fail
13718
-.L2076:
14197
+ bne .L1919
14198
+.L1893:
14199
+ mvn r3, #0
14200
+ str r3, [fp, #-120]
14201
+ b .L1919
14202
+.L1920:
14203
+ ldr r4, .L1948
1371914204 mov r2, #512
1372014205 mov r1, #0
1372114206 ldr r0, [r4, #3684]
1372214207 bl memset
13723
- ldrh r6, [r4, #10]
13724
- ldr r3, [sp, #12]
13725
- mul r9, r6, r3
14208
+ ldrh r5, [r4, #10]
14209
+ mul r3, r5, r10
14210
+ str r3, [fp, #-136]
1372614211 ldr r3, [r4, #3260]
1372714212 cmp r3, #0
13728
- moveq r8, #6
13729
- beq .L2055
14213
+ moveq r6, #6
14214
+ beq .L1899
1373014215 ldr r3, [r4, #3264]
1373114216 cmp r3, #0
13732
- moveq r8, #6
13733
- movne r8, #9
13734
-.L2055:
13735
- mov r10, r9
13736
- mov r5, #0
13737
-.L2056:
13738
- ldr r3, [r4, #3248]
13739
- mov r1, r10
14217
+ moveq r6, #6
14218
+ movne r6, #9
14219
+.L1899:
14220
+ mul r9, r5, r10
14221
+ ldr r7, .L1948
14222
+ mov r4, #0
14223
+.L1900:
14224
+ ldr r3, [r7, #3248]
14225
+ mov r1, r9
1374014226 mov r0, #0
13741
- add r5, r5, #1
14227
+ add r4, r4, #1
1374214228 blx r3
13743
- ldr r3, [sp, #16]
13744
- add r10, r10, r6
13745
- cmp r3, r5
13746
- bhi .L2056
13747
- cmp r8, #9
13748
- movne r5, #0
13749
- bne .L2057
13750
- ldr r5, [r4, #3684]
14229
+ ldr r3, [fp, #-124]
14230
+ add r9, r9, r5
14231
+ cmp r3, r4
14232
+ bhi .L1900
14233
+ cmp r6, #9
14234
+ movne r4, #0
14235
+ bne .L1901
14236
+ ldr r4, [r7, #3684]
1375114237 mov r2, #1024
1375214238 mov r1, #0
13753
- mov r0, r5
14239
+ mov r0, r4
1375414240 bl ftl_memset
13755
- ldr r3, .L2106+16
14241
+ ldr r3, .L1948+12
14242
+ str r3, [r4]
1375614243 mov r1, #12
13757
- mov r2, #4
13758
- str r1, [r5, #4]
13759
- strb r2, [r5, #17]
13760
- add r0, r5, r1
13761
- str r3, [r5]
14244
+ str r1, [r4, #4]
1376214245 mov r3, #0
13763
- ldrh r2, [r4, #10]
13764
- str r3, [r5, #12]
13765
- strb r3, [r5, #16]
13766
- strh r2, [r5, #18] @ movhi
13767
- mov r2, #16
13768
- strb r3, [r5, #20]
13769
- strb r2, [r5, #21]
13770
- strh r3, [r5, #22] @ movhi
14246
+ str r3, [r4, #12]
14247
+ mov r3, #1024
14248
+ strh r3, [r4, #16] @ movhi
14249
+ add r0, r4, r1
14250
+ ldrh r3, [r7, #10]
14251
+ strh r3, [r4, #18] @ movhi
14252
+ mov r3, #4096
14253
+ str r3, [r4, #20]
1377114254 bl js_hash
13772
- str r0, [r5, #8]
13773
-.L2057:
13774
- ldr r3, [sp, #16]
13775
- mov r10, r7
13776
- mul r3, r6, r3
13777
- mov r6, #0
13778
- str r3, [sp, #32]
13779
-.L2058:
13780
- ldr r3, [sp, #32]
13781
- cmp r6, r3
13782
- beq .L2065
13783
- cmp r8, #9
13784
- lslne r3, r6, #2
13785
- addeq r3, r6, #1
13786
- cmp r6, #0
13787
- cmpeq r8, #9
13788
- str r3, [sp, #44]
14255
+ str r0, [r4, #8]
14256
+.L1901:
14257
+ ldr r3, [fp, #-124]
14258
+ mov r9, r8
14259
+ ldr r7, .L1948
14260
+ mul r3, r5, r3
14261
+ mov r5, #0
14262
+ str r3, [fp, #-144]
14263
+.L1902:
14264
+ ldr r3, [fp, #-144]
14265
+ cmp r5, r3
14266
+ beq .L1909
14267
+ cmp r6, #9
14268
+ addeq r3, r5, #1
14269
+ lslne r3, r5, #2
14270
+ cmp r5, #0
14271
+ cmpeq r6, #9
14272
+ str r3, [fp, #-112]
1378914273 movw r3, #61424
13790
- str r3, [sp, #48]
14274
+ str r3, [fp, #-108]
1379114275 moveq r0, #1
1379214276 movne r0, #0
13793
- bne .L2061
13794
- ldr r3, [r4, #3260]
14277
+ bne .L1905
14278
+ ldr r3, [r7, #3260]
1379514279 mov r0, #70
1379614280 blx r3
13797
- mov r2, r5
13798
- add r3, sp, #44
13799
- mov r1, r9
13800
- ldr ip, [r4, #3252]
14281
+ mov r2, r4
14282
+ ldr r1, [fp, #-136]
14283
+ sub r3, fp, #112
14284
+ ldr ip, [r7, #3252]
1380114285 mov r0, #0
1380214286 blx ip
13803
- ldr r3, [r4, #3260]
13804
- str r0, [sp, #36]
13805
- ldrb r0, [r4, #22] @ zero_extendqisi2
14287
+ ldr r3, [r7, #3260]
14288
+ str r0, [fp, #-148]
14289
+ ldrb r0, [r7, #22] @ zero_extendqisi2
1380614290 blx r3
13807
- ldr r2, [sp, #36]
14291
+ ldr r2, [fp, #-148]
1380814292 cmn r2, #1
13809
- bne .L2062
13810
-.L2065:
13811
- ldrb r3, [r4, #14] @ zero_extendqisi2
13812
- ldr r2, [sp, #12]
13813
- ldr r6, [r4, #3684]
13814
- str r3, [sp, #32]
13815
- ldrh r3, [r4, #10]
13816
- mul r9, r3, r2
13817
- ldr r2, [r4, #3260]
13818
- cmp r2, #0
13819
- moveq r8, #6
13820
- beq .L2064
13821
- ldr r2, [r4, #3264]
13822
- cmp r2, #0
13823
- moveq r8, #6
13824
- movne r8, #9
13825
-.L2064:
13826
- ldr r2, [sp, #16]
14293
+ bne .L1906
14294
+.L1909:
14295
+ ldr r3, .L1948
14296
+ ldrb r2, [r3, #14] @ zero_extendqisi2
14297
+ ldr r1, [r3, #3260]
14298
+ str r2, [fp, #-136]
14299
+ ldrh r2, [r3, #10]
14300
+ cmp r1, #0
14301
+ ldr r9, [r3, #3684]
14302
+ moveq r6, #6
14303
+ mul r7, r2, r10
14304
+ beq .L1908
14305
+ ldr r3, [r3, #3264]
14306
+ cmp r3, #0
14307
+ moveq r6, #6
14308
+ movne r6, #9
14309
+.L1908:
14310
+ ldr r3, [fp, #-124]
1382714311 mov r5, #0
13828
- mul r10, r3, r2
13829
-.L2067:
13830
- cmp r5, r10
13831
- beq .L2071
14312
+ ldr r4, .L1948
14313
+ mul r3, r2, r3
14314
+ str r3, [fp, #-144]
14315
+.L1911:
14316
+ ldr r3, [fp, #-144]
14317
+ cmp r5, r3
14318
+ beq .L1915
1383214319 cmp r5, #0
13833
- cmpeq r8, #9
14320
+ cmpeq r6, #9
1383414321 moveq r0, #1
1383514322 movne r0, #0
13836
- bne .L2068
14323
+ bne .L1912
1383714324 ldr r3, [r4, #3260]
1383814325 mov r0, #70
1383914326 blx r3
1384014327 ldr r3, [r4, #3264]
1384114328 mov r0, #2
1384214329 blx r3
13843
- mov r2, r6
13844
- mov r1, r9
14330
+ mov r2, r9
1384514331 ldr ip, [r4, #3256]
13846
- add r3, sp, #44
14332
+ mov r1, r7
14333
+ sub r3, fp, #112
1384714334 mov r0, #0
1384814335 blx ip
1384914336 ldr r3, [r4, #3264]
13850
- ldr r0, [sp, #32]
14337
+ ldr r0, [fp, #-136]
1385114338 blx r3
1385214339 ldr r3, [r4, #3260]
1385314340 ldrb r0, [r4, #22] @ zero_extendqisi2
1385414341 blx r3
13855
- ldr r3, [r6]
13856
- ldr r2, .L2106+16
14342
+ ldr r3, [r9]
14343
+ ldr r2, .L1948+12
1385714344 cmp r3, r2
13858
- beq .L2069
13859
-.L2071:
13860
- ldr r0, [r4, #3684]
13861
- mov r3, r7
13862
- mov r5, #0
14345
+ beq .L1913
14346
+.L1915:
14347
+ ldr r3, .L1948
14348
+ mov r4, #0
14349
+ ldr r0, [r3, #3684]
14350
+ mov r3, r8
1386314351 mov r2, r0
13864
-.L2070:
13865
- mov r6, r2
13866
- mov r8, r3
13867
- ldr ip, [r6]
14352
+.L1914:
14353
+ mov r5, r2
14354
+ mov r6, r3
1386814355 add r2, r2, #4
13869
- ldr r1, [r8]
1387014356 add r3, r3, #4
14357
+ ldr ip, [r5]
14358
+ ldr r1, [r6]
1387114359 cmp ip, r1
13872
- beq .L2073
14360
+ beq .L1917
1387314361 mov r2, #512
1387414362 mov r1, #0
1387514363 bl memset
13876
- ldr r0, .L2106+20
13877
- str r5, [sp]
13878
- ldr r1, [sp, #12]
13879
- ldr r3, [r8]
13880
- ldr r2, [r6]
14364
+ str r4, [sp]
14365
+ ldr r0, .L1948+16
14366
+ mov r1, r10
14367
+ ldr r3, [r6]
14368
+ ldr r2, [r5]
1388114369 bl sftl_printk
13882
- ldrh r1, [r4, #10]
14370
+ ldr r3, .L1948
1388314371 mov r0, #0
13884
- ldr r2, [sp, #12]
13885
- ldr r3, [r4, #3248]
13886
- mul r1, r2, r1
14372
+ ldrh r1, [r3, #10]
14373
+ ldr r3, [r3, #3248]
14374
+ mul r1, r10, r1
1388714375 blx r3
13888
-.L2074:
13889
- ldr r3, [sp, #24]
13890
- str r3, [sp, #12]
13891
- b .L2054
13892
-.L2061:
13893
- add r3, sp, #44
13894
- mov r2, r10
13895
- add r1, r9, r6
13896
- ldr ip, [r4, #3252]
14376
+.L1918:
14377
+ ldr r10, [fp, #-132]
14378
+ b .L1898
14379
+.L1905:
14380
+ ldr r1, [fp, #-136]
14381
+ sub r3, fp, #112
14382
+ ldr ip, [r7, #3252]
14383
+ mov r2, r9
14384
+ add r1, r1, r5
1389714385 blx ip
1389814386 cmn r0, #1
13899
- beq .L2065
13900
- add r10, r10, #2048
13901
-.L2062:
13902
- add r6, r6, #1
13903
- b .L2058
13904
-.L2068:
13905
- add r3, sp, #44
13906
- mov r2, r6
13907
- add r1, r9, r5
14387
+ beq .L1909
14388
+ add r9, r9, #2048
14389
+.L1906:
14390
+ add r5, r5, #1
14391
+ b .L1902
14392
+.L1912:
1390814393 ldr ip, [r4, #3256]
14394
+ sub r3, fp, #112
14395
+ mov r2, r9
14396
+ add r1, r7, r5
1390914397 blx ip
1391014398 cmn r0, #1
13911
- beq .L2071
13912
- ldr r2, [sp, #48]
14399
+ beq .L1915
14400
+ ldr r1, [fp, #-108]
1391314401 movw r3, #61424
13914
- cmp r2, r3
13915
- bne .L2071
13916
- add r6, r6, #2048
13917
-.L2069:
14402
+ cmp r1, r3
14403
+ bne .L1915
14404
+ add r9, r9, #2048
14405
+.L1913:
1391814406 add r5, r5, #1
13919
- b .L2067
13920
-.L2073:
13921
- ldr r1, [sp, #28]
13922
- add r5, r5, #1
13923
- cmp r5, r1
13924
- bne .L2070
13925
- ldr r3, [sp, #20]
14407
+ b .L1911
14408
+.L1917:
14409
+ ldr r1, [fp, #-140]
14410
+ add r4, r4, #1
14411
+ cmp r4, r1
14412
+ bcc .L1914
14413
+ ldr r3, [fp, #-128]
1392614414 add r3, r3, #1
14415
+ str r3, [fp, #-128]
1392714416 cmp r3, #5
13928
- str r3, [sp, #20]
13929
- bls .L2074
13930
- b .L2077
13931
-.L2046:
14417
+ bls .L1918
14418
+.L1919:
14419
+ ldr r5, .L1948
14420
+ mov r3, #0
14421
+ ldr r4, [fp, #-120]
14422
+ ldr r0, [r5, #3680]
14423
+ str r3, [r5, #3676]
14424
+ bl kfree
14425
+ ldr r0, [r5, #3684]
14426
+ bl kfree
14427
+.L1889:
14428
+ mov r3, sp
14429
+ ldr r2, [fp, #-48]
14430
+ bic r3, r3, #8128
14431
+ bic r3, r3, #63
14432
+ ldr r3, [r3, #24]
14433
+ cmp r2, r3
14434
+ beq .L1928
14435
+ bl __stack_chk_fail
14436
+.L1890:
1393214437 cmp r0, #64
13933
- mov r4, r0
13934
- mov r6, r1
13935
- mov r7, r2
13936
- bne .L2078
14438
+ bne .L1921
1393714439 mov r0, #262144
1393814440 bl ftl_malloc
1393914441 str r0, [r5, #3680]
1394014442 mov r0, #262144
1394114443 bl ftl_malloc
13942
- ldr r3, [r5, #3680]
14444
+ mov r3, r0
1394314445 str r0, [r5, #3684]
13944
- cmp r3, #0
13945
- cmpne r0, #0
13946
- beq .L2079
13947
- mov r2, #1
13948
- mov r1, r9
13949
- str r2, [r5, #3676]
13950
- mov r0, r3
14446
+ ldr r0, [r5, #3680]
14447
+ cmp r0, #0
14448
+ cmpne r3, #0
14449
+ beq .L1922
14450
+ mov r1, r10
1395114451 mov r2, #262144
14452
+ mov r3, #1
14453
+ str r3, [r5, #3676]
1395214454 bl ftl_memset
13953
-.L2078:
13954
- ldr r3, [r5, #3676]
13955
- cmp r3, #0
13956
- beq .L2105
14455
+.L1923:
1395714456 cmp r4, #63
1395814457 ldr r0, [r5, #3680]
13959
- ldrhi r3, .L2106+24
13960
- rsbls r1, r4, #64
13961
- subls r6, r6, r1
13962
- movhi r1, r7
13963
- addls r1, r7, r1, lsl #9
13964
- addhi r3, r4, r3
14458
+ sub r3, r4, #64
14459
+ rsbls r4, r4, #64
14460
+ addls r6, r6, r3
14461
+ addls r7, r7, r4, lsl #9
1396514462 addhi r0, r0, r3, lsl #9
13966
- cmp r10, #576
13967
- subcs r6, r6, r8
13968
- subcs r6, r6, #444
13969
- subcs r6, r6, #2
14463
+ cmp r9, #576
14464
+ mov r1, r7
14465
+ rsbcs r8, r8, #576
14466
+ addcs r6, r6, r8
1397014467 lsl r2, r6, #9
1397114468 bl ftl_memcpy
13972
- b .L2105
13973
-.L2079:
13974
- ldr r1, .L2106+28
13975
- ldr r0, .L2106+32
14469
+ b .L1947
14470
+.L1922:
14471
+ ldr r1, .L1948+20
14472
+ ldr r0, .L1948+24
1397614473 bl sftl_printk
13977
- b .L2078
13978
-.L2084:
13979
- add sp, sp, #116
13980
- @ sp needed
13981
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
13982
-.L2107:
14474
+.L1921:
14475
+ ldr r3, [r5, #3676]
14476
+ cmp r3, #0
14477
+ bne .L1923
14478
+ b .L1947
14479
+.L1928:
14480
+ mov r0, r4
14481
+ sub sp, fp, #40
14482
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
14483
+.L1949:
1398314484 .align 2
13984
-.L2106:
13985
- .word __stack_chk_guard
14485
+.L1948:
1398614486 .word .LANCHOR0
1398714487 .word -52655045
1398814488 .word .LC130
1398914489 .word 1179535694
1399014490 .word .LC131
13991
- .word 8388544
1399214491 .word .LANCHOR1+633
1399314492 .word .LC132
13994
- .fnend
1399514493 .size FtlWriteToIDB, .-FtlWriteToIDB
1399614494 .align 2
1399714495 .global sftl_write
....@@ -14000,11 +14498,13 @@
1400014498 .fpu softvfp
1400114499 .type sftl_write, %function
1400214500 sftl_write:
14003
- .fnstart
1400414501 @ args = 0, pretend = 0, frame = 0
14005
- @ frame_needed = 0, uses_anonymous_args = 0
14006
- push {r4, r5, r6, lr}
14007
- .save {r4, r5, r6, lr}
14502
+ @ frame_needed = 1, uses_anonymous_args = 0
14503
+ mov ip, sp
14504
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
14505
+ sub fp, ip, #4
14506
+ push {lr}
14507
+ bl __gnu_mcount_nc
1400814508 mov r5, r1
1400914509 mov r6, r2
1401014510 mov r4, r0
....@@ -14013,9 +14513,8 @@
1401314513 mov r2, r5
1401414514 mov r1, r4
1401514515 mov r0, #0
14016
- pop {r4, r5, r6, lr}
14017
- b FtlWrite
14018
- .fnend
14516
+ bl FtlWrite
14517
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
1401914518 .size sftl_write, .-sftl_write
1402014519 .align 2
1402114520 .global rk_sftl_vendor_dev_ops_register
....@@ -14024,23 +14523,25 @@
1402414523 .fpu softvfp
1402514524 .type rk_sftl_vendor_dev_ops_register, %function
1402614525 rk_sftl_vendor_dev_ops_register:
14027
- .fnstart
1402814526 @ args = 0, pretend = 0, frame = 0
14029
- @ frame_needed = 0, uses_anonymous_args = 0
14030
- @ link register save eliminated.
14031
- ldr r2, .L2113
14032
- ldr r3, [r2, #3688]
14033
- cmp r3, #0
14034
- streq r0, [r2, #3688]
14035
- moveq r0, r3
14036
- streq r1, [r2, #3692]
14527
+ @ frame_needed = 1, uses_anonymous_args = 0
14528
+ mov ip, sp
14529
+ push {fp, ip, lr, pc}
14530
+ sub fp, ip, #4
14531
+ push {lr}
14532
+ bl __gnu_mcount_nc
14533
+ ldr r3, .L1954
14534
+ mov r2, r0
14535
+ ldr r0, [r3, #3688]
14536
+ cmp r0, #0
14537
+ streq r2, [r3, #3688]
14538
+ streq r1, [r3, #3692]
1403714539 mvnne r0, #0
14038
- bx lr
14039
-.L2114:
14540
+ ldmfd sp, {fp, sp, pc}
14541
+.L1955:
1404014542 .align 2
14041
-.L2113:
14543
+.L1954:
1404214544 .word .LANCHOR0
14043
- .fnend
1404414545 .size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register
1404514546 .align 2
1404614547 .global rk_sftl_vendor_storage_init
....@@ -14049,88 +14550,89 @@
1404914550 .fpu softvfp
1405014551 .type rk_sftl_vendor_storage_init, %function
1405114552 rk_sftl_vendor_storage_init:
14052
- .fnstart
1405314553 @ args = 0, pretend = 0, frame = 0
14054
- @ frame_needed = 0, uses_anonymous_args = 0
14055
- push {r4, r5, r6, r7, r8, r9, r10, lr}
14056
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
14554
+ @ frame_needed = 1, uses_anonymous_args = 0
14555
+ mov ip, sp
14556
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
14557
+ sub fp, ip, #4
14558
+ push {lr}
14559
+ bl __gnu_mcount_nc
14560
+ ldr r5, .L1965
1405714561 mov r0, #65536
14058
- ldr r5, .L2125
1405914562 bl ftl_malloc
1406014563 cmp r0, #0
14564
+ mvneq r4, #11
1406114565 str r0, [r5, #3696]
14062
- mvneq r9, #11
14063
- beq .L2115
14064
- ldr r10, .L2125+4
14065
- mov r7, #0
14066
- mov r6, r7
14067
- mov r8, r7
14068
-.L2119:
14566
+ beq .L1956
14567
+ ldr r9, .L1965+4
14568
+ mov r8, #0
14569
+ mov r7, r8
14570
+ mov r6, r8
14571
+.L1960:
1406914572 ldr r3, [r5, #3688]
14070
- mov r1, #128
14573
+ lsl r0, r6, #7
1407114574 ldr r2, [r5, #3696]
14072
- lsl r0, r8, #7
14073
- blx r3
14074
- subs r9, r0, #0
14075
- bne .L2117
14076
- ldr r4, [r5, #3696]
14077
- ldr r3, [r4]
14078
- cmp r3, r10
14079
- bne .L2118
14080
- add r2, r4, #61440
14081
- ldr r3, [r4, #4]
14082
- ldr r2, [r2, #4092]
14083
- cmp r3, r6
14084
- sub r2, r2, r3
14085
- clz r2, r2
14086
- lsr r2, r2, #5
14087
- movls r2, #0
14088
- cmp r2, #0
14089
- movne r7, r8
14090
- movne r6, r3
14091
-.L2118:
14092
- add r8, r8, #1
14093
- cmp r8, #2
14094
- bne .L2119
14095
- cmp r6, #0
14096
- beq .L2120
14097
- ldr r3, [r5, #3688]
14098
- mov r2, r4
1409914575 mov r1, #128
14100
- lsl r0, r7, #7
1410114576 blx r3
14102
- subs r9, r0, #0
14103
- beq .L2115
14104
-.L2117:
14577
+ subs r4, r0, #0
14578
+ bne .L1958
14579
+ ldr r3, [r5, #3696]
14580
+ ldr r2, [r3]
14581
+ cmp r2, r9
14582
+ bne .L1959
14583
+ add r1, r3, #61440
14584
+ ldr r2, [r3, #4]
14585
+ cmp r2, r7
14586
+ ldr r1, [r1, #4092]
14587
+ sub r1, r1, r2
14588
+ clz r1, r1
14589
+ lsr r1, r1, #5
14590
+ movls r1, #0
14591
+ cmp r1, #0
14592
+ movne r8, r6
14593
+ movne r7, r2
14594
+.L1959:
14595
+ cmp r6, #1
14596
+ bne .L1964
14597
+ cmp r7, #0
14598
+ beq .L1961
14599
+ ldr r4, [r5, #3688]
14600
+ mov r2, r3
14601
+ lsl r0, r8, #7
14602
+ mov r1, #128
14603
+ blx r4
14604
+ subs r4, r0, #0
14605
+ beq .L1956
14606
+.L1958:
1410514607 ldr r0, [r5, #3696]
14106
- mvn r9, #0
14608
+ mvn r4, #0
1410714609 bl kfree
1410814610 mov r3, #0
1410914611 str r3, [r5, #3696]
14110
- b .L2115
14111
-.L2120:
14612
+ b .L1956
14613
+.L1964:
14614
+ mov r6, #1
14615
+ b .L1960
14616
+.L1961:
1411214617 mov r2, #65536
14113
- mov r1, r6
14114
- mov r0, r4
14618
+ mov r1, r7
14619
+ mov r0, r3
1411514620 bl memset
14116
- mov r3, #1
14117
- add r2, r4, #61440
14118
- str r3, [r4, #4]
14119
- str r10, [r4]
14120
- str r3, [r2, #4092]
14121
- ldr r3, .L2125+8
14122
- strh r6, [r4, #12] @ movhi
14123
- strh r3, [r4, #14] @ movhi
14124
-.L2115:
14125
- mov r0, r9
14126
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
14127
-.L2126:
14621
+ add r2, r0, #61440
14622
+ str r6, [r0, #4]
14623
+ str r9, [r0]
14624
+ str r6, [r2, #4092]
14625
+ ldr r2, .L1965+8
14626
+ strh r2, [r0, #14] @ movhi
14627
+.L1956:
14628
+ mov r0, r4
14629
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
14630
+.L1966:
1412814631 .align 2
14129
-.L2125:
14632
+.L1965:
1413014633 .word .LANCHOR0
1413114634 .word 1380668996
1413214635 .word -1032
14133
- .fnend
1413414636 .size rk_sftl_vendor_storage_init, .-rk_sftl_vendor_storage_init
1413514637 .align 2
1413614638 .global rk_sftl_vendor_read
....@@ -14139,49 +14641,49 @@
1413914641 .fpu softvfp
1414014642 .type rk_sftl_vendor_read, %function
1414114643 rk_sftl_vendor_read:
14142
- .fnstart
1414314644 @ args = 0, pretend = 0, frame = 0
14144
- @ frame_needed = 0, uses_anonymous_args = 0
14145
- ldr r3, .L2137
14146
- ldr ip, [r3, #3696]
14147
- cmp ip, #0
14148
- beq .L2132
14149
- push {r4, r5, r6, lr}
14150
- .save {r4, r5, r6, lr}
14151
- mov r3, #0
14152
- ldrh r4, [ip, #10]
14153
-.L2129:
14154
- cmp r3, r4
14155
- bcc .L2131
14156
- mvn r0, #0
14157
- pop {r4, r5, r6, pc}
14158
-.L2131:
14159
- add lr, ip, r3, lsl #3
14160
- ldrh r5, [lr, #16]
14161
- cmp r5, r0
14162
- bne .L2130
14163
- ldrh r4, [lr, #20]
14645
+ @ frame_needed = 1, uses_anonymous_args = 0
14646
+ mov ip, sp
14647
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
14648
+ sub fp, ip, #4
14649
+ push {lr}
14650
+ bl __gnu_mcount_nc
14651
+ ldr r3, .L1973
14652
+ mov r4, r0
1416414653 mov r0, r1
14165
- ldrh r1, [lr, #18]
14654
+ ldr r3, [r3, #3696]
14655
+ cmp r3, #0
14656
+ addne r5, r3, #16
14657
+ movne lr, #0
14658
+ ldrhne r1, [r3, #10]
14659
+ bne .L1969
14660
+.L1972:
14661
+ mvn r0, #0
14662
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
14663
+.L1970:
14664
+ add lr, lr, #1
14665
+.L1969:
14666
+ cmp r1, lr
14667
+ bls .L1972
14668
+ lsl ip, lr, #3
14669
+ ldrh r6, [r5, ip]
14670
+ cmp r6, r4
14671
+ bne .L1970
14672
+ add ip, r3, ip
14673
+ ldrh r4, [ip, #20]
14674
+ ldrh r1, [ip, #18]
1416614675 cmp r4, r2
1416714676 movcs r4, r2
1416814677 add r1, r1, #1024
1416914678 mov r2, r4
14170
- add r1, ip, r1
14679
+ add r1, r3, r1
1417114680 bl memcpy
1417214681 mov r0, r4
14173
- pop {r4, r5, r6, pc}
14174
-.L2130:
14175
- add r3, r3, #1
14176
- b .L2129
14177
-.L2132:
14178
- mvn r0, #0
14179
- bx lr
14180
-.L2138:
14682
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
14683
+.L1974:
1418114684 .align 2
14182
-.L2137:
14685
+.L1973:
1418314686 .word .LANCHOR0
14184
- .fnend
1418514687 .size rk_sftl_vendor_read, .-rk_sftl_vendor_read
1418614688 .align 2
1418714689 .global rk_sftl_vendor_write
....@@ -14190,45 +14692,50 @@
1419014692 .fpu softvfp
1419114693 .type rk_sftl_vendor_write, %function
1419214694 rk_sftl_vendor_write:
14193
- .fnstart
1419414695 @ args = 0, pretend = 0, frame = 24
14195
- @ frame_needed = 0, uses_anonymous_args = 0
14196
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14197
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
14198
- .pad #28
14696
+ @ frame_needed = 1, uses_anonymous_args = 0
14697
+ mov ip, sp
14698
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
14699
+ sub fp, ip, #4
1419914700 sub sp, sp, #28
14200
- ldr r9, .L2159
14701
+ push {lr}
14702
+ bl __gnu_mcount_nc
14703
+ ldr r9, .L1994
14704
+ mov r8, r1
14705
+ mov r7, r2
14706
+ str r0, [fp, #-52]
1420114707 ldr r4, [r9, #3696]
1420214708 cmp r4, #0
14203
- beq .L2154
14204
- mov r8, r2
14709
+ beq .L1990
14710
+ add r3, r7, #63
1420514711 ldrh r2, [r4, #10]
14206
- add r6, r8, #63
14712
+ bic r3, r3, #63
14713
+ str r3, [fp, #-48]
1420714714 ldrh r3, [r4, #8]
14208
- mov fp, r1
14209
- bic r6, r6, #63
14210
- mov r7, #0
14211
- str r3, [sp, #4]
14212
-.L2141:
14213
- cmp r7, r2
14214
- bcc .L2149
14715
+ mov r6, #0
14716
+ str r3, [fp, #-56]
14717
+ add r3, r4, #16
14718
+.L1977:
14719
+ cmp r6, r2
14720
+ bcc .L1985
1421514721 ldrh r1, [r4, #14]
14216
- cmp r6, r1
14217
- bhi .L2154
14722
+ ldr r3, [fp, #-48]
14723
+ cmp r1, r3
14724
+ bcc .L1990
1421814725 add r3, r4, r2, lsl #3
14219
- uxth r6, r6
14220
- strh r0, [r3, #16] @ movhi
14221
- ldrh r2, [r4, #12]
14222
- strh r8, [r3, #20] @ movhi
14223
- strh r2, [r3, #18] @ movhi
14224
- add r2, r2, r6
14225
- sub r6, r1, r6
14226
- strh r2, [r4, #12] @ movhi
14227
- strh r6, [r4, #14] @ movhi
14228
- mov r2, r8
14229
- ldrh r0, [r3, #18]
14230
- mov r1, fp
14726
+ ldr r2, [fp, #-52]
14727
+ strh r2, [r3, #16] @ movhi
14728
+ ldrh r0, [r4, #12]
14729
+ strh r0, [r3, #18] @ movhi
14730
+ strh r7, [r3, #20] @ movhi
14731
+ ldrh r3, [fp, #-48]
14732
+ add r2, r0, r3
1423114733 add r0, r0, #1024
14734
+ sub r3, r1, r3
14735
+ strh r2, [r4, #12] @ movhi
14736
+ strh r3, [r4, #14] @ movhi
14737
+ mov r2, r7
14738
+ mov r1, r8
1423214739 add r0, r4, r0
1423314740 bl memcpy
1423414741 ldrh r3, [r4, #10]
....@@ -14246,72 +14753,74 @@
1424614753 movhi r3, #0
1424714754 strh r3, [r4, #8] @ movhi
1424814755 ldr r3, [r9, #3692]
14249
- b .L2158
14250
-.L2149:
14251
- add r5, r4, r7, lsl #3
14252
- ldrh r3, [r5, #16]
14253
- cmp r3, r0
14254
- str r3, [sp, #8]
14255
- bne .L2142
14256
- ldrh r1, [r5, #20]
14756
+ b .L1993
14757
+.L1985:
14758
+ lsl r5, r6, #3
14759
+ ldr r0, [fp, #-52]
14760
+ ldrh r1, [r3, r5]
14761
+ cmp r1, r0
14762
+ bne .L1978
14763
+ add r5, r4, r5
1425714764 add r3, r4, #1024
14765
+ ldrh r1, [r5, #20]
1425814766 add r1, r1, #63
1425914767 bic r1, r1, #63
14260
- cmp r8, r1
14261
- str r1, [sp, #12]
14262
- bls .L2143
14768
+ str r1, [fp, #-60]
14769
+ cmp r7, r1
14770
+ bls .L1979
1426314771 ldrh r1, [r4, #14]
14264
- cmp r6, r1
14265
- subls r2, r2, #1
14266
- ldrhls r10, [r5, #18]
14267
- strls r2, [sp, #16]
14268
- bls .L2144
14269
-.L2154:
14772
+ ldr r0, [fp, #-48]
14773
+ cmp r1, r0
14774
+ subcs r2, r2, #1
14775
+ strcs r2, [fp, #-64]
14776
+ ldrhcs r10, [r5, #18]
14777
+ bcs .L1980
14778
+.L1990:
1427014779 mvn r0, #0
14271
- b .L2139
14272
-.L2145:
14273
- ldrh r9, [r5, #20]
14274
- add r0, r3, r10
14780
+ b .L1975
14781
+.L1981:
1427514782 ldrh r2, [r5, #16]
14276
- add r7, r7, #1
14277
- ldrh r1, [r5, #18]
14278
- strh r9, [r5, #12] @ movhi
14279
- add r9, r9, #63
14280
- bic r9, r9, #63
14783
+ add r0, r3, r10
1428114784 strh r2, [r5, #8] @ movhi
14282
- strh r10, [r5, #10] @ movhi
14785
+ add r6, r6, #1
14786
+ ldrh r2, [r5, #20]
14787
+ ldrh r1, [r5, #18]
14788
+ strh r2, [r5, #12] @ movhi
14789
+ add r2, r2, #63
14790
+ strh r9, [r5, #10] @ movhi
14791
+ bic r9, r2, #63
1428314792 add r1, r3, r1
1428414793 mov r2, r9
14285
- str r3, [sp, #20]
14794
+ str r3, [fp, #-68]
1428614795 bl memcpy
14287
- ldr r3, [sp, #20]
14796
+ ldr r3, [fp, #-68]
1428814797 add r10, r10, r9
14289
-.L2144:
14290
- ldr r2, [sp, #16]
14798
+.L1980:
14799
+ ldr r2, [fp, #-64]
14800
+ uxth r9, r10
1429114801 add r5, r5, #8
14292
- cmp r7, r2
14293
- bcc .L2145
14294
- ldrh r2, [sp, #8]
14295
- add r7, r4, r7, lsl #3
14296
- uxth r5, r10
14802
+ cmp r2, r6
14803
+ bhi .L1981
14804
+ add r6, r4, r6, lsl #3
14805
+ ldr r2, [fp, #-52]
1429714806 uxtah r0, r3, r10
14298
- strh r8, [r7, #20] @ movhi
14299
- strh r2, [r7, #16] @ movhi
14300
- mov r1, fp
14301
- strh r5, [r7, #18] @ movhi
14302
- mov r2, r8
14807
+ mov r1, r8
14808
+ strh r2, [r6, #16] @ movhi
14809
+ mov r2, r7
14810
+ strh r9, [r6, #18] @ movhi
14811
+ strh r7, [r6, #20] @ movhi
1430314812 bl memcpy
14304
- uxth r3, r6
14305
- ldrh r6, [r4, #14]
14306
- add r5, r5, r3
14307
- sub r6, r6, r3
14308
- ldr r3, [sp, #12]
14309
- strh r5, [r4, #12] @ movhi
14310
- add r6, r6, r3
14311
- strh r6, [r4, #14] @ movhi
14312
-.L2146:
14313
- ldr r3, [r4, #4]
14813
+ ldrh r2, [fp, #-48]
14814
+ ldrh r3, [r4, #14]
14815
+ add r9, r2, r9
14816
+ strh r9, [r4, #12] @ movhi
14817
+ sub r3, r3, r2
14818
+ ldr r2, [fp, #-60]
14819
+ add r3, r3, r2
14820
+ strh r3, [r4, #14] @ movhi
14821
+.L1982:
1431414822 add r2, r4, #61440
14823
+ ldr r3, [r4, #4]
1431514824 add r3, r3, #1
1431614825 str r3, [r4, #4]
1431714826 str r3, [r2, #4092]
....@@ -14321,36 +14830,38 @@
1432114830 cmp r3, #1
1432214831 movhi r3, #0
1432314832 strh r3, [r4, #8] @ movhi
14324
- ldr r3, .L2159
14833
+ ldr r3, .L1994
1432514834 ldr r3, [r3, #3692]
14326
-.L2158:
14327
- ldr r0, [sp, #4]
14835
+.L1993:
14836
+ ldr r0, [fp, #-56]
1432814837 mov r2, r4
1432914838 mov r1, #128
1433014839 lsl r0, r0, #7
1433114840 blx r3
1433214841 mov r0, #0
14333
-.L2139:
14334
- add sp, sp, #28
14335
- @ sp needed
14336
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
14337
-.L2143:
14842
+.L1975:
14843
+ sub sp, fp, #40
14844
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
14845
+.L1979:
1433814846 ldrh r0, [r5, #18]
14339
- mov r2, r8
14340
- mov r1, fp
14847
+ mov r2, r7
14848
+ mov r1, r8
1434114849 add r0, r3, r0
1434214850 bl memcpy
14343
- strh r8, [r5, #20] @ movhi
14344
- b .L2146
14345
-.L2142:
14346
- add r7, r7, #1
14347
- b .L2141
14348
-.L2160:
14851
+ strh r7, [r5, #20] @ movhi
14852
+ b .L1982
14853
+.L1978:
14854
+ add r6, r6, #1
14855
+ b .L1977
14856
+.L1995:
1434914857 .align 2
14350
-.L2159:
14858
+.L1994:
1435114859 .word .LANCHOR0
14352
- .fnend
1435314860 .size rk_sftl_vendor_write, .-rk_sftl_vendor_write
14861
+ .section .rodata.str1.1
14862
+.LC133:
14863
+ .ascii "copy_from_user error %d %p %p\012\000"
14864
+ .text
1435414865 .align 2
1435514866 .global rk_sftl_vendor_storage_ioctl
1435614867 .syntax unified
....@@ -14358,172 +14869,147 @@
1435814869 .fpu softvfp
1435914870 .type rk_sftl_vendor_storage_ioctl, %function
1436014871 rk_sftl_vendor_storage_ioctl:
14361
- .fnstart
1436214872 @ args = 0, pretend = 0, frame = 0
14363
- @ frame_needed = 0, uses_anonymous_args = 0
14364
- push {r4, r5, r6, r7, r8, lr}
14365
- .save {r4, r5, r6, r7, r8, lr}
14873
+ @ frame_needed = 1, uses_anonymous_args = 0
14874
+ mov ip, sp
14875
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
14876
+ sub fp, ip, #4
14877
+ push {lr}
14878
+ bl __gnu_mcount_nc
1436614879 mov r0, #4096
14367
- mov r5, r2
14880
+ mov r4, r2
1436814881 mov r6, r1
1436914882 bl ftl_malloc
14370
- subs r4, r0, #0
14371
- mvneq r5, #0
14372
- beq .L2161
14373
- ldr r3, .L2186
14883
+ subs r5, r0, #0
14884
+ mvneq r4, #0
14885
+ beq .L1996
14886
+ ldr r3, .L2014
1437414887 cmp r6, r3
14375
- beq .L2164
14888
+ beq .L1998
1437614889 add r3, r3, #1
1437714890 cmp r6, r3
14378
- beq .L2165
14379
-.L2183:
14380
- mvn r5, #13
14381
- b .L2163
14382
-.L2164:
14383
- ldr r6, .L2186+4
14384
- mov r3, sp
14385
- and r3, r3, r6
14386
- ldr r3, [r3, #8]
14387
- .syntax divided
14388
-@ 114 "./include/linux/uaccess.h" 1
14389
- adds r2, r5, #8; sbcccs r2, r2, r3; movcc r3, #0
14390
-@ 0 "" 2
14391
- .arm
14392
- .syntax unified
14393
- cmp r3, #0
14394
- mov r2, #8
14395
- bne .L2166
14396
- mov r1, r5
14397
- bl arm_copy_from_user
14398
- subs r2, r0, #0
14399
- beq .L2167
14400
-.L2166:
14401
- rsb r0, r2, #8
14402
- mov r1, #0
14403
- add r0, r4, r0
14404
- bl memset
14405
- mov r2, r5
14406
- mov r1, #256
14407
-.L2185:
14408
- ldr r0, .L2186+8
14409
- bl sftl_printk
14410
- b .L2183
14411
-.L2168:
14412
- mov r3, sp
14413
- uxth r2, r0
14414
- and r6, r6, r3
14415
- strh r0, [r4, #6] @ movhi
14416
- add r2, r2, #8
14417
- ldr r3, [r6, #8]
14418
- .syntax divided
14419
-@ 132 "./include/linux/uaccess.h" 1
14420
- adds r1, r5, r2; sbcccs r1, r1, r3; movcc r3, #0
14421
-@ 0 "" 2
14422
- .arm
14423
- .syntax unified
14424
- cmp r3, #0
14425
- bne .L2183
14891
+ beq .L1999
14892
+.L2012:
14893
+ mvn r4, #13
14894
+.L2000:
1442614895 mov r0, r5
14896
+ bl kfree
14897
+.L1996:
14898
+ mov r0, r4
14899
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
14900
+.L1998:
1442714901 mov r1, r4
14428
- bl arm_copy_to_user
14429
- subs r5, r0, #0
14430
- beq .L2163
14431
- b .L2183
14432
-.L2165:
14433
- ldr r7, .L2186+4
14434
- mov r3, sp
14435
- and r3, r3, r7
14436
- ldr r3, [r3, #8]
14437
- .syntax divided
14438
-@ 114 "./include/linux/uaccess.h" 1
14439
- adds r2, r5, #8; sbcccs r2, r2, r3; movcc r3, #0
14440
-@ 0 "" 2
14441
- .arm
14442
- .syntax unified
14443
- cmp r3, #0
1444414902 mov r2, #8
14445
- bne .L2170
14446
- mov r1, r5
14447
- bl arm_copy_from_user
14448
- subs r2, r0, #0
14449
- beq .L2171
14450
-.L2170:
14451
- rsb r0, r2, #8
14452
- mov r1, #0
14453
- add r0, r4, r0
14454
- bl memset
14455
- mov r2, r5
14456
- mov r1, #276
14457
- b .L2185
14458
-.L2167:
14459
- ldr r2, [r4]
14460
- ldr r3, .L2186+12
14903
+ bl _copy_from_user
14904
+ cmp r0, #0
14905
+ beq .L2001
14906
+ mov r2, r4
14907
+ mov r1, #256
14908
+.L2013:
14909
+ ldr r0, .L2014+4
14910
+ bl sftl_printk
14911
+ b .L2012
14912
+.L2001:
14913
+ ldr r2, [r5]
14914
+ ldr r3, .L2014+8
1446114915 cmp r2, r3
14462
- bne .L2172
14463
- ldrh r2, [r4, #6]
14464
- add r1, r4, #8
14465
- ldrh r0, [r4, #4]
14916
+ beq .L2002
14917
+.L2003:
14918
+ mvn r4, #0
14919
+ b .L2000
14920
+.L2002:
14921
+ ldrh r2, [r5, #6]
14922
+ add r1, r5, #8
14923
+ ldrh r0, [r5, #4]
1446614924 bl rk_sftl_vendor_read
1446714925 cmn r0, #1
14468
- bne .L2168
14469
-.L2172:
14470
- mvn r5, #0
14471
-.L2163:
14472
- mov r0, r4
14473
- bl kfree
14474
-.L2161:
14475
- mov r0, r5
14476
- pop {r4, r5, r6, r7, r8, pc}
14477
-.L2171:
14478
- ldr r2, [r4]
14479
- ldr r3, .L2186+12
14480
- cmp r2, r3
14481
- bne .L2172
14482
- ldrh r6, [r4, #6]
14483
- movw r3, #4087
14484
- cmp r6, r3
14485
- bhi .L2172
14926
+ beq .L2003
1448614927 mov r3, sp
14487
- add r6, r6, #8
14488
- and r7, r7, r3
14489
- ldr r3, [r7, #8]
14928
+ strh r0, [r5, #6] @ movhi
14929
+ bic r1, r3, #8128
14930
+ uxth r2, r0
14931
+ bic r1, r1, #63
14932
+ add r2, r2, #8
14933
+ ldr r3, [r1, #8]
1449014934 .syntax divided
14491
-@ 114 "./include/linux/uaccess.h" 1
14492
- adds r2, r5, r6; sbcccs r2, r2, r3; movcc r3, #0
14935
+@ 177 "./include/linux/uaccess.h" 1
14936
+ .syntax unified
14937
+adds r0, r4, r2; sbcscc r0, r0, r3; movcc r3, #0
1449314938 @ 0 "" 2
1449414939 .arm
1449514940 .syntax unified
1449614941 cmp r3, #0
14497
- mov r2, r6
14498
- bne .L2173
14942
+ bne .L2012
14943
+ .syntax divided
14944
+@ 89 "./arch/arm/include/asm/domain.h" 1
14945
+ mrc p15, 0, r6, c3, c0 @ get domain
14946
+@ 0 "" 2
14947
+ .arm
14948
+ .syntax unified
14949
+ bic r3, r6, #12
14950
+ orr r3, r3, #4
14951
+ .syntax divided
14952
+@ 99 "./arch/arm/include/asm/domain.h" 1
14953
+ mcr p15, 0, r3, c3, c0 @ set domain
14954
+@ 0 "" 2
14955
+@ 102 "./arch/arm/include/asm/domain.h" 1
14956
+ isb
14957
+@ 0 "" 2
14958
+ .arm
14959
+ .syntax unified
1449914960 mov r1, r5
1450014961 mov r0, r4
14501
- bl arm_copy_from_user
14502
- subs r2, r0, #0
14503
- beq .L2174
14504
-.L2173:
14505
- sub r6, r6, r2
14506
- mov r1, #0
14507
- add r0, r4, r6
14508
- bl memset
14509
- mov r2, r5
14510
- movw r1, #283
14511
- b .L2185
14512
-.L2174:
14513
- ldrh r2, [r4, #6]
14514
- add r1, r4, #8
14515
- ldrh r0, [r4, #4]
14962
+ bl arm_copy_to_user
14963
+ mov r4, r0
14964
+ .syntax divided
14965
+@ 99 "./arch/arm/include/asm/domain.h" 1
14966
+ mcr p15, 0, r6, c3, c0 @ set domain
14967
+@ 0 "" 2
14968
+@ 102 "./arch/arm/include/asm/domain.h" 1
14969
+ isb
14970
+@ 0 "" 2
14971
+ .arm
14972
+ .syntax unified
14973
+ cmp r0, #0
14974
+ beq .L2000
14975
+ b .L2012
14976
+.L1999:
14977
+ mov r1, r4
14978
+ mov r2, #8
14979
+ bl _copy_from_user
14980
+ cmp r0, #0
14981
+ movne r2, r4
14982
+ movne r1, #276
14983
+ bne .L2013
14984
+ ldr r2, [r5]
14985
+ ldr r3, .L2014+8
14986
+ cmp r2, r3
14987
+ bne .L2003
14988
+ ldrh r2, [r5, #6]
14989
+ movw r3, #4087
14990
+ cmp r2, r3
14991
+ bhi .L2003
14992
+ add r2, r2, #8
14993
+ mov r1, r4
14994
+ mov r0, r5
14995
+ uxth r2, r2
14996
+ bl _copy_from_user
14997
+ cmp r0, #0
14998
+ movne r2, r4
14999
+ movwne r1, #283
15000
+ bne .L2013
15001
+ ldrh r2, [r5, #6]
15002
+ add r1, r5, #8
15003
+ ldrh r0, [r5, #4]
1451615004 bl rk_sftl_vendor_write
14517
- mov r5, r0
14518
- b .L2163
14519
-.L2187:
15005
+ mov r4, r0
15006
+ b .L2000
15007
+.L2015:
1452015008 .align 2
14521
-.L2186:
15009
+.L2014:
1452215010 .word 1074034177
14523
- .word -8192
1452415011 .word .LC133
1452515012 .word 1448232273
14526
- .fnend
1452715013 .size rk_sftl_vendor_storage_ioctl, .-rk_sftl_vendor_storage_ioctl
1452815014 .align 2
1452915015 .global rk_sftl_vendor_register
....@@ -14532,18 +15018,24 @@
1453215018 .fpu softvfp
1453315019 .type rk_sftl_vendor_register, %function
1453415020 rk_sftl_vendor_register:
14535
- .fnstart
1453615021 @ args = 0, pretend = 0, frame = 0
14537
- @ frame_needed = 0, uses_anonymous_args = 0
14538
- @ link register save eliminated.
14539
- ldr r0, .L2189
14540
- b misc_register
14541
-.L2190:
15022
+ @ frame_needed = 1, uses_anonymous_args = 0
15023
+ mov ip, sp
15024
+ push {fp, ip, lr, pc}
15025
+ sub fp, ip, #4
15026
+ push {lr}
15027
+ bl __gnu_mcount_nc
15028
+ ldr r0, .L2017
15029
+ bl misc_register
15030
+ ldmfd sp, {fp, sp, pc}
15031
+.L2018:
1454215032 .align 2
14543
-.L2189:
15033
+.L2017:
1454415034 .word .LANCHOR2+12
14545
- .fnend
1454615035 .size rk_sftl_vendor_register, .-rk_sftl_vendor_register
15036
+ .section .rodata.str1.1
15037
+.LC134:
15038
+ .ascii "vendor_storage\000"
1454715039 .global g_nand_ops
1454815040 .global g_nand_phy_info
1454915041 .global gc_ink_free_return_value
....@@ -14693,164 +15185,164 @@
1469315185 .global c_ftl_nand_die_num
1469415186 .global c_ftl_nand_type
1469515187 .section .rodata
14696
- .align 3
15188
+ .align 2
1469715189 .set .LANCHOR1,. + 0
14698
- .type __func__.7563, %object
14699
- .size __func__.7563, 17
14700
-__func__.7563:
15190
+ .type __func__.30, %object
15191
+ .size __func__.30, 17
15192
+__func__.30:
1470115193 .ascii "INSERT_DATA_LIST\000"
14702
- .type __func__.7558, %object
14703
- .size __func__.7558, 17
14704
-__func__.7558:
15194
+ .type __func__.31, %object
15195
+ .size __func__.31, 17
15196
+__func__.31:
1470515197 .ascii "INSERT_FREE_LIST\000"
14706
- .type __func__.7594, %object
14707
- .size __func__.7594, 17
14708
-__func__.7594:
15198
+ .type __func__.29, %object
15199
+ .size __func__.29, 17
15200
+__func__.29:
1470915201 .ascii "List_remove_node\000"
14710
- .type __func__.7626, %object
14711
- .size __func__.7626, 22
14712
-__func__.7626:
15202
+ .type __func__.28, %object
15203
+ .size __func__.28, 22
15204
+__func__.28:
1471315205 .ascii "List_update_data_list\000"
14714
- .type __func__.7733, %object
14715
- .size __func__.7733, 22
14716
-__func__.7733:
15206
+ .type __func__.22, %object
15207
+ .size __func__.22, 22
15208
+__func__.22:
1471715209 .ascii "select_l2p_ram_region\000"
14718
- .type __func__.8053, %object
14719
- .size __func__.8053, 16
14720
-__func__.8053:
15210
+ .type __func__.14, %object
15211
+ .size __func__.14, 16
15212
+__func__.14:
1472115213 .ascii "make_superblock\000"
14722
- .type __func__.8229, %object
14723
- .size __func__.8229, 19
14724
-__func__.8229:
15214
+ .type __func__.8, %object
15215
+ .size __func__.8, 19
15216
+__func__.8:
1472515217 .ascii "get_new_active_ppa\000"
14726
- .type __func__.13983, %object
14727
- .size __func__.13983, 17
14728
-__func__.13983:
15218
+ .type __func__.1, %object
15219
+ .size __func__.1, 17
15220
+__func__.1:
1472915221 .ascii "FlashEraseBlocks\000"
14730
- .type __func__.7668, %object
14731
- .size __func__.7668, 26
14732
-__func__.7668:
15222
+ .type __func__.26, %object
15223
+ .size __func__.26, 26
15224
+__func__.26:
1473315225 .ascii "ftl_map_blk_alloc_new_blk\000"
14734
- .type __func__.7173, %object
14735
- .size __func__.7173, 11
14736
-__func__.7173:
15226
+ .type __func__.37, %object
15227
+ .size __func__.37, 11
15228
+__func__.37:
1473715229 .ascii "FtlMemInit\000"
14738
- .type __func__.7400, %object
14739
- .size __func__.7400, 14
14740
-__func__.7400:
15230
+ .type __func__.34, %object
15231
+ .size __func__.34, 14
15232
+__func__.34:
1474115233 .ascii "FtlBbt2Bitmap\000"
14742
- .type __func__.8074, %object
14743
- .size __func__.8074, 18
14744
-__func__.8074:
15234
+ .type __func__.13, %object
15235
+ .size __func__.13, 18
15236
+__func__.13:
1474515237 .ascii "SupperBlkListInit\000"
14746
- .type __func__.13940, %object
14747
- .size __func__.13940, 15
14748
-__func__.13940:
15238
+ .type __func__.3, %object
15239
+ .size __func__.3, 15
15240
+__func__.3:
1474915241 .ascii "FlashReadPages\000"
14750
- .type __func__.7845, %object
14751
- .size __func__.7845, 14
14752
-__func__.7845:
15242
+ .type __func__.19, %object
15243
+ .size __func__.19, 14
15244
+__func__.19:
1475315245 .ascii "FtlScanSysBlk\000"
14754
- .type __func__.7443, %object
14755
- .size __func__.7443, 11
14756
-__func__.7443:
15246
+ .type __func__.32, %object
15247
+ .size __func__.32, 11
15248
+__func__.32:
1475715249 .ascii "FtlLoadBbt\000"
14758
- .type __func__.13959, %object
14759
- .size __func__.13959, 15
14760
-__func__.13959:
15250
+ .type __func__.2, %object
15251
+ .size __func__.2, 15
15252
+__func__.2:
1476115253 .ascii "FlashProgPages\000"
14762
- .type __func__.8201, %object
14763
- .size __func__.8201, 25
14764
-__func__.8201:
15254
+ .type __func__.10, %object
15255
+ .size __func__.10, 25
15256
+__func__.10:
1476515257 .ascii "allocate_data_superblock\000"
14766
- .type __func__.8242, %object
14767
- .size __func__.8242, 16
14768
-__func__.8242:
15258
+ .type __func__.7, %object
15259
+ .size __func__.7, 16
15260
+__func__.7:
1476915261 .ascii "update_vpc_list\000"
14770
- .type __func__.8249, %object
14771
- .size __func__.8249, 20
14772
-__func__.8249:
15262
+ .type __func__.6, %object
15263
+ .size __func__.6, 20
15264
+__func__.6:
1477315265 .ascii "decrement_vpc_count\000"
14774
- .type __func__.7694, %object
14775
- .size __func__.7694, 31
14776
-__func__.7694:
14777
- .ascii "Ftl_write_map_blk_to_last_page\000"
14778
- .type __func__.7708, %object
14779
- .size __func__.7708, 16
14780
-__func__.7708:
15266
+ .type __func__.23, %object
15267
+ .size __func__.23, 16
15268
+__func__.23:
1478115269 .ascii "FtlMapWritePage\000"
14782
- .type __func__.7635, %object
14783
- .size __func__.7635, 16
14784
-__func__.7635:
15270
+ .type __func__.27, %object
15271
+ .size __func__.27, 16
15272
+__func__.27:
1478515273 .ascii "load_l2p_region\000"
14786
- .type __func__.7679, %object
14787
- .size __func__.7679, 15
14788
-__func__.7679:
15274
+ .type __func__.25, %object
15275
+ .size __func__.25, 15
15276
+__func__.25:
1478915277 .ascii "ftl_map_blk_gc\000"
14790
- .type __func__.7750, %object
14791
- .size __func__.7750, 9
14792
-__func__.7750:
15278
+ .type __func__.24, %object
15279
+ .size __func__.24, 31
15280
+__func__.24:
15281
+ .ascii "Ftl_write_map_blk_to_last_page\000"
15282
+ .type __func__.21, %object
15283
+ .size __func__.21, 9
15284
+__func__.21:
1479315285 .ascii "log2phys\000"
14794
- .type __func__.7962, %object
14795
- .size __func__.7962, 16
14796
-__func__.7962:
15286
+ .type __func__.16, %object
15287
+ .size __func__.16, 16
15288
+__func__.16:
1479715289 .ascii "FtlReUsePrevPpa\000"
14798
- .type __func__.7996, %object
14799
- .size __func__.7996, 22
14800
-__func__.7996:
15290
+ .type __func__.15, %object
15291
+ .size __func__.15, 22
15292
+__func__.15:
1480115293 .ascii "FtlRecoverySuperblock\000"
14802
- .type __func__.8116, %object
14803
- .size __func__.8116, 14
14804
-__func__.8116:
15294
+ .type __func__.11, %object
15295
+ .size __func__.11, 14
15296
+__func__.11:
1480515297 .ascii "ftl_check_vpc\000"
14806
- .type __func__.7823, %object
14807
- .size __func__.7823, 15
14808
-__func__.7823:
15298
+ .type __func__.20, %object
15299
+ .size __func__.20, 15
15300
+__func__.20:
1480915301 .ascii "FtlVpcTblFlush\000"
14810
- .type __func__.8099, %object
14811
- .size __func__.8099, 21
14812
-__func__.8099:
15302
+ .type __func__.12, %object
15303
+ .size __func__.12, 21
15304
+__func__.12:
1481315305 .ascii "FtlVpcCheckAndModify\000"
14814
- .type __func__.8222, %object
14815
- .size __func__.8222, 29
14816
-__func__.8222:
15306
+ .type __func__.9, %object
15307
+ .size __func__.9, 29
15308
+__func__.9:
1481715309 .ascii "allocate_new_data_superblock\000"
14818
- .type __func__.7297, %object
14819
- .size __func__.7297, 13
14820
-__func__.7297:
15310
+ .type __func__.36, %object
15311
+ .size __func__.36, 13
15312
+__func__.36:
1482115313 .ascii "FtlProgPages\000"
14822
- .type __func__.8319, %object
14823
- .size __func__.8319, 19
14824
-__func__.8319:
15314
+ .type __func__.5, %object
15315
+ .size __func__.5, 19
15316
+__func__.5:
1482515317 .ascii "FtlGcFreeTempBlock\000"
14826
- .type __func__.8432, %object
14827
- .size __func__.8432, 23
14828
-__func__.8432:
15318
+ .type __func__.4, %object
15319
+ .size __func__.4, 23
15320
+__func__.4:
1482915321 .ascii "rk_ftl_garbage_collect\000"
14830
- .type __func__.7325, %object
14831
- .size __func__.7325, 9
14832
-__func__.7325:
15322
+ .type __func__.35, %object
15323
+ .size __func__.35, 9
15324
+__func__.35:
1483315325 .ascii "FtlWrite\000"
14834
- .type __func__.7894, %object
14835
- .size __func__.7894, 15
14836
-__func__.7894:
15326
+ .type __func__.18, %object
15327
+ .size __func__.18, 15
15328
+__func__.18:
1483715329 .ascii "FtlLoadSysInfo\000"
14838
- .type __func__.7916, %object
14839
- .size __func__.7916, 18
14840
-__func__.7916:
15330
+ .type __func__.17, %object
15331
+ .size __func__.17, 18
15332
+__func__.17:
1484115333 .ascii "FtlMapTblRecovery\000"
14842
- .type __func__.14102, %object
14843
- .size __func__.14102, 14
14844
-__func__.14102:
15334
+ .type __func__.0, %object
15335
+ .size __func__.0, 14
15336
+__func__.0:
1484515337 .ascii "FtlWriteToIDB\000"
1484615338 .space 1
1484715339 .type rk_sftl_vendor_storage_fops, %object
14848
- .size rk_sftl_vendor_storage_fops, 160
15340
+ .size rk_sftl_vendor_storage_fops, 128
1484915341 rk_sftl_vendor_storage_fops:
14850
- .space 36
15342
+ .space 40
1485115343 .word rk_sftl_vendor_storage_ioctl
1485215344 .word rk_sftl_vendor_storage_ioctl
14853
- .space 116
15345
+ .space 80
1485415346 .data
1485515347 .align 2
1485615348 .set .LANCHOR2,. + 0
....@@ -15502,281 +15994,5 @@
1550215994 .size gp_last_act_superblock, 4
1550315995 gp_last_act_superblock:
1550415996 .space 4
15505
- .section .rodata.str1.1,"aMS",%progbits,1
15506
-.LC0:
15507
- .ascii "SFTL version: 5.0.58 20220814\000"
15508
-.LC1:
15509
- .ascii "\012%s\012\000"
15510
-.LC2:
15511
- .ascii "act blk: %x %x %x %x %x %x\012\000"
15512
-.LC3:
15513
- .ascii "buf blk: %x %x %x %x %x %x\012\000"
15514
-.LC4:
15515
- .ascii "tmp blk: %x %x %x %x %x %x\012\000"
15516
-.LC5:
15517
- .ascii "gc blk: %x %x %x %x %x %x\012\000"
15518
-.LC6:
15519
- .ascii "free blk: %x %x %x\012\000"
15520
-.LC7:
15521
- .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
15522
- .ascii "\000"
15523
-.LC8:
15524
- .ascii "\012!!!!! error @ func:%s - line:%d\012\000"
15525
-.LC9:
15526
- .ascii "FLASH INFO:\012\000"
15527
-.LC10:
15528
- .ascii "Device Capacity: %d MB\012\000"
15529
-.LC11:
15530
- .ascii "FTL INFO:\012\000"
15531
-.LC12:
15532
- .ascii "g_MaxLpn = 0x%x\012\000"
15533
-.LC13:
15534
- .ascii "g_VaildLpn = 0x%x\012\000"
15535
-.LC14:
15536
- .ascii "read_page_count = 0x%x\012\000"
15537
-.LC15:
15538
- .ascii "discard_page_count = 0x%x\012\000"
15539
-.LC16:
15540
- .ascii "write_page_count = 0x%x\012\000"
15541
-.LC17:
15542
- .ascii "cache_write_count = 0x%x\012\000"
15543
-.LC18:
15544
- .ascii "l2p_write_count = 0x%x\012\000"
15545
-.LC19:
15546
- .ascii "gc_page_count = 0x%x\012\000"
15547
-.LC20:
15548
- .ascii "totle_write = %d MB\012\000"
15549
-.LC21:
15550
- .ascii "totle_read = %d MB\012\000"
15551
-.LC22:
15552
- .ascii "GSV = 0x%x\012\000"
15553
-.LC23:
15554
- .ascii "GDV = 0x%x\012\000"
15555
-.LC24:
15556
- .ascii "bad blk num = %d\012\000"
15557
-.LC25:
15558
- .ascii "free_superblocks = 0x%x\012\000"
15559
-.LC26:
15560
- .ascii "mlc_EC = 0x%x\012\000"
15561
-.LC27:
15562
- .ascii "slc_EC = 0x%x\012\000"
15563
-.LC28:
15564
- .ascii "avg_EC = 0x%x\012\000"
15565
-.LC29:
15566
- .ascii "sys_EC = 0x%x\012\000"
15567
-.LC30:
15568
- .ascii "max_EC = 0x%x\012\000"
15569
-.LC31:
15570
- .ascii "min_EC = 0x%x\012\000"
15571
-.LC32:
15572
- .ascii "PLT = 0x%x\012\000"
15573
-.LC33:
15574
- .ascii "POT = 0x%x\012\000"
15575
-.LC34:
15576
- .ascii "MaxSector = 0x%x\012\000"
15577
-.LC35:
15578
- .ascii "init_sys_blks_pp = 0x%x\012\000"
15579
-.LC36:
15580
- .ascii "sys_blks_pp = 0x%x\012\000"
15581
-.LC37:
15582
- .ascii "free sysblock = 0x%x\012\000"
15583
-.LC38:
15584
- .ascii "data_blks_pp = 0x%x\012\000"
15585
-.LC39:
15586
- .ascii "data_op_blks_pp = 0x%x\012\000"
15587
-.LC40:
15588
- .ascii "max_data_blks = 0x%x\012\000"
15589
-.LC41:
15590
- .ascii "Sys.id = 0x%x\012\000"
15591
-.LC42:
15592
- .ascii "Bbt.id = 0x%x\012\000"
15593
-.LC43:
15594
- .ascii "ACT.page = 0x%x\012\000"
15595
-.LC44:
15596
- .ascii "ACT.plane = 0x%x\012\000"
15597
-.LC45:
15598
- .ascii "ACT.id = 0x%x\012\000"
15599
-.LC46:
15600
- .ascii "ACT.mode = 0x%x\012\000"
15601
-.LC47:
15602
- .ascii "ACT.a_pages = 0x%x\012\000"
15603
-.LC48:
15604
- .ascii "ACT VPC = 0x%x\012\000"
15605
-.LC49:
15606
- .ascii "BUF.page = 0x%x\012\000"
15607
-.LC50:
15608
- .ascii "BUF.plane = 0x%x\012\000"
15609
-.LC51:
15610
- .ascii "BUF.id = 0x%x\012\000"
15611
-.LC52:
15612
- .ascii "BUF.mode = 0x%x\012\000"
15613
-.LC53:
15614
- .ascii "BUF.a_pages = 0x%x\012\000"
15615
-.LC54:
15616
- .ascii "BUF VPC = 0x%x\012\000"
15617
-.LC55:
15618
- .ascii "TMP.page = 0x%x\012\000"
15619
-.LC56:
15620
- .ascii "TMP.plane = 0x%x\012\000"
15621
-.LC57:
15622
- .ascii "TMP.id = 0x%x\012\000"
15623
-.LC58:
15624
- .ascii "TMP.mode = 0x%x\012\000"
15625
-.LC59:
15626
- .ascii "TMP.a_pages = 0x%x\012\000"
15627
-.LC60:
15628
- .ascii "GC.page = 0x%x\012\000"
15629
-.LC61:
15630
- .ascii "GC.plane = 0x%x\012\000"
15631
-.LC62:
15632
- .ascii "GC.id = 0x%x\012\000"
15633
-.LC63:
15634
- .ascii "GC.mode = 0x%x\012\000"
15635
-.LC64:
15636
- .ascii "GC.a_pages = 0x%x\012\000"
15637
-.LC65:
15638
- .ascii "WR_CHK = %x %x %x\012\000"
15639
-.LC66:
15640
- .ascii "Read Err Cnt = 0x%x\012\000"
15641
-.LC67:
15642
- .ascii "Prog Err Cnt = 0x%x\012\000"
15643
-.LC68:
15644
- .ascii "gc_free_blk_th= 0x%x\012\000"
15645
-.LC69:
15646
- .ascii "gc_merge_free_blk_th= 0x%x\012\000"
15647
-.LC70:
15648
- .ascii "gc_skip_write_count= 0x%x\012\000"
15649
-.LC71:
15650
- .ascii "gc_blk_index= 0x%x\012\000"
15651
-.LC72:
15652
- .ascii "free min EC= 0x%x\012\000"
15653
-.LC73:
15654
- .ascii "free max EC= 0x%x\012\000"
15655
-.LC74:
15656
- .ascii "GC__SB VPC = 0x%x\012\000"
15657
-.LC75:
15658
- .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
15659
-.LC76:
15660
- .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
15661
-.LC77:
15662
- .ascii "%s\012\000"
15663
-.LC78:
15664
- .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
15665
- .ascii "\012\000"
15666
-.LC79:
15667
- .ascii "FtlGcRefreshBlock 0x%x\012\000"
15668
-.LC80:
15669
- .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000"
15670
-.LC81:
15671
- .ascii "%s %p + 0x%x:\000"
15672
-.LC82:
15673
- .ascii "0x%08x,\000"
15674
-.LC83:
15675
- .ascii "0x%04x,\000"
15676
-.LC84:
15677
- .ascii "0x%02x,\000"
15678
-.LC85:
15679
- .ascii "\012\000"
15680
-.LC86:
15681
- .ascii "%s: addr: %x is in id block!!!!!!!!!!\012\000"
15682
-.LC87:
15683
- .ascii "not free: w: d:\000"
15684
-.LC88:
15685
- .ascii "not free: w: s:\000"
15686
-.LC89:
15687
- .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
15688
- .ascii "\000"
15689
-.LC90:
15690
- .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
15691
-.LC91:
15692
- .ascii "%s error allocating memory. return -1\012\000"
15693
-.LC92:
15694
- .ascii "FlashReadPages %x %x error_ecc_bits %d\012\000"
15695
-.LC93:
15696
- .ascii "data:\000"
15697
-.LC94:
15698
- .ascii "spare:\000"
15699
-.LC95:
15700
- .ascii "prog read error: = %x\012\000"
15701
-.LC96:
15702
- .ascii "prog read REFRESH: = %x\012\000"
15703
-.LC97:
15704
- .ascii "prog read s error: = %x %x %x %x %x\012\000"
15705
-.LC98:
15706
- .ascii "prog read d error: = %x %x %x %x %x\012\000"
15707
-.LC99:
15708
- .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
15709
-.LC100:
15710
- .ascii "FtlBbmTblFlush error:%x\012\000"
15711
-.LC101:
15712
- .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
15713
-.LC102:
15714
- .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
15715
-.LC103:
15716
- .ascii "decrement_vpc_count %x = %d\012\000"
15717
-.LC104:
15718
- .ascii "FtlMapWritePage error = %x \012\000"
15719
-.LC105:
15720
- .ascii "FtlMapWritePage error = %x error count = %d\012\000"
15721
-.LC106:
15722
- .ascii "region_id = %x phyAddr = %x\012\000"
15723
-.LC107:
15724
- .ascii "map_ppn:\000"
15725
-.LC108:
15726
- .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
15727
-.LC109:
15728
- .ascii "data prev_ppa = %x error...................\012\000"
15729
-.LC110:
15730
- .ascii "spuer block %x vpn is 0\012 \000"
15731
-.LC111:
15732
- .ascii "...%s enter...\012\000"
15733
-.LC112:
15734
- .ascii "FtlCheckVpc2 %x = %x %x\012\000"
15735
-.LC113:
15736
- .ascii "free blk vpc error %x = %x %x\012\000"
15737
-.LC114:
15738
- .ascii "ftl_scan_all_data = %x\012\000"
15739
-.LC115:
15740
- .ascii "scan lpa = %x ppa= %x\012\000"
15741
-.LC116:
15742
- .ascii "lpa = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
15743
- .ascii "\000"
15744
-.LC117:
15745
- .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
15746
-.LC118:
15747
- .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
15748
-.LC119:
15749
- .ascii "no ect\000"
15750
-.LC120:
15751
- .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
15752
-.LC121:
15753
- .ascii "FtlCheckVpc %x = %x %x\012\000"
15754
-.LC122:
15755
- .ascii "FtlProgPages error %x = %d\012\000"
15756
-.LC123:
15757
- .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
15758
-.LC124:
15759
- .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
15760
-.LC125:
15761
- .ascii "FtlWrite: ecc error:%x %x %x\012\000"
15762
-.LC126:
15763
- .ascii "FtlWrite: lpa error:%x %x\012\000"
15764
-.LC127:
15765
- .ascii "%s hash error this.id =%x page =%x pre_id =%x hash "
15766
- .ascii "=%x hash_r =%x\012\000"
15767
-.LC128:
15768
- .ascii "%s last blk_id =%x page =%x hash error hash =%x has"
15769
- .ascii "h_r =%x\012\000"
15770
-.LC129:
15771
- .ascii "%s scan blk_id =%x page =%x hash error hash =%x has"
15772
- .ascii "h_r =%x\012\000"
15773
-.LC130:
15774
- .ascii "write_idblock %x %x\012\000"
15775
-.LC131:
15776
- .ascii "write_idblock fail! %x %x %x %x\012\000"
15777
-.LC132:
15778
- .ascii "%s idb buffer alloc fail\012\000"
15779
-.LC133:
15780
- .ascii "copy_from_user error %d %p %p\012\000"
15781
-.LC134:
15782
- .ascii "vendor_storage\000"
15997
+ .ident "GCC: (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621"
15998
+ .section .note.GNU-stack,"",%progbits