hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/rkflash/rk_sftl_arm_v8.S
....@@ -1,367 +1,653 @@
11 /* SPDX-License-Identifier: GPL-2.0 */
22
3
-/* Copyright (c) 2018 Rockchip Electronics Co. Ltd.
3
+/* Copyright (c) 2018-2021 Rockchip Electronics Co. Ltd.
44 * date: 2022-08-15
55 */
66 .arch armv8-a
77 .file "rk_sftl.c"
88 .text
99 .align 2
10
+ .type uaccess_disable_not_uao, %function
11
+uaccess_disable_not_uao:
12
+ hint 25 // paciasp
13
+#APP
14
+// 271 "./arch/arm64/include/asm/uaccess.h" 1
15
+ .if 1 == 1
16
+661:
17
+ nop
18
+662:
19
+.pushsection .altinstructions,"a"
20
+ .word 661b - .
21
+ .word 663f - .
22
+ .hword 10
23
+ .byte 662b-661b
24
+ .byte 664f-663f
25
+.popsection
26
+.subsection 1
27
+663:
28
+ .inst (0xd500401f | ((0) << 16 | (4) << 5) | ((!!1) << 8))
29
+
30
+664:
31
+ .org . - (664b-663b) + (662b-661b)
32
+ .org . - (662b-661b) + (664b-663b)
33
+ .previous
34
+.endif
35
+
36
+// 0 "" 2
37
+#NO_APP
38
+ hint 29 // autiasp
39
+ ret
40
+ .size uaccess_disable_not_uao, .-uaccess_disable_not_uao
41
+ .align 2
42
+ .type uaccess_enable_not_uao, %function
43
+uaccess_enable_not_uao:
44
+ hint 25 // paciasp
45
+#APP
46
+// 276 "./arch/arm64/include/asm/uaccess.h" 1
47
+ .if 1 == 1
48
+661:
49
+ nop
50
+662:
51
+.pushsection .altinstructions,"a"
52
+ .word 661b - .
53
+ .word 663f - .
54
+ .hword 10
55
+ .byte 662b-661b
56
+ .byte 664f-663f
57
+.popsection
58
+.subsection 1
59
+663:
60
+ .inst (0xd500401f | ((0) << 16 | (4) << 5) | ((!!0) << 8))
61
+
62
+664:
63
+ .org . - (664b-663b) + (662b-661b)
64
+ .org . - (662b-661b) + (664b-663b)
65
+ .previous
66
+.endif
67
+
68
+// 0 "" 2
69
+#NO_APP
70
+ hint 29 // autiasp
71
+ ret
72
+ .size uaccess_enable_not_uao, .-uaccess_enable_not_uao
73
+ .section .rodata.str1.1,"aMS",@progbits,1
74
+.LC0:
75
+ .string "Buffer overflow detected (%d < %lu)!\n"
76
+ .text
77
+ .align 2
78
+ .type copy_overflow, %function
79
+copy_overflow:
80
+ hint 25 // paciasp
81
+ stp x29, x30, [sp, -16]!
82
+ mov x2, x1
83
+ mov x29, sp
84
+ mov w1, w0
85
+ adrp x0, .LC0
86
+ add x0, x0, :lo12:.LC0
87
+ bl __warn_printk
88
+#APP
89
+// 147 "./include/linux/thread_info.h" 1
90
+ .pushsection __bug_table,"aw"; .align 2; 14470: .long 14471f - 14470b; .pushsection .rodata.str,"aMS",@progbits,1; 14472: .string "include/linux/thread_info.h"; .popsection; .long 14472b - 14470b; .short 147; .short (1 << 0)|((1 << 3) | ((9) << 8)); .popsection; 14471: brk 0x800
91
+// 0 "" 2
92
+#NO_APP
93
+ ldp x29, x30, [sp], 16
94
+ hint 29 // autiasp
95
+ ret
96
+ .size copy_overflow, .-copy_overflow
97
+ .align 2
98
+ .type __range_ok, %function
99
+__range_ok:
100
+#APP
101
+// 19 "./arch/arm64/include/asm/current.h" 1
102
+ mrs x3, sp_el0
103
+// 0 "" 2
104
+#NO_APP
105
+ ldr w4, [x3, 44]
106
+ hint 25 // paciasp
107
+ ldr x2, [x3, 8]
108
+ tbnz x4, 21, .L8
109
+ ldr x3, [x3]
110
+ tst w3, 67108864
111
+ beq .L9
112
+.L8:
113
+ sbfx x3, x0, 0, 56
114
+ and x0, x0, x3
115
+.L9:
116
+#APP
117
+// 79 "./arch/arm64/include/asm/uaccess.h" 1
118
+ adds x0, x0, x1
119
+ csel x2, xzr, x2, hi
120
+ csinv x0, x0, xzr, cc
121
+ sbcs xzr, x0, x2
122
+ cset x0, ls
123
+
124
+// 0 "" 2
125
+#NO_APP
126
+ hint 29 // autiasp
127
+ ret
128
+ .size __range_ok, .-__range_ok
129
+ .align 2
10130 .type l2p_addr_tran.isra.0, %function
11131 l2p_addr_tran.isra.0:
132
+ .section __patchable_function_entries,"aw",@progbits
133
+ .align 3
134
+ .8byte .LPFE1
135
+ .text
136
+.LPFE1:
137
+ nop
138
+ nop
12139 adrp x4, .LANCHOR0
13140 add x4, x4, :lo12:.LANCHOR0
141
+ hint 25 // paciasp
14142 ldrh w3, [x4, 8]
15
- ldrh w6, [x4, 10]
143
+ ldrh w5, [x4, 10]
16144 ldrh w4, [x4, 14]
17145 cmp w4, 4
18
- bne .L2
146
+ bne .L15
19147 lsr w3, w3, 1
20
- ubfiz w6, w6, 1, 15
21
-.L2:
22
- lsr w5, w0, 10
148
+ ubfiz w5, w5, 1, 15
149
+.L15:
150
+ ubfx x4, x0, 10, 16
151
+ ubfx x6, x0, 10, 16
23152 and w0, w0, 1023
24
- and w4, w5, 65535
25
- and w5, w5, 65535
153
+ hint 29 // autiasp
26154 udiv w4, w4, w3
27
- msub w3, w3, w4, w5
28
- madd w3, w3, w6, w0
29
- mov w0, 0
155
+ msub w3, w3, w4, w6
156
+ madd w3, w3, w5, w0
30157 str w3, [x1]
31158 str w4, [x2]
32159 ret
33160 .size l2p_addr_tran.isra.0, .-l2p_addr_tran.isra.0
34161 .align 2
162
+ .type _copy_from_user, %function
163
+_copy_from_user:
164
+ hint 25 // paciasp
165
+ stp x29, x30, [sp, -48]!
166
+ mov x29, sp
167
+ stp x19, x20, [sp, 16]
168
+ mov x20, x1
169
+ mov x19, x2
170
+ mov x1, x2
171
+ str x21, [sp, 32]
172
+ mov x21, x0
173
+ mov x0, x20
174
+ bl __range_ok
175
+ cbz x0, .L20
176
+ bl uaccess_enable_not_uao
177
+ sbfx x0, x20, 0, 56
178
+#APP
179
+// 19 "./arch/arm64/include/asm/current.h" 1
180
+ mrs x1, sp_el0
181
+// 0 "" 2
182
+#NO_APP
183
+ and x0, x20, x0
184
+ ldr x2, [x1, 8]
185
+#APP
186
+// 289 "./arch/arm64/include/asm/uaccess.h" 1
187
+ bics xzr, x0, x2
188
+ csel x1, x20, xzr, eq
189
+
190
+// 0 "" 2
191
+// 297 "./arch/arm64/include/asm/uaccess.h" 1
192
+ hint #20
193
+// 0 "" 2
194
+#NO_APP
195
+ mov x2, x19
196
+ mov x0, x21
197
+ bl __arch_copy_from_user
198
+ mov x20, x0
199
+ bl uaccess_disable_not_uao
200
+ cbz x20, .L17
201
+.L18:
202
+ sub x19, x19, x20
203
+ mov x2, x20
204
+ add x0, x21, x19
205
+ mov w1, 0
206
+ bl memset
207
+.L17:
208
+ mov x0, x20
209
+ ldp x19, x20, [sp, 16]
210
+ ldr x21, [sp, 32]
211
+ ldp x29, x30, [sp], 48
212
+ hint 29 // autiasp
213
+ ret
214
+.L20:
215
+ mov x20, x19
216
+ b .L18
217
+ .size _copy_from_user, .-_copy_from_user
218
+ .section .rodata.str1.1
219
+.LC1:
220
+ .string "SFTL version: 5.0.58 20220814"
221
+.LC2:
222
+ .string "\n%s\n"
223
+.LC3:
224
+ .string "act blk: %x %x %x %x %x %x\n"
225
+.LC4:
226
+ .string "buf blk: %x %x %x %x %x %x\n"
227
+.LC5:
228
+ .string "tmp blk: %x %x %x %x %x %x\n"
229
+.LC6:
230
+ .string "gc blk: %x %x %x %x %x %x\n"
231
+.LC7:
232
+ .string "free blk: %x %x %x\n"
233
+ .text
234
+ .align 2
35235 .global ftl_print_sblk_info
36236 .type ftl_print_sblk_info, %function
37237 ftl_print_sblk_info:
238
+ hint 34 // bti c
239
+ .section __patchable_function_entries
240
+ .align 3
241
+ .8byte .LPFE2
242
+ .text
243
+.LPFE2:
244
+ nop
245
+ nop
246
+ hint 25 // paciasp
38247 stp x29, x30, [sp, -32]!
39
- adrp x1, .LC0
40
- adrp x0, .LC1
41
- add x1, x1, :lo12:.LC0
42
- add x29, sp, 0
248
+ adrp x1, .LC1
249
+ mov x29, sp
43250 str x19, [sp, 16]
44251 adrp x19, .LANCHOR0
45252 add x19, x19, :lo12:.LANCHOR0
46
- add x0, x0, :lo12:.LC1
47
- bl sftl_printk
253
+ add x1, x1, :lo12:.LC1
48254 adrp x0, .LC2
49255 add x0, x0, :lo12:.LC2
256
+ bl sftl_printk
50257 ldrh w1, [x19, 24]
51
- ldr x3, [x19, 72]
258
+ ldr x0, [x19, 72]
52259 ldrh w5, [x19, 28]
53
- ubfiz x2, x1, 1, 16
54260 ldrb w4, [x19, 32]
55
- ldrh w6, [x3, x2]
261
+ ldrh w6, [x0, x1, lsl 1]
262
+ adrp x0, .LC3
56263 ldrb w3, [x19, 30]
264
+ add x0, x0, :lo12:.LC3
57265 ldrh w2, [x19, 26]
266
+ ldrh w1, [x19, 24]
58267 bl sftl_printk
59268 ldrh w1, [x19, 80]
60
- adrp x0, .LC3
61
- ldr x3, [x19, 72]
62
- add x0, x0, :lo12:.LC3
269
+ ldr x0, [x19, 72]
63270 ldrh w5, [x19, 84]
64
- ubfiz x2, x1, 1, 16
65271 ldrb w4, [x19, 88]
66
- ldrh w6, [x3, x2]
272
+ ldrh w6, [x0, x1, lsl 1]
273
+ adrp x0, .LC4
67274 ldrb w3, [x19, 86]
275
+ add x0, x0, :lo12:.LC4
68276 ldrh w2, [x19, 82]
277
+ ldrh w1, [x19, 80]
69278 bl sftl_printk
70279 ldrh w1, [x19, 128]
71
- adrp x0, .LC4
72
- ldr x3, [x19, 72]
73
- add x0, x0, :lo12:.LC4
280
+ ldr x0, [x19, 72]
74281 ldrh w5, [x19, 132]
75
- ubfiz x2, x1, 1, 16
76282 ldrb w4, [x19, 136]
77
- ldrh w6, [x3, x2]
283
+ ldrh w6, [x0, x1, lsl 1]
284
+ adrp x0, .LC5
78285 ldrb w3, [x19, 134]
286
+ add x0, x0, :lo12:.LC5
79287 ldrh w2, [x19, 130]
288
+ ldrh w1, [x19, 128]
80289 bl sftl_printk
81290 ldrh w1, [x19, 176]
82
- adrp x0, .LC5
83
- ldr x3, [x19, 72]
84
- add x0, x0, :lo12:.LC5
291
+ ldr x0, [x19, 72]
85292 ldrh w5, [x19, 180]
86
- ubfiz x2, x1, 1, 16
87293 ldrb w4, [x19, 184]
88
- ldrh w6, [x3, x2]
294
+ ldrh w6, [x0, x1, lsl 1]
295
+ adrp x0, .LC6
89296 ldrb w3, [x19, 182]
297
+ add x0, x0, :lo12:.LC6
90298 ldrh w2, [x19, 178]
299
+ ldrh w1, [x19, 176]
91300 bl sftl_printk
92301 ldrh w3, [x19, 224]
93
- adrp x0, .LC6
302
+ adrp x0, .LC7
94303 ldrh w2, [x19, 226]
95
- add x0, x0, :lo12:.LC6
304
+ add x0, x0, :lo12:.LC7
96305 ldrh w1, [x19, 228]
97306 bl sftl_printk
98307 ldr x19, [sp, 16]
99308 ldp x29, x30, [sp], 32
309
+ hint 29 // autiasp
100310 ret
101311 .size ftl_print_sblk_info, .-ftl_print_sblk_info
102312 .align 2
103313 .global Ftl_log2
104314 .type Ftl_log2, %function
105315 Ftl_log2:
316
+ hint 34 // bti c
317
+ .section __patchable_function_entries
318
+ .align 3
319
+ .8byte .LPFE3
320
+ .text
321
+.LPFE3:
322
+ nop
323
+ nop
106324 mov w2, 1
107325 mov w1, 0
108
-.L6:
326
+ hint 25 // paciasp
327
+.L28:
109328 cmp w2, w0
110
- bls .L7
329
+ bls .L29
111330 sub w0, w1, #1
331
+ hint 29 // autiasp
112332 ret
113
-.L7:
333
+.L29:
114334 add w1, w1, 1
115335 lsl w2, w2, 1
116336 and w1, w1, 65535
117
- b .L6
337
+ b .L28
118338 .size Ftl_log2, .-Ftl_log2
119339 .align 2
120340 .global FtlPrintInfo
121341 .type FtlPrintInfo, %function
122342 FtlPrintInfo:
343
+ hint 34 // bti c
344
+ .section __patchable_function_entries
345
+ .align 3
346
+ .8byte .LPFE4
347
+ .text
348
+.LPFE4:
349
+ nop
350
+ nop
351
+ hint 25 // paciasp
352
+ hint 29 // autiasp
123353 ret
124354 .size FtlPrintInfo, .-FtlPrintInfo
125355 .align 2
126356 .global FtlSysBlkNumInit
127357 .type FtlSysBlkNumInit, %function
128358 FtlSysBlkNumInit:
359
+ hint 34 // bti c
360
+ .section __patchable_function_entries
361
+ .align 3
362
+ .8byte .LPFE5
363
+ .text
364
+.LPFE5:
365
+ nop
366
+ nop
129367 and w0, w0, 65535
130368 mov w1, 24
131369 cmp w0, 24
370
+ hint 25 // paciasp
132371 csel w0, w0, w1, cs
133
- adrp x1, .LANCHOR0
134
- add x1, x1, :lo12:.LANCHOR0
135
- and w0, w0, 65535
136
- ldrh w2, [x1, 236]
137
- ldrh w3, [x1, 246]
138
- str w0, [x1, 232]
139
- mul w2, w2, w0
140
- sub w0, w3, w0
141
- strh w0, [x1, 244]
142
- ldr w0, [x1, 252]
143
- str w2, [x1, 240]
144
- sub w2, w0, w2
372
+ hint 29 // autiasp
373
+ and w1, w0, 65535
374
+ adrp x0, .LANCHOR0
375
+ add x0, x0, :lo12:.LANCHOR0
376
+ ldrh w2, [x0, 236]
377
+ ldrh w3, [x0, 246]
378
+ str w1, [x0, 232]
379
+ mul w2, w2, w1
380
+ sub w1, w3, w1
381
+ strh w1, [x0, 244]
382
+ ldr w1, [x0, 252]
383
+ str w2, [x0, 240]
384
+ sub w2, w1, w2
385
+ str w2, [x0, 248]
145386 mov w0, 0
146
- str w2, [x1, 248]
147387 ret
148388 .size FtlSysBlkNumInit, .-FtlSysBlkNumInit
149389 .align 2
150390 .global FtlConstantsInit
151391 .type FtlConstantsInit, %function
152392 FtlConstantsInit:
153
- stp x29, x30, [sp, -16]!
154
- mov x7, x0
155
- adrp x4, .LANCHOR0
156
- add x29, sp, 0
157
- ldrh w2, [x0]
158
- add x0, x4, :lo12:.LANCHOR0
159
- ldrh w3, [x7, 14]
160
- ldrh w6, [x7, 2]
161
- ldrh w5, [x7, 4]
162
- cmp w3, 4
163
- ldrh w1, [x7, 6]
164
- strh w2, [x0, 256]
165
- strh w6, [x0, 258]
166
- strh w5, [x0, 260]
167
- strh w1, [x0, 246]
168
- strh w3, [x0, 262]
169
- bne .L11
170
- lsr w1, w1, 1
171
- strh w1, [x0, 246]
172
- mov w1, 8
173
- strh w1, [x0, 262]
174
-.L12:
175
- add x1, x4, :lo12:.LANCHOR0
176
- mov x0, 0
177
- add x3, x1, 264
178
-.L13:
179
- strb w0, [x0, x3]
180
- add x0, x0, 1
181
- cmp x0, 32
182
- bne .L13
393
+ hint 34 // bti c
394
+ .section __patchable_function_entries
395
+ .align 3
396
+ .8byte .LPFE6
397
+ .text
398
+.LPFE6:
399
+ nop
400
+ nop
401
+ hint 25 // paciasp
402
+ stp x29, x30, [sp, -80]!
403
+ mov x29, sp
404
+ stp x19, x20, [sp, 16]
405
+ adrp x19, .LANCHOR0
406
+ add x19, x19, :lo12:.LANCHOR0
407
+ stp x21, x22, [sp, 32]
408
+ mov x22, x0
409
+ stp x23, x24, [sp, 48]
410
+ ldrh w2, [x0, 14]
411
+ str x25, [sp, 64]
412
+ ldrh w1, [x0]
413
+ ldrh w20, [x0, 2]
414
+ ldrh w3, [x0, 4]
415
+ ldrh w0, [x0, 6]
416
+ strh w0, [x19, 246]
417
+ strh w1, [x19, 256]
418
+ strh w20, [x19, 258]
419
+ strh w3, [x19, 260]
420
+ strh w2, [x19, 262]
421
+ cmp w2, 4
422
+ bne .L36
423
+ lsr w0, w0, 1
424
+ strh w0, [x19, 246]
425
+ mov w0, 8
426
+ strh w0, [x19, 262]
427
+.L37:
428
+ add x0, x19, 264
429
+ mov x24, 0
430
+.L38:
431
+ strb w24, [x24, x0]
432
+ add x24, x24, 1
433
+ cmp x24, 32
434
+ bne .L38
435
+ cmp w1, 1
183436 mov w0, 5
184
- strh wzr, [x1, 298]
185
- strh w0, [x1, 296]
186
- cmp w2, 1
187
- bne .L14
188
- strh w2, [x1, 296]
189
-.L14:
190
- add x3, x4, :lo12:.LANCHOR0
437
+ csel w0, w0, w1, ne
438
+ strh w0, [x19, 296]
191439 mov w0, 640
192
- strh w0, [x3, 300]
193
- ldrh w0, [x3, 260]
194
- ldrh w5, [x3, 246]
195
- mul w6, w6, w0
196
- mul w0, w0, w5
197
- and w6, w6, 65535
198
- strh w6, [x3, 236]
440
+ ldrh w21, [x19, 246]
441
+ strh w0, [x19, 300]
442
+ ldrh w0, [x19, 260]
443
+ strh wzr, [x19, 298]
444
+ mul w20, w20, w0
445
+ mul w0, w0, w21
446
+ and w20, w20, 65535
447
+ strh w20, [x19, 236]
199448 and w0, w0, 65535
200
- strh w0, [x3, 302]
449
+ strh w0, [x19, 302]
201450 bl Ftl_log2
202
- ldrh w9, [x7, 12]
203
- ldrh w8, [x3, 262]
204
- strh w0, [x3, 304]
205
- strh w9, [x3, 306]
206
- mul w0, w6, w9
207
- strh w9, [x3, 308]
208
- strh w0, [x3, 310]
209
- mov w0, w8
451
+ ldrh w25, [x22, 12]
452
+ ldrh w23, [x19, 262]
453
+ strh w0, [x19, 304]
454
+ strh w25, [x19, 306]
455
+ mul w0, w20, w25
456
+ strh w25, [x19, 308]
457
+ strh w0, [x19, 310]
458
+ mov w0, w23
210459 bl Ftl_log2
211
- and w2, w0, 65535
212
- strh w0, [x3, 312]
213
- ubfiz w0, w8, 9, 7
214
- strh w0, [x3, 314]
215
- ubfx w0, w0, 8, 8
216
- strh w0, [x3, 316]
217
- ldrh w0, [x7, 20]
218
- strh w0, [x3, 318]
219
- mul w0, w6, w5
220
- str w0, [x3, 252]
221
- mul w0, w0, w8
222
- mul w8, w8, w9
223
- mul w0, w0, w9
224
- asr w0, w0, 11
225
- str w0, [x3, 320]
226
- mov w0, 5120
227
- sdiv w0, w0, w8
228
- and w0, w0, 65535
229
- cmp w0, 4
230
- bls .L15
231
-.L21:
232
- add x1, x4, :lo12:.LANCHOR0
233
- strh w0, [x3, 324]
234
- mov w0, 640
235
- lsl w5, w5, 6
236
- asr w0, w0, w2
237
- add w2, w2, 9
238
- add w0, w0, 2
239
- strh w0, [x1, 326]
240
- asr w5, w5, w2
241
- strh w5, [x1, 328]
242
- and w5, w5, 65535
243
- cmp w6, 1
244
- mul w0, w5, w6
245
- add w5, w5, 8
246
- str w0, [x1, 332]
247
- ldrh w0, [x1, 324]
248
- udiv w0, w0, w6
249
- add w5, w0, w5
250
- beq .L17
251
-.L22:
252
- add x4, x4, :lo12:.LANCHOR0
253
- str w5, [x1, 232]
254
- ldrh w0, [x4, 232]
460
+ and w3, w0, 65535
461
+ ubfiz w1, w23, 9, 7
462
+ strh w1, [x19, 314]
463
+ and w1, w23, 127
464
+ mul w2, w20, w21
465
+ mul w23, w23, w25
466
+ str w2, [x19, 252]
467
+ ubfiz w1, w1, 1, 15
468
+ strh w1, [x19, 316]
469
+ ldrh w1, [x22, 20]
470
+ lsl w21, w21, 6
471
+ strh w1, [x19, 318]
472
+ mov w1, 5120
473
+ mul w2, w2, w23
474
+ strh w0, [x19, 312]
475
+ sdiv w1, w1, w23
476
+ asr w2, w2, 11
477
+ str w2, [x19, 320]
478
+ mov w2, 4
479
+ cmp w1, 4
480
+ csel w1, w1, w2, gt
481
+ mov w2, 640
482
+ asr w2, w2, w0
483
+ add w0, w3, 9
484
+ cmp w20, 1
485
+ add w2, w2, 2
486
+ asr w0, w21, w0
487
+ and w21, w0, 65535
488
+ strh w0, [x19, 328]
489
+ strh w1, [x19, 324]
490
+ mul w0, w20, w21
491
+ strh w2, [x19, 326]
492
+ str w0, [x19, 332]
493
+ and w0, w1, 65535
494
+ udiv w0, w0, w20
495
+ add w0, w0, w21
496
+ add w1, w0, 12
497
+ add w0, w0, 8
498
+ csel w0, w0, w1, ne
499
+ str w0, [x19, 232]
255500 bl FtlSysBlkNumInit
256
- ldr w0, [x4, 232]
257
- str w0, [x4, 336]
258
- ldr w0, [x4, 248]
259
- ldrh w1, [x4, 306]
260
- str wzr, [x4, 344]
261
- lsl w0, w0, 2
501
+ strh w24, [x19, 342]
502
+ ldr w0, [x19, 232]
503
+ ldr w1, [x19, 248]
504
+ str w0, [x19, 336]
505
+ ldrh w0, [x19, 306]
506
+ str wzr, [x19, 344]
507
+ ldp x21, x22, [sp, 32]
262508 mul w0, w0, w1
263
- ldrh w1, [x4, 312]
509
+ ldrh w1, [x19, 312]
510
+ ldp x23, x24, [sp, 48]
264511 add w1, w1, 9
512
+ lsl w0, w0, 2
513
+ ldr x25, [sp, 64]
265514 lsr w0, w0, w1
266515 add w0, w0, 2
267
- strh w0, [x4, 340]
268
- mov w0, 32
269
- strh w0, [x4, 342]
270
- ldrh w0, [x4, 324]
516
+ strh w0, [x19, 340]
517
+ ldrh w0, [x19, 324]
271518 add w0, w0, 3
272
- strh w0, [x4, 324]
273
- ldr w0, [x4, 332]
519
+ strh w0, [x19, 324]
520
+ ldr w0, [x19, 332]
274521 add w0, w0, 3
275
- str w0, [x4, 332]
522
+ str w0, [x19, 332]
276523 mov w0, 0
277
- ldp x29, x30, [sp], 16
524
+ ldp x19, x20, [sp, 16]
525
+ ldp x29, x30, [sp], 80
526
+ hint 29 // autiasp
278527 ret
279
-.L11:
280
- cmp w3, 8
281
- bne .L12
282
- cmp w5, 1
283
- bne .L12
284
- lsr w1, w1, 1
285
- strh w1, [x0, 246]
286
- mov w1, 2
287
- strh w1, [x0, 260]
288
- b .L12
289
-.L15:
290
- mov w0, 4
291
- b .L21
292
-.L17:
293
- add w5, w5, 4
294
- b .L22
528
+.L36:
529
+ cmp w2, 8
530
+ bne .L37
531
+ cmp w3, 1
532
+ bne .L37
533
+ lsr w0, w0, 1
534
+ strh w0, [x19, 246]
535
+ mov w0, 2
536
+ strh w0, [x19, 260]
537
+ b .L37
295538 .size FtlConstantsInit, .-FtlConstantsInit
296539 .align 2
297540 .global IsBlkInVendorPart
298541 .type IsBlkInVendorPart, %function
299542 IsBlkInVendorPart:
543
+ hint 34 // bti c
544
+ .section __patchable_function_entries
545
+ .align 3
546
+ .8byte .LPFE7
547
+ .text
548
+.LPFE7:
549
+ nop
550
+ nop
300551 adrp x1, .LANCHOR0
301552 add x1, x1, :lo12:.LANCHOR0
302
- and w0, w0, 65535
553
+ hint 25 // paciasp
303554 ldrh w2, [x1, 348]
304
- cbz w2, .L27
305
- ldrh w2, [x1, 324]
306
- ldr x3, [x1, 352]
555
+ cbz w2, .L50
556
+ ldr x2, [x1, 352]
557
+ and w0, w0, 65535
558
+ ldrh w3, [x1, 324]
307559 mov x1, 0
308
-.L25:
309
- cmp w2, w1, uxth
310
- bhi .L26
311
-.L27:
560
+ sub x2, x2, #2
561
+.L48:
562
+ cmp w3, w1, uxth
563
+ bhi .L49
564
+.L50:
312565 mov w0, 0
566
+.L46:
567
+ hint 29 // autiasp
313568 ret
314
-.L26:
569
+.L49:
315570 add x1, x1, 1
316
- add x4, x3, x1, lsl 1
317
- ldrh w4, [x4, -2]
571
+ ldrh w4, [x2, x1, lsl 1]
318572 cmp w4, w0
319
- bne .L25
573
+ bne .L48
320574 mov w0, 1
321
- ret
575
+ b .L46
322576 .size IsBlkInVendorPart, .-IsBlkInVendorPart
323577 .align 2
324578 .global FtlCacheWriteBack
325579 .type FtlCacheWriteBack, %function
326580 FtlCacheWriteBack:
581
+ hint 34 // bti c
582
+ .section __patchable_function_entries
583
+ .align 3
584
+ .8byte .LPFE8
585
+ .text
586
+.LPFE8:
587
+ nop
588
+ nop
327589 mov w0, 0
590
+ hint 25 // paciasp
591
+ hint 29 // autiasp
328592 ret
329593 .size FtlCacheWriteBack, .-FtlCacheWriteBack
330594 .align 2
331595 .global sftl_get_density
332596 .type sftl_get_density, %function
333597 sftl_get_density:
598
+ hint 34 // bti c
599
+ .section __patchable_function_entries
600
+ .align 3
601
+ .8byte .LPFE9
602
+ .text
603
+.LPFE9:
604
+ nop
605
+ nop
334606 adrp x0, .LANCHOR0+344
607
+ hint 25 // paciasp
608
+ hint 29 // autiasp
335609 ldr w0, [x0, #:lo12:.LANCHOR0+344]
336610 ret
337611 .size sftl_get_density, .-sftl_get_density
612
+ .section .rodata.str1.1
613
+.LC8:
614
+ .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n"
615
+ .text
338616 .align 2
339617 .global FtlBbmMapBadBlock
340618 .type FtlBbmMapBadBlock, %function
341619 FtlBbmMapBadBlock:
620
+ hint 34 // bti c
621
+ .section __patchable_function_entries
622
+ .align 3
623
+ .8byte .LPFE10
624
+ .text
625
+.LPFE10:
626
+ nop
627
+ nop
628
+ hint 25 // paciasp
342629 stp x29, x30, [sp, -32]!
343630 and w1, w0, 65535
344
- mov w4, 1
345
- add x29, sp, 0
631
+ mov x29, sp
346632 str x19, [sp, 16]
347633 adrp x19, .LANCHOR0
348634 add x19, x19, :lo12:.LANCHOR0
635
+ mov w4, 1
349636 add x19, x19, 360
350
- ldrh w0, [x19, -58]
351
- udiv w3, w1, w0
352
- and w2, w3, 65535
353
- msub w3, w3, w0, w1
354
- add x0, x19, x2, uxth 3
355
- and w3, w3, 65535
356
- ldr x0, [x0, 32]
637
+ ldrh w3, [x19, -58]
638
+ udiv w2, w1, w3
639
+ msub w3, w2, w3, w1
640
+ add x0, x19, w2, uxth 3
357641 ubfx x5, x3, 5, 11
358
- lsl x5, x5, 2
359642 lsl w4, w4, w3
643
+ ldr x0, [x0, 32]
644
+ lsl x5, x5, 2
645
+ and w3, w3, 65535
360646 ldr w6, [x0, x5]
361647 orr w4, w4, w6
362648 str w4, [x0, x5]
363
- adrp x0, .LC7
364
- add x0, x0, :lo12:.LC7
649
+ adrp x0, .LC8
650
+ add x0, x0, :lo12:.LC8
365651 bl sftl_printk
366652 ldrh w0, [x19, 6]
367653 add w0, w0, 1
....@@ -369,24 +655,34 @@
369655 mov w0, 0
370656 ldr x19, [sp, 16]
371657 ldp x29, x30, [sp], 32
658
+ hint 29 // autiasp
372659 ret
373660 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
374661 .align 2
375662 .global FtlBbmIsBadBlock
376663 .type FtlBbmIsBadBlock, %function
377664 FtlBbmIsBadBlock:
665
+ hint 34 // bti c
666
+ .section __patchable_function_entries
667
+ .align 3
668
+ .8byte .LPFE11
669
+ .text
670
+.LPFE11:
671
+ nop
672
+ nop
378673 adrp x2, .LANCHOR0
379674 add x3, x2, :lo12:.LANCHOR0
380675 and w0, w0, 65535
676
+ hint 25 // paciasp
677
+ hint 29 // autiasp
381678 ldrh w1, [x3, 302]
382679 udiv w2, w0, w1
383
- msub w0, w2, w1, w0
384
- add x2, x3, x2, uxth 3
385
- and w0, w0, 65535
386
- ldr x1, [x2, 392]
387
- ubfx x3, x0, 5, 11
388
- ldr w1, [x1, x3, lsl 2]
389
- lsr w0, w1, w0
680
+ msub w1, w2, w1, w0
681
+ add x2, x3, w2, uxth 3
682
+ ldr x0, [x2, 392]
683
+ ubfx x3, x1, 5, 11
684
+ ldr w0, [x0, x3, lsl 2]
685
+ lsr w0, w0, w1
390686 and w0, w0, 1
391687 ret
392688 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
....@@ -394,49 +690,80 @@
394690 .global FtlBbtInfoPrint
395691 .type FtlBbtInfoPrint, %function
396692 FtlBbtInfoPrint:
693
+ hint 34 // bti c
694
+ .section __patchable_function_entries
695
+ .align 3
696
+ .8byte .LPFE12
697
+ .text
698
+.LPFE12:
699
+ nop
700
+ nop
701
+ hint 25 // paciasp
702
+ hint 29 // autiasp
397703 ret
398704 .size FtlBbtInfoPrint, .-FtlBbtInfoPrint
399705 .align 2
400706 .global FtlBbtCalcTotleCnt
401707 .type FtlBbtCalcTotleCnt, %function
402708 FtlBbtCalcTotleCnt:
709
+ hint 34 // bti c
710
+ .section __patchable_function_entries
711
+ .align 3
712
+ .8byte .LPFE13
713
+ .text
714
+.LPFE13:
715
+ nop
716
+ nop
717
+ hint 25 // paciasp
718
+ stp x29, x30, [sp, -48]!
403719 adrp x0, .LANCHOR0
720
+ mov x29, sp
404721 add x0, x0, :lo12:.LANCHOR0
405
- mov w4, 0
406
- mov w5, 0
407
- ldrh w6, [x0, 302]
722
+ stp x19, x20, [sp, 16]
723
+ mov w20, 0
724
+ mov w19, 0
725
+ str x21, [sp, 32]
726
+ ldrh w21, [x0, 302]
408727 ldrh w0, [x0, 258]
409
- mul w6, w6, w0
410
- cmp w4, w6
411
- blt .L45
412
- mov w0, w5
728
+ mul w21, w21, w0
729
+.L64:
730
+ cmp w19, w21
731
+ blt .L66
732
+ mov w0, w20
733
+ ldp x19, x20, [sp, 16]
734
+ ldr x21, [sp, 32]
735
+ ldp x29, x30, [sp], 48
736
+ hint 29 // autiasp
413737 ret
414
-.L45:
415
- stp x29, x30, [sp, -16]!
416
- add x29, sp, 0
417
-.L38:
418
- mov w0, w4
738
+.L66:
739
+ mov w0, w19
419740 bl FtlBbmIsBadBlock
420
- cbz w0, .L37
421
- add w5, w5, 1
422
- and w5, w5, 65535
423
-.L37:
424
- add w4, w4, 1
425
- and w4, w4, 65535
426
- cmp w4, w6
427
- blt .L38
428
- mov w0, w5
429
- ldp x29, x30, [sp], 16
430
- ret
741
+ cbz w0, .L65
742
+ add w20, w20, 1
743
+ and w20, w20, 65535
744
+.L65:
745
+ add w19, w19, 1
746
+ and w19, w19, 65535
747
+ b .L64
431748 .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
432749 .align 2
433750 .global V2P_block
434751 .type V2P_block, %function
435752 V2P_block:
753
+ hint 34 // bti c
754
+ .section __patchable_function_entries
755
+ .align 3
756
+ .8byte .LPFE14
757
+ .text
758
+.LPFE14:
759
+ nop
760
+ nop
436761 adrp x4, .LANCHOR0
437762 add x4, x4, :lo12:.LANCHOR0
438763 and w0, w0, 65535
439764 and w1, w1, 65535
765
+ hint 25 // paciasp
766
+ hint 29 // autiasp
440767 ldrh w2, [x4, 260]
441768 ldrh w4, [x4, 302]
442769 udiv w3, w0, w2
....@@ -449,28 +776,48 @@
449776 .global P2V_plane
450777 .type P2V_plane, %function
451778 P2V_plane:
779
+ hint 34 // bti c
780
+ .section __patchable_function_entries
781
+ .align 3
782
+ .8byte .LPFE15
783
+ .text
784
+.LPFE15:
785
+ nop
786
+ nop
452787 adrp x2, .LANCHOR0
453788 add x2, x2, :lo12:.LANCHOR0
454
- and w3, w0, 65535
789
+ and w0, w0, 65535
790
+ hint 25 // paciasp
791
+ hint 29 // autiasp
455792 ldrh w1, [x2, 260]
456
- ldrh w2, [x2, 302]
457
- udiv w0, w3, w1
458
- udiv w2, w3, w2
459
- msub w0, w0, w1, w3
460
- madd w0, w1, w2, w0
793
+ ldrh w3, [x2, 302]
794
+ udiv w2, w0, w1
795
+ udiv w3, w0, w3
796
+ msub w0, w2, w1, w0
797
+ madd w0, w1, w3, w0
461798 ret
462799 .size P2V_plane, .-P2V_plane
463800 .align 2
464801 .global P2V_block_in_plane
465802 .type P2V_block_in_plane, %function
466803 P2V_block_in_plane:
467
- adrp x1, .LANCHOR0
468
- add x1, x1, :lo12:.LANCHOR0
804
+ hint 34 // bti c
805
+ .section __patchable_function_entries
806
+ .align 3
807
+ .8byte .LPFE16
808
+ .text
809
+.LPFE16:
810
+ nop
811
+ nop
812
+ adrp x2, .LANCHOR0
813
+ add x2, x2, :lo12:.LANCHOR0
469814 and w3, w0, 65535
470
- ldrh w2, [x1, 302]
471
- ldrh w1, [x1, 260]
472
- udiv w0, w3, w2
473
- msub w0, w0, w2, w3
815
+ hint 25 // paciasp
816
+ hint 29 // autiasp
817
+ ldrh w0, [x2, 302]
818
+ udiv w1, w3, w0
819
+ msub w0, w1, w0, w3
820
+ ldrh w1, [x2, 260]
474821 and w0, w0, 65535
475822 udiv w0, w0, w1
476823 ret
....@@ -479,24 +826,45 @@
479826 .global ftl_cmp_data_ver
480827 .type ftl_cmp_data_ver, %function
481828 ftl_cmp_data_ver:
829
+ hint 34 // bti c
830
+ .section __patchable_function_entries
831
+ .align 3
832
+ .8byte .LPFE17
833
+ .text
834
+.LPFE17:
835
+ nop
836
+ nop
482837 cmp w0, w1
483838 mov w2, -2147483648
484
- bls .L50
839
+ hint 25 // paciasp
840
+ bls .L78
485841 sub w1, w0, w1
486842 cmp w1, w2
487843 cset w0, ls
844
+.L77:
845
+ hint 29 // autiasp
488846 ret
489
-.L50:
847
+.L78:
490848 sub w1, w1, w0
491849 cmp w1, w2
492850 cset w0, hi
493
- ret
851
+ b .L77
494852 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver
495853 .align 2
496854 .global FtlFreeSysBlkQueueEmpty
497855 .type FtlFreeSysBlkQueueEmpty, %function
498856 FtlFreeSysBlkQueueEmpty:
857
+ hint 34 // bti c
858
+ .section __patchable_function_entries
859
+ .align 3
860
+ .8byte .LPFE18
861
+ .text
862
+.LPFE18:
863
+ nop
864
+ nop
499865 adrp x0, .LANCHOR0+462
866
+ hint 25 // paciasp
867
+ hint 29 // autiasp
500868 ldrh w0, [x0, #:lo12:.LANCHOR0+462]
501869 cmp w0, 0
502870 cset w0, eq
....@@ -506,7 +874,17 @@
506874 .global FtlFreeSysBlkQueueFull
507875 .type FtlFreeSysBlkQueueFull, %function
508876 FtlFreeSysBlkQueueFull:
877
+ hint 34 // bti c
878
+ .section __patchable_function_entries
879
+ .align 3
880
+ .8byte .LPFE19
881
+ .text
882
+.LPFE19:
883
+ nop
884
+ nop
509885 adrp x0, .LANCHOR0+462
886
+ hint 25 // paciasp
887
+ hint 29 // autiasp
510888 ldrh w0, [x0, #:lo12:.LANCHOR0+462]
511889 cmp w0, 1024
512890 cset w0, eq
....@@ -516,166 +894,204 @@
516894 .global FtlFreeSysBLkSort
517895 .type FtlFreeSysBLkSort, %function
518896 FtlFreeSysBLkSort:
897
+ hint 34 // bti c
898
+ .section __patchable_function_entries
899
+ .align 3
900
+ .8byte .LPFE20
901
+ .text
902
+.LPFE20:
903
+ nop
904
+ nop
519905 adrp x0, .LANCHOR0
520
- add x2, x0, :lo12:.LANCHOR0
521
- add x1, x2, 456
522
- ldrh w3, [x1, 6]
523
- cbz w3, .L54
524
- ldrh w5, [x2, 2540]
525
- mov w6, 0
526
- ldrh w3, [x1, 2]
527
- mov w4, 0
528
- ldrh w2, [x1, 4]
529
- and w5, w5, 31
530
-.L56:
531
- cmp w5, w4
532
- bgt .L57
533
- cbz w6, .L54
534906 add x0, x0, :lo12:.LANCHOR0
535
- strh w3, [x0, 458]
536
- strh w2, [x0, 460]
537
-.L54:
907
+ hint 25 // paciasp
908
+ ldrh w1, [x0, 462]
909
+ cbz w1, .L85
910
+ ldrh w5, [x0, 2540]
911
+ add x4, x0, 456
912
+ ldrh w2, [x4, 2]
913
+ mov w6, 0
914
+ ldrh w1, [x4, 4]
915
+ and w5, w5, 31
916
+ mov w3, 0
917
+.L88:
918
+ cmp w3, w5
919
+ bne .L89
920
+ cbz w6, .L85
921
+ strh w2, [x0, 458]
922
+ strh w1, [x0, 460]
923
+.L85:
924
+ hint 29 // autiasp
538925 ret
539
-.L57:
540
- add x6, x1, x3, sxtw 1
541
- add w4, w4, 1
926
+.L89:
927
+ add x6, x4, w2, sxtw 1
542928 add w3, w3, 1
543
- and w4, w4, 65535
544
- and w3, w3, 1023
929
+ add w2, w2, 1
930
+ and w3, w3, 65535
931
+ and w2, w2, 1023
545932 ldrh w7, [x6, 8]
546
- add x6, x1, x2, sxtw 1
933
+ add x6, x4, w1, sxtw 1
934
+ add w1, w1, 1
935
+ and w1, w1, 1023
547936 strh w7, [x6, 8]
548937 mov w6, 1
549
- add w2, w2, w6
550
- and w2, w2, 1023
551
- b .L56
938
+ b .L88
552939 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
553940 .align 2
554941 .global IsInFreeQueue
555942 .type IsInFreeQueue, %function
556943 IsInFreeQueue:
944
+ hint 34 // bti c
945
+ .section __patchable_function_entries
946
+ .align 3
947
+ .8byte .LPFE21
948
+ .text
949
+.LPFE21:
950
+ nop
951
+ nop
557952 adrp x1, .LANCHOR0
558953 add x1, x1, :lo12:.LANCHOR0
559
- add x1, x1, 456
954
+ hint 25 // paciasp
955
+ ldrh w3, [x1, 462]
956
+ cmp w3, 1024
957
+ beq .L99
958
+ ldrh w5, [x1, 458]
959
+ add x4, x1, 456
560960 and w0, w0, 65535
561
- ldrh w4, [x1, 6]
562
- cmp w4, 1024
563
- beq .L67
564
- ldrh w5, [x1, 2]
565
- mov w3, 0
566
-.L65:
567
- cmp w3, w4
568
- bcc .L66
569
-.L67:
961
+ mov w2, 0
962
+.L97:
963
+ cmp w3, w2
964
+ bhi .L98
965
+.L99:
570966 mov w0, 0
967
+.L95:
968
+ hint 29 // autiasp
571969 ret
572
-.L66:
573
- add w2, w3, w5
574
- ubfiz x2, x2, 1, 10
575
- add x2, x1, x2
576
- ldrh w2, [x2, 8]
577
- cmp w2, w0
578
- beq .L68
579
- add w3, w3, 1
580
- b .L65
581
-.L68:
970
+.L98:
971
+ add w1, w5, w2
972
+ ubfiz x1, x1, 1, 10
973
+ add x1, x4, x1
974
+ ldrh w1, [x1, 8]
975
+ cmp w1, w0
976
+ beq .L100
977
+ add w2, w2, 1
978
+ b .L97
979
+.L100:
582980 mov w0, 1
583
- ret
981
+ b .L95
584982 .size IsInFreeQueue, .-IsInFreeQueue
585983 .align 2
586984 .global insert_data_list
587985 .type insert_data_list, %function
588986 insert_data_list:
589
- adrp x2, .LANCHOR0
590
- add x3, x2, :lo12:.LANCHOR0
591
- and w0, w0, 65535
592
- mov x4, x2
593
- ldrh w1, [x3, 244]
594
- cmp w1, w0
595
- bls .L71
596
- mov w6, 6
597
- ldr x8, [x3, 2560]
598
- mov w1, -1
599
- umull x7, w0, w6
600
- add x13, x8, x7
601
- strh w1, [x13, 2]
602
- strh w1, [x8, x7]
603
- ldr x1, [x3, 2568]
604
- cbnz x1, .L72
605
- str x13, [x3, 2568]
606
-.L71:
607
- mov w0, 0
608
- ret
609
-.L72:
610
- ldr x11, [x3, 72]
611
- ubfiz x2, x0, 1, 16
612
- ldr x10, [x3, 2560]
613
- mov x9, -6148914691236517206
614
- movk x9, 0xaaab, lsl 0
615
- ldrh w14, [x3, 244]
987
+ hint 34 // bti c
988
+ .section __patchable_function_entries
989
+ .align 3
990
+ .8byte .LPFE22
991
+ .text
992
+.LPFE22:
993
+ nop
994
+ nop
995
+ adrp x1, .LANCHOR0
996
+ add x1, x1, :lo12:.LANCHOR0
997
+ hint 25 // paciasp
998
+ ldrh w2, [x1, 244]
999
+ cmp w2, w0, uxth
1000
+ bls .L104
1001
+ and w3, w0, 65535
1002
+ mov w10, 6
1003
+ ldr x7, [x1, 2560]
1004
+ mov w0, -1
1005
+ umull x6, w3, w10
1006
+ add x4, x7, x6
1007
+ str w0, [x7, x6]
1008
+ ldr x2, [x1, 2568]
1009
+ cbnz x2, .L105
1010
+.L117:
1011
+ str x4, [x1, 2568]
1012
+ b .L104
1013
+.L105:
1014
+ ldr x11, [x1, 72]
1015
+ ubfiz x5, x3, 1, 16
1016
+ ldrh w8, [x4, 4]
1017
+ mov w12, 0
1018
+ ldr x9, [x1, 2560]
1019
+ cmp w8, 0
1020
+ ldrh w5, [x11, x5]
6161021 mov w15, 65535
617
- mov w3, 0
618
- ldrh w5, [x11, x2]
619
- ldrh w2, [x13, 4]
620
- cmp w2, 0
621
- mul w5, w5, w2
622
- sub x2, x1, x10
623
- asr x2, x2, 1
624
- csinv w5, w5, wzr, ne
625
- mul x2, x2, x9
626
- and w2, w2, 65535
627
-.L77:
628
- add w3, w3, 1
629
- and w3, w3, 65535
630
- cmp w3, w14
631
- bhi .L71
632
- cmp w0, w2
633
- beq .L71
634
- ldrh w12, [x1, 4]
635
- cbz w12, .L75
636
- ubfiz x9, x2, 1, 16
637
- ldrh w9, [x11, x9]
638
- mul w9, w9, w12
639
- cmp w9, w5
640
- bcs .L75
641
- ldrh w9, [x1]
642
- cmp w9, w15
643
- bne .L76
644
- strh w2, [x13, 2]
645
- add x2, x4, :lo12:.LANCHOR0
646
- strh w0, [x1]
647
- str x13, [x2, 2576]
648
- b .L71
649
-.L76:
650
- umaddl x1, w9, w6, x10
651
- mov w2, w9
652
- b .L77
653
-.L75:
654
- strh w2, [x8, x7]
655
- ldrh w2, [x1, 2]
656
- strh w2, [x13, 2]
657
- add x2, x4, :lo12:.LANCHOR0
658
- ldr x3, [x2, 2568]
659
- cmp x1, x3
660
- bne .L78
661
- strh w0, [x1, 2]
662
- str x13, [x2, 2568]
663
- b .L71
664
-.L78:
665
- ldrh w3, [x1, 2]
1022
+ ldrh w14, [x1, 244]
1023
+ mul w5, w5, w8
1024
+ mov x8, -6148914691236517206
1025
+ movk x8, 0xaaab, lsl 0
1026
+ csel w5, w5, w0, ne
1027
+ sub x0, x2, x9
1028
+ asr x0, x0, 1
1029
+ mul x0, x0, x8
1030
+ and w0, w0, 65535
1031
+.L110:
1032
+ add w8, w12, 1
1033
+ and w12, w8, 65535
1034
+ cmp w14, w8, uxth
1035
+ bcc .L104
1036
+ cmp w3, w0
1037
+ beq .L104
1038
+ ldrh w13, [x2, 4]
1039
+ cbz w13, .L108
1040
+ ubfiz x8, x0, 1, 16
1041
+ ldrh w8, [x11, x8]
1042
+ mul w8, w8, w13
1043
+ cmp w8, w5
1044
+ bcs .L108
1045
+ ldrh w8, [x2]
1046
+ cmp w8, w15
1047
+ bne .L109
1048
+ strh w0, [x4, 2]
1049
+ strh w3, [x2]
1050
+ str x4, [x1, 2576]
1051
+.L104:
1052
+ mov w0, 0
1053
+ hint 29 // autiasp
1054
+ ret
1055
+.L109:
1056
+ umaddl x2, w8, w10, x9
1057
+ mov w0, w8
1058
+ b .L110
1059
+.L108:
1060
+ strh w0, [x7, x6]
1061
+ ldrh w0, [x2, 2]
1062
+ strh w0, [x4, 2]
1063
+ ldr x5, [x1, 2568]
1064
+ cmp x2, x5
1065
+ bne .L111
1066
+ strh w3, [x2, 2]
1067
+ b .L117
1068
+.L111:
6661069 mov w4, 6
667
- ldr x2, [x2, 2560]
668
- umull x3, w3, w4
669
- strh w0, [x2, x3]
670
- strh w0, [x1, 2]
671
- b .L71
1070
+ ldr x1, [x1, 2560]
1071
+ umull x0, w0, w4
1072
+ strh w3, [x1, x0]
1073
+ strh w3, [x2, 2]
1074
+ b .L104
6721075 .size insert_data_list, .-insert_data_list
1076
+ .section .rodata.str1.1
1077
+.LC9:
1078
+ .string "\n!!!!! error @ func:%s - line:%d\n"
1079
+ .text
6731080 .align 2
6741081 .global INSERT_DATA_LIST
6751082 .type INSERT_DATA_LIST, %function
6761083 INSERT_DATA_LIST:
1084
+ hint 34 // bti c
1085
+ .section __patchable_function_entries
1086
+ .align 3
1087
+ .8byte .LPFE23
1088
+ .text
1089
+.LPFE23:
1090
+ nop
1091
+ nop
1092
+ hint 25 // paciasp
6771093 stp x29, x30, [sp, -16]!
678
- add x29, sp, 0
1094
+ mov x29, sp
6791095 bl insert_data_list
6801096 adrp x1, .LANCHOR0
6811097 add x1, x1, :lo12:.LANCHOR0
....@@ -685,93 +1101,110 @@
6851101 strh w0, [x1, 2584]
6861102 ldrh w1, [x1, 244]
6871103 cmp w1, w0
688
- bcs .L83
1104
+ bcs .L118
6891105 adrp x1, .LANCHOR1
690
- adrp x0, .LC8
691
- mov w2, 214
1106
+ adrp x0, .LC9
6921107 add x1, x1, :lo12:.LANCHOR1
693
- add x0, x0, :lo12:.LC8
1108
+ add x0, x0, :lo12:.LC9
1109
+ mov w2, 214
6941110 bl sftl_printk
695
-.L83:
1111
+.L118:
6961112 ldp x29, x30, [sp], 16
1113
+ hint 29 // autiasp
6971114 ret
6981115 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST
6991116 .align 2
7001117 .global insert_free_list
7011118 .type insert_free_list, %function
7021119 insert_free_list:
703
- and w0, w0, 65535
704
- mov w7, 65535
705
- cmp w0, w7
706
- beq .L87
707
- adrp x2, .LANCHOR0
708
- add x5, x2, :lo12:.LANCHOR0
709
- mov w6, 6
710
- mov w1, -1
711
- mov x3, x2
712
- ldr x9, [x5, 2560]
713
- umull x8, w0, w6
714
- add x4, x9, x8
715
- strh w1, [x4, 2]
716
- strh w1, [x9, x8]
717
- ldr x1, [x5, 2592]
718
- cbnz x1, .L88
719
- str x4, [x5, 2592]
720
-.L87:
721
- mov w0, 0
722
- ret
723
-.L88:
724
- ldr x11, [x5, 2600]
725
- ubfiz x2, x0, 1, 16
726
- ldr x10, [x5, 2560]
727
- mov x5, -6148914691236517206
728
- movk x5, 0xaaab, lsl 0
729
- ldrh w12, [x11, x2]
730
- sub x2, x1, x10
1120
+ hint 34 // bti c
1121
+ .section __patchable_function_entries
1122
+ .align 3
1123
+ .8byte .LPFE24
1124
+ .text
1125
+.LPFE24:
1126
+ nop
1127
+ nop
1128
+ mov w11, 65535
1129
+ hint 25 // paciasp
1130
+ cmp w11, w0, uxth
1131
+ beq .L122
1132
+ and w3, w0, 65535
1133
+ adrp x1, .LANCHOR0
1134
+ add x1, x1, :lo12:.LANCHOR0
1135
+ mov w9, 6
1136
+ mov w0, -1
1137
+ umull x5, w3, w9
1138
+ ldr x6, [x1, 2560]
1139
+ add x4, x6, x5
1140
+ str w0, [x6, x5]
1141
+ ldr x0, [x1, 2592]
1142
+ cbnz x0, .L123
1143
+.L129:
1144
+ str x4, [x1, 2592]
1145
+ b .L122
1146
+.L123:
1147
+ ldr x10, [x1, 2600]
1148
+ ubfiz x2, x3, 1, 16
1149
+ ldr x8, [x1, 2560]
1150
+ mov x7, -6148914691236517206
1151
+ ldrh w12, [x10, x2]
1152
+ movk x7, 0xaaab, lsl 0
1153
+ sub x2, x0, x8
7311154 asr x2, x2, 1
732
- mul x2, x2, x5
1155
+ mul x2, x2, x7
7331156 and w2, w2, 65535
734
-.L91:
735
- ubfiz x5, x2, 1, 16
736
- ldrh w5, [x11, x5]
737
- cmp w5, w12
738
- bcs .L89
739
- ldrh w5, [x1]
740
- cmp w5, w7
741
- bne .L90
1157
+.L126:
1158
+ ubfiz x7, x2, 1, 16
1159
+ ldrh w7, [x10, x7]
1160
+ cmp w7, w12
1161
+ bcs .L124
1162
+ ldrh w7, [x0]
1163
+ cmp w7, w11
1164
+ bne .L125
7421165 strh w2, [x4, 2]
743
- strh w0, [x1]
744
- b .L87
745
-.L90:
746
- umaddl x1, w5, w6, x10
747
- mov w2, w5
748
- b .L91
749
-.L89:
750
- ldrh w5, [x1, 2]
751
- strh w5, [x4, 2]
752
- strh w2, [x9, x8]
753
- add x2, x3, :lo12:.LANCHOR0
754
- ldr x3, [x2, 2592]
755
- cmp x1, x3
756
- bne .L92
757
- strh w0, [x1, 2]
758
- str x4, [x2, 2592]
759
- b .L87
760
-.L92:
761
- ldrh w3, [x1, 2]
1166
+ strh w3, [x0]
1167
+.L122:
1168
+ mov w0, 0
1169
+ hint 29 // autiasp
1170
+ ret
1171
+.L125:
1172
+ umaddl x0, w7, w9, x8
1173
+ mov w2, w7
1174
+ b .L126
1175
+.L124:
1176
+ ldrh w7, [x0, 2]
1177
+ strh w7, [x4, 2]
1178
+ strh w2, [x6, x5]
1179
+ ldr x2, [x1, 2592]
1180
+ cmp x2, x0
1181
+ bne .L127
1182
+ strh w3, [x0, 2]
1183
+ b .L129
1184
+.L127:
1185
+ ldrh w2, [x0, 2]
7621186 mov w4, 6
763
- ldr x2, [x2, 2560]
764
- umull x3, w3, w4
765
- strh w0, [x2, x3]
766
- strh w0, [x1, 2]
767
- b .L87
1187
+ ldr x1, [x1, 2560]
1188
+ umull x2, w2, w4
1189
+ strh w3, [x1, x2]
1190
+ strh w3, [x0, 2]
1191
+ b .L122
7681192 .size insert_free_list, .-insert_free_list
7691193 .align 2
7701194 .global INSERT_FREE_LIST
7711195 .type INSERT_FREE_LIST, %function
7721196 INSERT_FREE_LIST:
1197
+ hint 34 // bti c
1198
+ .section __patchable_function_entries
1199
+ .align 3
1200
+ .8byte .LPFE25
1201
+ .text
1202
+.LPFE25:
1203
+ nop
1204
+ nop
1205
+ hint 25 // paciasp
7731206 stp x29, x30, [sp, -16]!
774
- add x29, sp, 0
1207
+ mov x29, sp
7751208 bl insert_free_list
7761209 adrp x1, .LANCHOR0
7771210 add x1, x1, :lo12:.LANCHOR0
....@@ -781,124 +1214,145 @@
7811214 strh w0, [x1, 228]
7821215 ldrh w1, [x1, 244]
7831216 cmp w1, w0
784
- bcs .L93
1217
+ bcs .L130
7851218 adrp x1, .LANCHOR1
7861219 add x1, x1, :lo12:.LANCHOR1
787
- adrp x0, .LC8
1220
+ adrp x0, .LC9
1221
+ add x1, x1, 17
1222
+ add x0, x0, :lo12:.LC9
7881223 mov w2, 207
789
- add x1, x1, 24
790
- add x0, x0, :lo12:.LC8
7911224 bl sftl_printk
792
-.L93:
1225
+.L130:
7931226 ldp x29, x30, [sp], 16
1227
+ hint 29 // autiasp
7941228 ret
7951229 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST
7961230 .align 2
7971231 .global List_remove_node
7981232 .type List_remove_node, %function
7991233 List_remove_node:
1234
+ hint 34 // bti c
1235
+ .section __patchable_function_entries
1236
+ .align 3
1237
+ .8byte .LPFE26
1238
+ .text
1239
+.LPFE26:
1240
+ nop
1241
+ nop
1242
+ hint 25 // paciasp
8001243 stp x29, x30, [sp, -64]!
8011244 and w1, w1, 65535
802
- mov w2, 6
803
- add x29, sp, 0
1245
+ mov x29, sp
8041246 stp x19, x20, [sp, 16]
805
- adrp x19, .LANCHOR0
806
- str x23, [sp, 48]
807
- mov x23, x0
808
- add x0, x19, :lo12:.LANCHOR0
1247
+ adrp x20, .LANCHOR0
1248
+ add x20, x20, :lo12:.LANCHOR0
8091249 stp x21, x22, [sp, 32]
810
- umull x21, w1, w2
811
- ldr x22, [x0, 2560]
1250
+ mov x21, x0
1251
+ mov w0, 6
1252
+ ldr x22, [x20, 2560]
1253
+ umull x19, w1, w0
1254
+ str x23, [sp, 48]
8121255 mov w0, 65535
813
- add x20, x22, x21
814
- ldrh w1, [x20, 2]
1256
+ add x23, x22, x19
1257
+ ldrh w1, [x23, 2]
8151258 cmp w1, w0
816
- bne .L97
817
- ldr x0, [x23]
818
- cmp x20, x0
819
- beq .L97
820
- adrp x1, .LANCHOR1
821
- add x1, x1, :lo12:.LANCHOR1
822
- adrp x0, .LC8
823
- mov w2, 372
824
- add x1, x1, 48
825
- add x0, x0, :lo12:.LC8
826
- bl sftl_printk
827
-.L97:
828
- ldr x0, [x23]
1259
+ bne .L134
1260
+ ldr x0, [x21]
1261
+ cmp x23, x0
1262
+ bne .L135
1263
+.L138:
1264
+ ldrh w0, [x22, x19]
8291265 mov w1, 65535
830
- cmp x20, x0
831
- ldrh w0, [x22, x21]
832
- bne .L98
8331266 cmp w0, w1
834
- bne .L99
835
- str xzr, [x23]
836
-.L100:
1267
+ bne .L142
1268
+ str xzr, [x21]
1269
+.L140:
8371270 mov w0, -1
838
- strh w0, [x22, x21]
839
- strh w0, [x20, 2]
1271
+ str w0, [x22, x19]
8401272 mov w0, 0
8411273 ldp x19, x20, [sp, 16]
8421274 ldp x21, x22, [sp, 32]
8431275 ldr x23, [sp, 48]
8441276 ldp x29, x30, [sp], 64
1277
+ hint 29 // autiasp
8451278 ret
846
-.L99:
847
- add x19, x19, :lo12:.LANCHOR0
1279
+.L135:
1280
+ adrp x1, .LANCHOR1
1281
+ add x1, x1, :lo12:.LANCHOR1
1282
+ adrp x0, .LC9
1283
+ add x1, x1, 34
1284
+ add x0, x0, :lo12:.LC9
1285
+ mov w2, 372
1286
+ bl sftl_printk
1287
+.L134:
1288
+ ldr x0, [x21]
1289
+ ldrh w1, [x22, x19]
1290
+ cmp x0, x23
1291
+ beq .L138
1292
+ ldrh w0, [x23, 2]
1293
+ mov w2, 65535
1294
+ cmp w1, w2
1295
+ bne .L141
1296
+ cmp w0, w1
1297
+ beq .L140
1298
+ mov w1, 6
1299
+ mov w2, -1
1300
+ umull x0, w0, w1
1301
+ ldr x1, [x20, 2560]
1302
+ strh w2, [x1, x0]
1303
+ b .L140
1304
+.L142:
1305
+ ldr x1, [x20, 2560]
8481306 mov w2, 6
849
- ldr x1, [x19, 2560]
8501307 umaddl x0, w0, w2, x1
8511308 mov w1, -1
852
- str x0, [x23]
1309
+ str x0, [x21]
8531310 strh w1, [x0, 2]
854
- b .L100
855
-.L98:
856
- cmp w0, w1
857
- ldrh w1, [x20, 2]
858
- bne .L101
859
- cmp w1, w0
860
- beq .L100
861
- add x19, x19, :lo12:.LANCHOR0
862
- mov w0, 6
863
- mov w2, -1
864
- umull x1, w1, w0
865
- ldr x0, [x19, 2560]
866
- strh w2, [x0, x1]
867
- b .L100
868
-.L101:
869
- add x19, x19, :lo12:.LANCHOR0
1311
+ b .L140
1312
+.L141:
1313
+ ldr x3, [x20, 2560]
8701314 mov w2, 6
871
- ldr x3, [x19, 2560]
872
- umaddl x0, w0, w2, x3
873
- strh w1, [x0, 2]
874
- ldrh w0, [x20, 2]
875
- ldr x1, [x19, 2560]
876
- ldrh w3, [x22, x21]
1315
+ umaddl x1, w1, w2, x3
1316
+ strh w0, [x1, 2]
8771317 umull x0, w0, w2
1318
+ ldr x1, [x20, 2560]
1319
+ ldrh w3, [x22, x19]
8781320 strh w3, [x1, x0]
879
- b .L100
1321
+ b .L140
8801322 .size List_remove_node, .-List_remove_node
8811323 .align 2
8821324 .global List_pop_index_node
8831325 .type List_pop_index_node, %function
8841326 List_pop_index_node:
1327
+ hint 34 // bti c
1328
+ .section __patchable_function_entries
1329
+ .align 3
1330
+ .8byte .LPFE27
1331
+ .text
1332
+.LPFE27:
1333
+ nop
1334
+ nop
8851335 ldr x2, [x0]
886
- cbz x2, .L109
1336
+ cbz x2, .L150
1337
+ hint 25 // paciasp
8871338 stp x29, x30, [sp, -32]!
8881339 adrp x3, .LANCHOR0+2560
889
- and w1, w1, 65535
890
- mov w4, 65535
891
- add x29, sp, 0
1340
+ mov x29, sp
8921341 str x19, [sp, 16]
893
- mov w5, 6
1342
+ and w1, w1, 65535
8941343 ldr x19, [x3, #:lo12:.LANCHOR0+2560]
895
-.L105:
896
- cbnz w1, .L106
897
-.L108:
1344
+ mov w4, 65535
1345
+ mov w5, 6
1346
+.L147:
1347
+ cbz w1, .L148
1348
+ ldrh w3, [x2]
1349
+ cmp w3, w4
1350
+ bne .L149
1351
+.L148:
8981352 sub x19, x2, x19
8991353 mov x2, -6148914691236517206
900
- asr x19, x19, 1
9011354 movk x2, 0xaaab, lsl 0
1355
+ asr x19, x19, 1
9021356 mul x19, x19, x2
9031357 and w19, w19, 65535
9041358 mov w1, w19
....@@ -906,16 +1360,14 @@
9061360 mov w0, w19
9071361 ldr x19, [sp, 16]
9081362 ldp x29, x30, [sp], 32
1363
+ hint 29 // autiasp
9091364 ret
910
-.L106:
911
- ldrh w3, [x2]
912
- cmp w3, w4
913
- beq .L108
1365
+.L149:
9141366 sub w1, w1, #1
9151367 umaddl x2, w3, w5, x19
9161368 and w1, w1, 65535
917
- b .L105
918
-.L109:
1369
+ b .L147
1370
+.L150:
9191371 mov w0, 65535
9201372 ret
9211373 .size List_pop_index_node, .-List_pop_index_node
....@@ -923,492 +1375,575 @@
9231375 .global List_pop_head_node
9241376 .type List_pop_head_node, %function
9251377 List_pop_head_node:
1378
+ hint 34 // bti c
1379
+ .section __patchable_function_entries
1380
+ .align 3
1381
+ .8byte .LPFE28
1382
+ .text
1383
+.LPFE28:
1384
+ nop
1385
+ nop
1386
+ hint 25 // paciasp
9261387 stp x29, x30, [sp, -16]!
9271388 mov w1, 0
928
- add x29, sp, 0
1389
+ mov x29, sp
9291390 bl List_pop_index_node
9301391 ldp x29, x30, [sp], 16
1392
+ hint 29 // autiasp
9311393 ret
9321394 .size List_pop_head_node, .-List_pop_head_node
9331395 .align 2
9341396 .global List_get_gc_head_node
9351397 .type List_get_gc_head_node, %function
9361398 List_get_gc_head_node:
1399
+ hint 34 // bti c
1400
+ .section __patchable_function_entries
1401
+ .align 3
1402
+ .8byte .LPFE29
1403
+ .text
1404
+.LPFE29:
1405
+ nop
1406
+ nop
9371407 and w2, w0, 65535
9381408 adrp x0, .LANCHOR0
9391409 add x0, x0, :lo12:.LANCHOR0
1410
+ hint 25 // paciasp
9401411 ldr x1, [x0, 2568]
941
- cbz x1, .L121
942
- ldr x3, [x0, 2560]
1412
+ cbz x1, .L165
9431413 mov w4, 6
1414
+ ldr x3, [x0, 2560]
9441415 mov w0, 65535
945
-.L118:
946
- cbz w2, .L119
1416
+.L162:
1417
+ cbz w2, .L163
9471418 ldrh w1, [x1]
9481419 cmp w1, w0
949
- bne .L120
1420
+ bne .L164
1421
+.L160:
1422
+ hint 29 // autiasp
9501423 ret
951
-.L120:
1424
+.L164:
9521425 sub w2, w2, #1
9531426 umaddl x1, w1, w4, x3
9541427 and w2, w2, 65535
955
- b .L118
956
-.L121:
1428
+ b .L162
1429
+.L165:
9571430 mov w0, 65535
958
- ret
959
-.L119:
1431
+ b .L160
1432
+.L163:
9601433 sub x0, x1, x3
9611434 mov x1, -6148914691236517206
962
- asr x0, x0, 1
9631435 movk x1, 0xaaab, lsl 0
1436
+ asr x0, x0, 1
9641437 mul x0, x0, x1
9651438 and w0, w0, 65535
966
- ret
1439
+ b .L160
9671440 .size List_get_gc_head_node, .-List_get_gc_head_node
9681441 .align 2
9691442 .global List_update_data_list
9701443 .type List_update_data_list, %function
9711444 List_update_data_list:
1445
+ hint 34 // bti c
1446
+ .section __patchable_function_entries
1447
+ .align 3
1448
+ .8byte .LPFE30
1449
+ .text
1450
+.LPFE30:
1451
+ nop
1452
+ nop
1453
+ hint 25 // paciasp
9721454 stp x29, x30, [sp, -64]!
973
- add x29, sp, 0
1455
+ mov x29, sp
9741456 stp x19, x20, [sp, 16]
975
- and w20, w0, 65535
9761457 adrp x19, .LANCHOR0
977
- add x0, x19, :lo12:.LANCHOR0
1458
+ add x19, x19, :lo12:.LANCHOR0
9781459 stp x21, x22, [sp, 32]
1460
+ ldrh w1, [x19, 24]
9791461 stp x23, x24, [sp, 48]
980
- ldrh w1, [x0, 24]
981
- cmp w1, w20
982
- beq .L124
983
- ldrh w1, [x0, 80]
984
- cmp w1, w20
985
- beq .L124
986
- ldrh w1, [x0, 128]
987
- cmp w1, w20
988
- beq .L124
1462
+ cmp w1, w0, uxth
1463
+ beq .L169
1464
+ and w20, w0, 65535
1465
+ ldrh w0, [x19, 80]
1466
+ cmp w0, w20
1467
+ beq .L169
1468
+ ldrh w0, [x19, 128]
1469
+ cmp w0, w20
1470
+ beq .L169
9891471 mov w22, 6
990
- ldr x24, [x0, 2560]
991
- ldr x1, [x0, 2568]
1472
+ ldr x24, [x19, 2560]
9921473 umull x22, w20, w22
1474
+ ldr x0, [x19, 2568]
9931475 add x23, x24, x22
994
- cmp x23, x1
995
- beq .L124
996
- ldr x2, [x0, 72]
997
- ubfiz x1, x20, 1, 16
1476
+ cmp x23, x0
1477
+ beq .L169
1478
+ ldr x1, [x19, 72]
1479
+ ubfiz x0, x20, 1, 16
1480
+ ldrh w21, [x1, x0]
1481
+ mov w1, 65535
9981482 ldrh w0, [x23, 4]
9991483 cmp w0, 0
1000
- ldrh w21, [x2, x1]
1001
- mov w1, 65535
10021484 mul w21, w21, w0
10031485 ldrh w0, [x23, 2]
10041486 csinv w21, w21, wzr, ne
10051487 cmp w0, w1
1006
- bne .L127
1488
+ bne .L172
10071489 ldrh w1, [x24, x22]
10081490 cmp w1, w0
1009
- bne .L127
1491
+ bne .L172
10101492 adrp x1, .LANCHOR1
10111493 add x1, x1, :lo12:.LANCHOR1
1012
- adrp x0, .LC8
1494
+ adrp x0, .LC9
1495
+ add x1, x1, 51
1496
+ add x0, x0, :lo12:.LC9
10131497 mov w2, 463
1014
- add x1, x1, 72
1015
- add x0, x0, :lo12:.LC8
10161498 bl sftl_printk
1017
-.L127:
1499
+.L172:
10181500 ldrh w0, [x23, 2]
10191501 mov w1, 65535
10201502 cmp w0, w1
1021
- bne .L128
1503
+ bne .L173
10221504 ldrh w1, [x24, x22]
10231505 cmp w1, w0
1024
- beq .L124
1025
-.L128:
1506
+ beq .L169
1507
+.L173:
10261508 mov w1, 6
1027
- add x22, x19, :lo12:.LANCHOR0
10281509 mov x2, -6148914691236517206
1029
- umull x0, w0, w1
10301510 movk x2, 0xaaab, lsl 0
1511
+ umull x0, w0, w1
10311512 asr x1, x0, 1
10321513 mul x1, x1, x2
1033
- ldr x2, [x22, 72]
1514
+ ldr x2, [x19, 72]
10341515 ldrh w1, [x2, x1, lsl 1]
1035
- ldr x2, [x22, 2560]
1516
+ ldr x2, [x19, 2560]
10361517 add x0, x2, x0
10371518 ldrh w2, [x0, 4]
10381519 cmp w2, 0
10391520 mul w0, w1, w2
10401521 csinv w0, w0, wzr, ne
10411522 cmp w21, w0
1042
- bcs .L124
1523
+ bcs .L169
10431524 mov w1, w20
1044
- add x0, x22, 2568
1525
+ add x0, x19, 2568
10451526 bl List_remove_node
1046
- ldrh w0, [x22, 2584]
1047
- cbnz w0, .L130
1527
+ ldrh w0, [x19, 2584]
1528
+ cbnz w0, .L175
10481529 adrp x1, .LANCHOR1
10491530 add x1, x1, :lo12:.LANCHOR1
1050
- adrp x0, .LC8
1531
+ adrp x0, .LC9
1532
+ add x1, x1, 51
1533
+ add x0, x0, :lo12:.LC9
10511534 mov w2, 474
1052
- add x1, x1, 72
1053
- add x0, x0, :lo12:.LC8
10541535 bl sftl_printk
1055
-.L130:
1056
- add x19, x19, :lo12:.LANCHOR0
1536
+.L175:
10571537 ldrh w0, [x19, 2584]
10581538 sub w0, w0, #1
10591539 strh w0, [x19, 2584]
10601540 mov w0, w20
10611541 bl INSERT_DATA_LIST
1062
-.L124:
1542
+.L169:
10631543 mov w0, 0
10641544 ldp x19, x20, [sp, 16]
10651545 ldp x21, x22, [sp, 32]
10661546 ldp x23, x24, [sp, 48]
10671547 ldp x29, x30, [sp], 64
1548
+ hint 29 // autiasp
10681549 ret
10691550 .size List_update_data_list, .-List_update_data_list
10701551 .align 2
10711552 .global select_l2p_ram_region
10721553 .type select_l2p_ram_region, %function
10731554 select_l2p_ram_region:
1555
+ hint 34 // bti c
1556
+ .section __patchable_function_entries
1557
+ .align 3
1558
+ .8byte .LPFE31
1559
+ .text
1560
+.LPFE31:
1561
+ nop
1562
+ nop
1563
+ hint 25 // paciasp
10741564 stp x29, x30, [sp, -32]!
1075
- adrp x1, .LANCHOR0
1076
- add x0, x1, :lo12:.LANCHOR0
1565
+ adrp x2, .LANCHOR0
1566
+ mov x29, sp
1567
+ add x2, x2, :lo12:.LANCHOR0
10771568 mov x3, 0
1078
- add x29, sp, 0
10791569 str x19, [sp, 16]
1080
- mov w4, 65535
1081
- ldrh w2, [x0, 342]
1082
- ldr x0, [x0, 2608]
1083
-.L135:
1570
+ mov w5, 65535
1571
+ ldr x0, [x2, 2608]
1572
+ ldrh w1, [x2, 342]
1573
+ sub x4, x0, #16
1574
+.L180:
10841575 and w19, w3, 65535
1085
- cmp w19, w2
1086
- bcc .L137
1087
- add x4, x0, 4
1088
- mov w19, w2
1089
- mov w6, -2147483648
1090
- mov w3, 0
1091
-.L138:
1092
- cmp w3, w2
1093
- bne .L140
1094
- cmp w19, w2
1095
- bcc .L136
1096
- add x1, x1, :lo12:.LANCHOR0
1097
- mov w19, w2
1576
+ cmp w1, w3, uxth
1577
+ bhi .L182
1578
+ mov w19, w1
1579
+ add x7, x0, 4
1580
+ mov x3, 0
1581
+ mov w5, -2147483648
1582
+.L183:
1583
+ and w6, w3, 65535
1584
+ cmp w1, w3, uxth
1585
+ bhi .L185
1586
+ cmp w1, w19
1587
+ bhi .L181
1588
+ mov w19, w1
1589
+ ldrh w5, [x2, 2616]
10981590 mov w3, -1
1099
- ldrh w4, [x1, 2616]
1100
- mov w1, 0
1101
-.L141:
1591
+ mov w2, 0
1592
+.L186:
11021593 cmp w1, w2
1103
- bne .L143
1104
- cmp w19, w1
1105
- bcc .L136
1594
+ bne .L188
1595
+ cmp w1, w19
1596
+ bhi .L181
11061597 adrp x1, .LANCHOR1
11071598 add x1, x1, :lo12:.LANCHOR1
1599
+ add x1, x1, 73
11081600 mov w2, 796
1109
- add x1, x1, 96
1110
- adrp x0, .LC8
1111
- add x0, x0, :lo12:.LC8
1601
+ adrp x0, .LC9
1602
+ add x0, x0, :lo12:.LC9
11121603 bl sftl_printk
1113
- b .L136
1114
-.L137:
1604
+ b .L181
1605
+.L182:
11151606 add x3, x3, 1
1116
- add x5, x0, x3, lsl 4
1117
- ldrh w5, [x5, -16]
1118
- cmp w5, w4
1119
- bne .L135
1120
-.L136:
1607
+ lsl x6, x3, 4
1608
+ ldrh w6, [x4, x6]
1609
+ cmp w6, w5
1610
+ bne .L180
1611
+.L181:
11211612 mov w0, w19
11221613 ldr x19, [sp, 16]
11231614 ldp x29, x30, [sp], 32
1615
+ hint 29 // autiasp
11241616 ret
1125
-.L140:
1126
- ldr w5, [x4]
1127
- tbnz w5, #31, .L139
1617
+.L185:
1618
+ lsl x4, x3, 4
1619
+ ldr w4, [x7, x4]
1620
+ tbnz w4, #31, .L184
1621
+ cmp w4, w5
1622
+ bcs .L184
1623
+ mov w5, w4
1624
+ mov w19, w6
1625
+.L184:
1626
+ add x3, x3, 1
1627
+ b .L183
1628
+.L188:
1629
+ ldr w4, [x0, 4]
1630
+ cmp w4, w3
1631
+ bcs .L187
1632
+ ldrh w6, [x0]
11281633 cmp w6, w5
1129
- bls .L139
1130
- mov w6, w5
1131
- mov w19, w3
1132
-.L139:
1133
- add w3, w3, 1
1134
- add x4, x4, 16
1135
- and w3, w3, 65535
1136
- b .L138
1137
-.L143:
1138
- ldr w6, [x0, 4]
1139
- cmp w3, w6
1140
- bls .L142
1141
- ldrh w5, [x0]
1142
- cmp w5, w4
1143
- csel w3, w3, w6, eq
1144
- csel w19, w19, w1, eq
1145
-.L142:
1146
- add w1, w1, 1
1634
+ csel w3, w3, w4, eq
1635
+ csel w19, w19, w2, eq
1636
+.L187:
1637
+ add w2, w2, 1
11471638 add x0, x0, 16
1148
- and w1, w1, 65535
1149
- b .L141
1639
+ and w2, w2, 65535
1640
+ b .L186
11501641 .size select_l2p_ram_region, .-select_l2p_ram_region
11511642 .align 2
11521643 .global FtlUpdateVaildLpn
11531644 .type FtlUpdateVaildLpn, %function
11541645 FtlUpdateVaildLpn:
1646
+ hint 34 // bti c
1647
+ .section __patchable_function_entries
1648
+ .align 3
1649
+ .8byte .LPFE32
1650
+ .text
1651
+.LPFE32:
1652
+ nop
1653
+ nop
11551654 adrp x1, .LANCHOR0
1156
- add x3, x1, :lo12:.LANCHOR0
1157
- ldrh w2, [x3, 2618]
1655
+ add x1, x1, :lo12:.LANCHOR0
1656
+ hint 25 // paciasp
1657
+ ldrh w2, [x1, 2618]
11581658 cmp w2, 4
1159
- bhi .L146
1160
- cbnz w0, .L146
1659
+ bhi .L191
1660
+ cbnz w0, .L191
11611661 add w2, w2, 1
1162
- strh w2, [x3, 2618]
1662
+ strh w2, [x1, 2618]
1663
+.L190:
1664
+ hint 29 // autiasp
11631665 ret
1164
-.L146:
1165
- add x0, x1, :lo12:.LANCHOR0
1666
+.L191:
1667
+ ldrh w4, [x1, 244]
1668
+ mov x0, 0
1669
+ ldr x5, [x1, 72]
11661670 mov w6, 65535
1167
- mov x1, 0
1168
- ldrh w4, [x0, 244]
1169
- ldr x5, [x0, 72]
1170
- strh wzr, [x0, 2618]
1171
- str wzr, [x0, 2620]
1172
-.L147:
1173
- cmp w4, w1, uxth
1174
- bhi .L149
1175
- ret
1176
-.L149:
1177
- ldrh w3, [x5, x1, lsl 1]
1671
+ strh wzr, [x1, 2618]
1672
+ str wzr, [x1, 2620]
1673
+.L192:
1674
+ cmp w4, w0, uxth
1675
+ bls .L190
1676
+ ldrh w3, [x5, x0, lsl 1]
11781677 cmp w3, w6
1179
- beq .L148
1180
- ldr w2, [x0, 2620]
1678
+ beq .L193
1679
+ ldr w2, [x1, 2620]
11811680 add w2, w2, w3
1182
- str w2, [x0, 2620]
1183
-.L148:
1184
- add x1, x1, 1
1185
- b .L147
1681
+ str w2, [x1, 2620]
1682
+.L193:
1683
+ add x0, x0, 1
1684
+ b .L192
11861685 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
11871686 .align 2
11881687 .global ftl_sb_update_avl_pages
11891688 .type ftl_sb_update_avl_pages, %function
11901689 ftl_sb_update_avl_pages:
1191
- and w6, w1, 65535
1192
- adrp x4, .LANCHOR0
1193
- add x1, x4, :lo12:.LANCHOR0
1194
- and w2, w2, 65535
1195
- strh wzr, [x0, 4]
1196
- ldrh w3, [x1, 236]
1197
- mov w1, 65535
1198
-.L152:
1199
- cmp w3, w2, uxth
1200
- bhi .L154
1201
- add x4, x4, :lo12:.LANCHOR0
1202
- ubfiz x3, x3, 1, 16
1203
- add x3, x3, 16
1204
- add x2, x0, 16
1205
- add x3, x0, x3
1206
- mov w5, 65535
1207
- ldrh w1, [x4, 306]
1208
- sub w1, w1, #1
1690
+ hint 34 // bti c
1691
+ .section __patchable_function_entries
1692
+ .align 3
1693
+ .8byte .LPFE33
1694
+ .text
1695
+.LPFE33:
1696
+ nop
1697
+ nop
1698
+ adrp x3, .LANCHOR0
1699
+ add x3, x3, :lo12:.LANCHOR0
12091700 and w1, w1, 65535
1210
- sub w1, w1, w6
1211
-.L155:
1212
- cmp x2, x3
1213
- bne .L157
1701
+ and w2, w2, 65535
1702
+ mov w6, 65535
1703
+ strh wzr, [x0, 4]
1704
+ ldrh w5, [x3, 236]
1705
+ hint 25 // paciasp
1706
+.L198:
1707
+ cmp w5, w2, uxth
1708
+ bhi .L200
1709
+ ldrh w2, [x3, 306]
1710
+ add x4, x0, 16
1711
+ mov w6, 65535
1712
+ sub w2, w2, w1
1713
+ mov x1, 0
1714
+ sub w2, w2, #1
1715
+ sxth w2, w2
1716
+.L201:
1717
+ cmp w5, w1, uxth
1718
+ bhi .L203
1719
+ hint 29 // autiasp
12141720 ret
1215
-.L154:
1216
- add x5, x0, x2, sxtw 1
1217
- ldrh w5, [x5, 16]
1218
- cmp w5, w1
1219
- beq .L153
1220
- ldrh w5, [x0, 4]
1221
- add w5, w5, 1
1222
- strh w5, [x0, 4]
1223
-.L153:
1224
- add w2, w2, 1
1225
- b .L152
1226
-.L157:
1227
- ldrh w4, [x2]
1228
- cmp w4, w5
1229
- beq .L156
1721
+.L200:
1722
+ add x4, x0, w2, sxtw 1
1723
+ ldrh w4, [x4, 16]
1724
+ cmp w4, w6
1725
+ beq .L199
12301726 ldrh w4, [x0, 4]
1231
- add w4, w1, w4
1727
+ add w4, w4, 1
12321728 strh w4, [x0, 4]
1233
-.L156:
1234
- add x2, x2, 2
1235
- b .L155
1729
+.L199:
1730
+ add w2, w2, 1
1731
+ b .L198
1732
+.L203:
1733
+ ldrh w3, [x4, x1, lsl 1]
1734
+ cmp w3, w6
1735
+ beq .L202
1736
+ ldrh w3, [x0, 4]
1737
+ add w3, w2, w3
1738
+ strh w3, [x0, 4]
1739
+.L202:
1740
+ add x1, x1, 1
1741
+ b .L201
12361742 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
12371743 .align 2
12381744 .global FtlSlcSuperblockCheck
12391745 .type FtlSlcSuperblockCheck, %function
12401746 FtlSlcSuperblockCheck:
1747
+ hint 34 // bti c
1748
+ .section __patchable_function_entries
1749
+ .align 3
1750
+ .8byte .LPFE34
1751
+ .text
1752
+.LPFE34:
1753
+ nop
1754
+ nop
12411755 ldrh w1, [x0, 4]
1242
- cbz w1, .L158
1243
- ldrh w2, [x0]
1244
- mov w1, 65535
1245
- cmp w2, w1
1246
- beq .L158
1247
- ldrb w2, [x0, 6]
1248
- add x2, x2, 8
1249
- ldrh w3, [x0, x2, lsl 1]
1250
- adrp x2, .LANCHOR0+236
1251
- ldrh w4, [x2, #:lo12:.LANCHOR0+236]
1252
- mov w2, w1
1253
-.L161:
1254
- cmp w3, w2
1255
- beq .L163
1256
-.L158:
1756
+ hint 25 // paciasp
1757
+ cbz w1, .L205
1758
+ ldrh w1, [x0]
1759
+ mov w2, 65535
1760
+ cmp w1, w2
1761
+ beq .L205
1762
+ ldrb w1, [x0, 6]
1763
+ adrp x3, .LANCHOR0+236
1764
+ add x1, x1, 8
1765
+ ldrh w3, [x3, #:lo12:.LANCHOR0+236]
1766
+ ldrh w1, [x0, x1, lsl 1]
1767
+.L208:
1768
+ cmp w1, w2
1769
+ beq .L210
1770
+.L205:
1771
+ hint 29 // autiasp
12571772 ret
1258
-.L163:
1773
+.L210:
12591774 ldrb w1, [x0, 6]
12601775 add w1, w1, 1
12611776 and w1, w1, 255
12621777 strb w1, [x0, 6]
1263
- cmp w1, w4
1264
- bne .L162
1778
+ cmp w1, w3
1779
+ bne .L209
12651780 ldrh w1, [x0, 2]
12661781 strb wzr, [x0, 6]
12671782 add w1, w1, 1
12681783 strh w1, [x0, 2]
1269
-.L162:
1784
+.L209:
12701785 ldrb w1, [x0, 6]
12711786 add x1, x1, 8
1272
- ldrh w3, [x0, x1, lsl 1]
1273
- b .L161
1787
+ ldrh w1, [x0, x1, lsl 1]
1788
+ b .L208
12741789 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
12751790 .align 2
12761791 .global make_superblock
12771792 .type make_superblock, %function
12781793 make_superblock:
1279
- stp x29, x30, [sp, -32]!
1280
- add x29, sp, 0
1794
+ hint 34 // bti c
1795
+ .section __patchable_function_entries
1796
+ .align 3
1797
+ .8byte .LPFE35
1798
+ .text
1799
+.LPFE35:
1800
+ nop
1801
+ nop
1802
+ hint 25 // paciasp
1803
+ stp x29, x30, [sp, -96]!
1804
+ mov x29, sp
12811805 stp x19, x20, [sp, 16]
1282
- mov x19, x0
12831806 adrp x20, .LANCHOR0
1284
- add x0, x20, :lo12:.LANCHOR0
1285
- ldrh w1, [x19]
1286
- ldrh w0, [x0, 244]
1807
+ add x20, x20, :lo12:.LANCHOR0
1808
+ stp x21, x22, [sp, 32]
1809
+ mov x19, x0
1810
+ stp x23, x24, [sp, 48]
1811
+ stp x25, x26, [sp, 64]
1812
+ str x27, [sp, 80]
1813
+ ldrh w1, [x0]
1814
+ ldrh w0, [x20, 244]
12871815 cmp w1, w0
1288
- bcc .L165
1816
+ bcc .L213
12891817 adrp x1, .LANCHOR1
12901818 add x1, x1, :lo12:.LANCHOR1
1291
- adrp x0, .LC8
1819
+ adrp x0, .LC9
1820
+ add x1, x1, 95
1821
+ add x0, x0, :lo12:.LC9
12921822 mov w2, 2157
1293
- add x1, x1, 120
1294
- add x0, x0, :lo12:.LC8
12951823 bl sftl_printk
1296
-.L165:
1297
- add x0, x20, :lo12:.LANCHOR0
1298
- add x6, x19, 16
1299
- add x7, x0, 264
1824
+.L213:
1825
+ ldrh w26, [x20, 236]
1826
+ add x23, x19, 16
1827
+ add x27, x20, 264
1828
+ mov x22, 0
1829
+ mov w25, -1
13001830 strh wzr, [x19, 4]
13011831 strb wzr, [x19, 7]
1302
- mov x5, 0
1303
- ldrh w8, [x0, 236]
1304
- mov w9, -1
1305
-.L166:
1306
- cmp w8, w5, uxth
1307
- bhi .L168
1308
- add x20, x20, :lo12:.LANCHOR0
1309
- ldrb w0, [x19, 7]
1310
- strb wzr, [x19, 9]
1311
- ldrh w1, [x20, 306]
1312
- mul w0, w0, w1
1832
+.L214:
13131833 ldrh w1, [x19]
1314
- strh w0, [x19, 4]
1834
+ ldrb w21, [x19, 7]
1835
+ cmp w26, w22, uxth
1836
+ bhi .L216
1837
+ ldrh w0, [x20, 306]
1838
+ ubfiz x1, x1, 1, 16
1839
+ strb wzr, [x19, 9]
1840
+ mul w21, w21, w0
1841
+ strh w21, [x19, 4]
13151842 ldr x0, [x20, 2600]
1316
- ldrh w1, [x0, x1, lsl 1]
1843
+ ldp x21, x22, [sp, 32]
1844
+ ldrh w1, [x0, x1]
13171845 mov w0, 10000
1846
+ ldp x23, x24, [sp, 48]
13181847 cmp w1, w0
1319
- bls .L169
1320
- mov w0, 1
1848
+ cset w0, hi
1849
+ ldp x25, x26, [sp, 64]
13211850 strb w0, [x19, 9]
1322
-.L169:
13231851 mov w0, 0
13241852 ldp x19, x20, [sp, 16]
1325
- ldp x29, x30, [sp], 32
1853
+ ldr x27, [sp, 80]
1854
+ ldp x29, x30, [sp], 96
1855
+ hint 29 // autiasp
13261856 ret
1327
-.L168:
1328
- ldrh w1, [x19]
1329
- ldrb w0, [x7, x5]
1857
+.L216:
1858
+ ldrb w0, [x27, x22]
13301859 bl V2P_block
1331
- mov w4, w0
1332
- strh w9, [x6]
1860
+ strh w25, [x23]
1861
+ mov w24, w0
13331862 bl FtlBbmIsBadBlock
1334
- cbnz w0, .L167
1335
- strh w4, [x6]
1336
- ldrb w0, [x19, 7]
1337
- add w0, w0, 1
1338
- strb w0, [x19, 7]
1339
-.L167:
1340
- add x5, x5, 1
1341
- add x6, x6, 2
1342
- b .L166
1863
+ cbnz w0, .L215
1864
+ strh w24, [x23]
1865
+ add w21, w21, 1
1866
+ strb w21, [x19, 7]
1867
+.L215:
1868
+ add x22, x22, 1
1869
+ add x23, x23, 2
1870
+ b .L214
13431871 .size make_superblock, .-make_superblock
13441872 .align 2
13451873 .global update_multiplier_value
13461874 .type update_multiplier_value, %function
13471875 update_multiplier_value:
1348
- and w8, w0, 65535
1349
- adrp x0, .LANCHOR0
1350
- add x1, x0, :lo12:.LANCHOR0
1351
- mov x9, 0
1352
- mov w6, 0
1353
- mov x5, x0
1354
- add x7, x1, 264
1355
- ldrh w10, [x1, 236]
1356
- ldrh w11, [x1, 306]
1357
- cmp w10, w9, uxth
1358
- bhi .L183
1359
- cbz w6, .L181
1876
+ hint 34 // bti c
1877
+ .section __patchable_function_entries
1878
+ .align 3
1879
+ .8byte .LPFE36
1880
+ .text
1881
+.LPFE36:
1882
+ nop
1883
+ nop
1884
+ hint 25 // paciasp
1885
+ stp x29, x30, [sp, -80]!
1886
+ mov x29, sp
1887
+ stp x19, x20, [sp, 16]
1888
+ adrp x20, .LANCHOR0
1889
+ add x20, x20, :lo12:.LANCHOR0
1890
+ stp x23, x24, [sp, 48]
1891
+ mov w19, 0
1892
+ ldrh w23, [x20, 236]
1893
+ ldrh w24, [x20, 306]
1894
+ stp x21, x22, [sp, 32]
1895
+ and w21, w0, 65535
1896
+ mov x22, 0
1897
+ str x25, [sp, 64]
1898
+ add x25, x20, 264
1899
+.L220:
1900
+ cmp w23, w22, uxth
1901
+ bhi .L222
1902
+ cbz w19, .L223
13601903 mov w0, 32768
1361
- sdiv w6, w0, w6
1362
-.L182:
1363
- add x0, x5, :lo12:.LANCHOR0
1904
+ udiv w19, w0, w19
1905
+.L223:
1906
+ ldr x0, [x20, 2560]
13641907 mov w1, 6
1365
- ldr x0, [x0, 2560]
1366
- umaddl x8, w8, w1, x0
1908
+ umaddl x21, w21, w1, x0
13671909 mov w0, 0
1368
- strh w6, [x8, 4]
1910
+ strh w19, [x21, 4]
1911
+ ldp x19, x20, [sp, 16]
1912
+ ldp x21, x22, [sp, 32]
1913
+ ldp x23, x24, [sp, 48]
1914
+ ldr x25, [sp, 64]
1915
+ ldp x29, x30, [sp], 80
1916
+ hint 29 // autiasp
13691917 ret
1370
-.L176:
1371
- mov w6, 0
1372
- b .L175
1373
-.L181:
1374
- mov w6, 0
1375
- b .L182
1376
-.L183:
1377
- stp x29, x30, [sp, -16]!
1378
- add x29, sp, 0
1379
-.L174:
1380
- ldrb w0, [x7, x9]
1381
- mov w1, w8
1918
+.L222:
1919
+ ldrb w0, [x25, x22]
1920
+ mov w1, w21
13821921 bl V2P_block
13831922 bl FtlBbmIsBadBlock
1384
- cbnz w0, .L173
1385
- add w6, w6, w11
1386
- and w6, w6, 65535
1387
-.L173:
1388
- add x9, x9, 1
1389
- cmp w10, w9, uxth
1390
- bhi .L174
1391
- cbz w6, .L176
1392
- mov w0, 32768
1393
- sdiv w6, w0, w6
1394
-.L175:
1395
- add x0, x5, :lo12:.LANCHOR0
1396
- mov w1, 6
1397
- ldr x0, [x0, 2560]
1398
- umaddl x8, w8, w1, x0
1399
- mov w0, 0
1400
- strh w6, [x8, 4]
1401
- ldp x29, x30, [sp], 16
1402
- ret
1923
+ cbnz w0, .L221
1924
+ add w19, w24, w19
1925
+ and w19, w19, 65535
1926
+.L221:
1927
+ add x22, x22, 1
1928
+ b .L220
14031929 .size update_multiplier_value, .-update_multiplier_value
14041930 .align 2
14051931 .global GetFreeBlockMinEraseCount
14061932 .type GetFreeBlockMinEraseCount, %function
14071933 GetFreeBlockMinEraseCount:
1934
+ hint 34 // bti c
1935
+ .section __patchable_function_entries
1936
+ .align 3
1937
+ .8byte .LPFE37
1938
+ .text
1939
+.LPFE37:
1940
+ nop
1941
+ nop
14081942 adrp x1, .LANCHOR0
14091943 add x1, x1, :lo12:.LANCHOR0
1944
+ hint 25 // paciasp
14101945 ldr x0, [x1, 2592]
1411
- cbz x0, .L186
1946
+ cbz x0, .L230
14121947 ldr x2, [x1, 2560]
14131948 ldr x1, [x1, 2600]
14141949 sub x0, x0, x2
....@@ -1418,842 +1953,1040 @@
14181953 mul x0, x0, x2
14191954 and x0, x0, 65535
14201955 ldrh w0, [x1, x0, lsl 1]
1956
+.L229:
1957
+ hint 29 // autiasp
14211958 ret
1422
-.L186:
1959
+.L230:
14231960 mov w0, 0
1424
- ret
1961
+ b .L229
14251962 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
14261963 .align 2
14271964 .global GetFreeBlockMaxEraseCount
14281965 .type GetFreeBlockMaxEraseCount, %function
14291966 GetFreeBlockMaxEraseCount:
1967
+ hint 34 // bti c
1968
+ .section __patchable_function_entries
1969
+ .align 3
1970
+ .8byte .LPFE38
1971
+ .text
1972
+.LPFE38:
1973
+ nop
1974
+ nop
14301975 adrp x2, .LANCHOR0
1431
- add x4, x2, :lo12:.LANCHOR0
1976
+ add x2, x2, :lo12:.LANCHOR0
1977
+ hint 25 // paciasp
1978
+ ldr x1, [x2, 2592]
1979
+ cbz x1, .L238
1980
+ ldrh w3, [x2, 228]
1981
+ mov w4, 7
14321982 and w0, w0, 65535
1433
- ldr x1, [x4, 2592]
1434
- cbz x1, .L194
1435
- ldrh w3, [x4, 228]
1436
- mov w5, 7
1437
- ldr x4, [x4, 2560]
1438
- mov w6, 6
1439
- mov w7, 65535
1440
- sub x1, x1, x4
1441
- mul w3, w3, w5
1442
- asr x1, x1, 1
1983
+ mul w3, w3, w4
14431984 asr w3, w3, 3
14441985 cmp w0, w3
1445
- csel w0, w3, w0, gt
1986
+ ble .L234
1987
+ and w0, w3, 65535
1988
+.L234:
1989
+ ldr x4, [x2, 2560]
14461990 mov x3, -6148914691236517206
14471991 movk x3, 0xaaab, lsl 0
1992
+ mov w6, 6
1993
+ sub x1, x1, x4
1994
+ mov w7, 65535
1995
+ asr x1, x1, 1
14481996 mul x1, x1, x3
14491997 mov w3, 0
14501998 and w1, w1, 65535
1451
-.L190:
1999
+.L235:
14522000 cmp w0, w3
1453
- beq .L193
2001
+ bne .L237
2002
+.L236:
2003
+ ldr x0, [x2, 2600]
2004
+ ubfiz x1, x1, 1, 16
2005
+ ldrh w0, [x0, x1]
2006
+.L233:
2007
+ hint 29 // autiasp
2008
+ ret
2009
+.L237:
14542010 umull x5, w1, w6
14552011 ldrh w5, [x4, x5]
14562012 cmp w5, w7
1457
- bne .L191
1458
-.L193:
1459
- add x2, x2, :lo12:.LANCHOR0
1460
- ubfiz x1, x1, 1, 16
1461
- ldr x0, [x2, 2600]
1462
- ldrh w0, [x0, x1]
1463
- ret
1464
-.L191:
2013
+ beq .L236
14652014 add w3, w3, 1
14662015 mov w1, w5
14672016 and w3, w3, 65535
1468
- b .L190
1469
-.L194:
2017
+ b .L235
2018
+.L238:
14702019 mov w0, 0
1471
- ret
2020
+ b .L233
14722021 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
2022
+ .section .rodata.str1.1
2023
+.LC10:
2024
+ .string "FLASH INFO:\n"
2025
+.LC11:
2026
+ .string "Device Capacity: %d MB\n"
2027
+.LC12:
2028
+ .string "FTL INFO:\n"
2029
+.LC13:
2030
+ .string "g_MaxLpn = 0x%x\n"
2031
+.LC14:
2032
+ .string "g_VaildLpn = 0x%x\n"
2033
+.LC15:
2034
+ .string "read_page_count = 0x%x\n"
2035
+.LC16:
2036
+ .string "discard_page_count = 0x%x\n"
2037
+.LC17:
2038
+ .string "write_page_count = 0x%x\n"
2039
+.LC18:
2040
+ .string "cache_write_count = 0x%x\n"
2041
+.LC19:
2042
+ .string "l2p_write_count = 0x%x\n"
2043
+.LC20:
2044
+ .string "gc_page_count = 0x%x\n"
2045
+.LC21:
2046
+ .string "totle_write = %d MB\n"
2047
+.LC22:
2048
+ .string "totle_read = %d MB\n"
2049
+.LC23:
2050
+ .string "GSV = 0x%x\n"
2051
+.LC24:
2052
+ .string "GDV = 0x%x\n"
2053
+.LC25:
2054
+ .string "bad blk num = %d\n"
2055
+.LC26:
2056
+ .string "free_superblocks = 0x%x\n"
2057
+.LC27:
2058
+ .string "mlc_EC = 0x%x\n"
2059
+.LC28:
2060
+ .string "slc_EC = 0x%x\n"
2061
+.LC29:
2062
+ .string "avg_EC = 0x%x\n"
2063
+.LC30:
2064
+ .string "sys_EC = 0x%x\n"
2065
+.LC31:
2066
+ .string "max_EC = 0x%x\n"
2067
+.LC32:
2068
+ .string "min_EC = 0x%x\n"
2069
+.LC33:
2070
+ .string "PLT = 0x%x\n"
2071
+.LC34:
2072
+ .string "POT = 0x%x\n"
2073
+.LC35:
2074
+ .string "MaxSector = 0x%x\n"
2075
+.LC36:
2076
+ .string "init_sys_blks_pp = 0x%x\n"
2077
+.LC37:
2078
+ .string "sys_blks_pp = 0x%x\n"
2079
+.LC38:
2080
+ .string "free sysblock = 0x%x\n"
2081
+.LC39:
2082
+ .string "data_blks_pp = 0x%x\n"
2083
+.LC40:
2084
+ .string "data_op_blks_pp = 0x%x\n"
2085
+.LC41:
2086
+ .string "max_data_blks = 0x%x\n"
2087
+.LC42:
2088
+ .string "Sys.id = 0x%x\n"
2089
+.LC43:
2090
+ .string "Bbt.id = 0x%x\n"
2091
+.LC44:
2092
+ .string "ACT.page = 0x%x\n"
2093
+.LC45:
2094
+ .string "ACT.plane = 0x%x\n"
2095
+.LC46:
2096
+ .string "ACT.id = 0x%x\n"
2097
+.LC47:
2098
+ .string "ACT.mode = 0x%x\n"
2099
+.LC48:
2100
+ .string "ACT.a_pages = 0x%x\n"
2101
+.LC49:
2102
+ .string "ACT VPC = 0x%x\n"
2103
+.LC50:
2104
+ .string "BUF.page = 0x%x\n"
2105
+.LC51:
2106
+ .string "BUF.plane = 0x%x\n"
2107
+.LC52:
2108
+ .string "BUF.id = 0x%x\n"
2109
+.LC53:
2110
+ .string "BUF.mode = 0x%x\n"
2111
+.LC54:
2112
+ .string "BUF.a_pages = 0x%x\n"
2113
+.LC55:
2114
+ .string "BUF VPC = 0x%x\n"
2115
+.LC56:
2116
+ .string "TMP.page = 0x%x\n"
2117
+.LC57:
2118
+ .string "TMP.plane = 0x%x\n"
2119
+.LC58:
2120
+ .string "TMP.id = 0x%x\n"
2121
+.LC59:
2122
+ .string "TMP.mode = 0x%x\n"
2123
+.LC60:
2124
+ .string "TMP.a_pages = 0x%x\n"
2125
+.LC61:
2126
+ .string "GC.page = 0x%x\n"
2127
+.LC62:
2128
+ .string "GC.plane = 0x%x\n"
2129
+.LC63:
2130
+ .string "GC.id = 0x%x\n"
2131
+.LC64:
2132
+ .string "GC.mode = 0x%x\n"
2133
+.LC65:
2134
+ .string "GC.a_pages = 0x%x\n"
2135
+.LC66:
2136
+ .string "WR_CHK = %x %x %x\n"
2137
+.LC67:
2138
+ .string "Read Err Cnt = 0x%x\n"
2139
+.LC68:
2140
+ .string "Prog Err Cnt = 0x%x\n"
2141
+.LC69:
2142
+ .string "gc_free_blk_th= 0x%x\n"
2143
+.LC70:
2144
+ .string "gc_merge_free_blk_th= 0x%x\n"
2145
+.LC71:
2146
+ .string "gc_skip_write_count= 0x%x\n"
2147
+.LC72:
2148
+ .string "gc_blk_index= 0x%x\n"
2149
+.LC73:
2150
+ .string "free min EC= 0x%x\n"
2151
+.LC74:
2152
+ .string "free max EC= 0x%x\n"
2153
+.LC75:
2154
+ .string "GC__SB VPC = 0x%x\n"
2155
+.LC76:
2156
+ .string "%d. [0x%x]=0x%x 0x%x 0x%x\n"
2157
+.LC77:
2158
+ .string "free %d. [0x%x] 0x%x 0x%x\n"
2159
+ .text
14732160 .align 2
14742161 .global FtlPrintInfo2buf
14752162 .type FtlPrintInfo2buf, %function
14762163 FtlPrintInfo2buf:
1477
- stp x29, x30, [sp, -96]!
1478
- adrp x1, .LC9
1479
- add x1, x1, :lo12:.LC9
1480
- add x29, sp, 0
1481
- stp x21, x22, [sp, 32]
1482
- mov x22, x0
1483
- stp x23, x24, [sp, 48]
1484
- adrp x23, .LANCHOR0
1485
- add x21, x23, :lo12:.LANCHOR0
2164
+ hint 34 // bti c
2165
+ .section __patchable_function_entries
2166
+ .align 3
2167
+ .8byte .LPFE39
2168
+ .text
2169
+.LPFE39:
2170
+ nop
2171
+ nop
2172
+ hint 25 // paciasp
2173
+ stp x29, x30, [sp, -80]!
2174
+ adrp x1, .LC10
2175
+ mov x29, sp
14862176 stp x19, x20, [sp, 16]
2177
+ adrp x19, .LANCHOR0
2178
+ add x19, x19, :lo12:.LANCHOR0
2179
+ add x1, x1, :lo12:.LC10
2180
+ stp x21, x22, [sp, 32]
2181
+ mov x21, x0
2182
+ stp x23, x24, [sp, 48]
2183
+ add x20, x21, 12
14872184 stp x25, x26, [sp, 64]
1488
- add x20, x0, 12
1489
- str x27, [sp, 80]
14902185 bl strcpy
1491
- ldr w3, [x21, 320]
1492
- adrp x2, .LC10
1493
- add x2, x2, :lo12:.LC10
2186
+ ldr w3, [x19, 320]
2187
+ adrp x2, .LC11
2188
+ add x2, x2, :lo12:.LC11
2189
+ mov x0, x20
14942190 mov x1, 64
1495
- mov x0, x20
14962191 bl snprintf
1497
- add x20, x20, x0, sxtw
2192
+ add x20, x20, w0, sxtw
14982193 mov x0, x20
1499
- adrp x1, .LC11
1500
- add x1, x1, :lo12:.LC11
2194
+ adrp x1, .LC12
2195
+ add x1, x1, :lo12:.LC12
15012196 bl strcpy
1502
- ldr w3, [x21, 2624]
2197
+ ldr w3, [x19, 2624]
15032198 add x20, x20, 10
1504
- mov x1, 64
15052199 mov x0, x20
1506
- adrp x2, .LC12
1507
- add x2, x2, :lo12:.LC12
1508
- bl snprintf
1509
- add x20, x20, x0, sxtw
1510
- ldr w3, [x21, 2620]
15112200 mov x1, 64
1512
- mov x0, x20
15132201 adrp x2, .LC13
15142202 add x2, x2, :lo12:.LC13
15152203 bl snprintf
1516
- add x20, x20, x0, sxtw
1517
- ldr w3, [x21, 2628]
2204
+ add x22, x20, w0, sxtw
2205
+ ldr w3, [x19, 2620]
2206
+ mov x0, x22
15182207 mov x1, 64
1519
- mov x0, x20
15202208 adrp x2, .LC14
15212209 add x2, x2, :lo12:.LC14
15222210 bl snprintf
1523
- add x20, x20, x0, sxtw
1524
- ldr w3, [x21, 2632]
2211
+ add x22, x22, w0, sxtw
2212
+ ldr w3, [x19, 2628]
2213
+ mov x0, x22
15252214 mov x1, 64
1526
- mov x0, x20
15272215 adrp x2, .LC15
15282216 add x2, x2, :lo12:.LC15
15292217 bl snprintf
1530
- add x20, x20, x0, sxtw
1531
- ldr w3, [x21, 2636]
2218
+ add x22, x22, w0, sxtw
2219
+ ldr w3, [x19, 2632]
2220
+ mov x0, x22
15322221 mov x1, 64
1533
- mov x0, x20
15342222 adrp x2, .LC16
15352223 add x2, x2, :lo12:.LC16
15362224 bl snprintf
1537
- add x20, x20, x0, sxtw
1538
- ldr w3, [x21, 2640]
2225
+ add x22, x22, w0, sxtw
2226
+ ldr w3, [x19, 2636]
2227
+ mov x0, x22
15392228 mov x1, 64
1540
- mov x0, x20
15412229 adrp x2, .LC17
15422230 add x2, x2, :lo12:.LC17
15432231 bl snprintf
1544
- add x20, x20, x0, sxtw
1545
- ldr w3, [x21, 2644]
2232
+ add x22, x22, w0, sxtw
2233
+ ldr w3, [x19, 2640]
2234
+ mov x0, x22
15462235 mov x1, 64
1547
- mov x0, x20
15482236 adrp x2, .LC18
15492237 add x2, x2, :lo12:.LC18
15502238 bl snprintf
1551
- add x20, x20, x0, sxtw
1552
- ldr w3, [x21, 2648]
2239
+ add x22, x22, w0, sxtw
2240
+ ldr w3, [x19, 2644]
2241
+ mov x0, x22
15532242 mov x1, 64
1554
- mov x0, x20
15552243 adrp x2, .LC19
15562244 add x2, x2, :lo12:.LC19
15572245 bl snprintf
1558
- add x20, x20, x0, sxtw
1559
- ldr w3, [x21, 2652]
2246
+ add x22, x22, w0, sxtw
2247
+ ldr w3, [x19, 2648]
2248
+ mov x0, x22
15602249 mov x1, 64
1561
- mov x0, x20
15622250 adrp x2, .LC20
15632251 add x2, x2, :lo12:.LC20
1564
- lsr w3, w3, 11
15652252 bl snprintf
1566
- ldr w3, [x21, 2656]
1567
- add x20, x20, x0, sxtw
2253
+ add x22, x22, w0, sxtw
2254
+ ldr w3, [x19, 2652]
2255
+ mov x0, x22
15682256 mov x1, 64
1569
- mov x0, x20
15702257 adrp x2, .LC21
15712258 add x2, x2, :lo12:.LC21
15722259 lsr w3, w3, 11
15732260 bl snprintf
1574
- ldr w3, [x21, 2660]
1575
- add x20, x20, x0, sxtw
2261
+ ldr w3, [x19, 2656]
2262
+ add x22, x22, w0, sxtw
2263
+ mov x0, x22
15762264 mov x1, 64
1577
- mov x0, x20
15782265 adrp x2, .LC22
15792266 add x2, x2, :lo12:.LC22
2267
+ lsr w3, w3, 11
15802268 bl snprintf
1581
- add x20, x20, x0, sxtw
1582
- ldr w3, [x21, 2664]
2269
+ ldr w3, [x19, 2660]
2270
+ add x22, x22, w0, sxtw
2271
+ mov x0, x22
15832272 mov x1, 64
1584
- mov x0, x20
15852273 adrp x2, .LC23
15862274 add x2, x2, :lo12:.LC23
15872275 bl snprintf
1588
- add x20, x20, x0, sxtw
1589
- ldrh w3, [x21, 366]
2276
+ add x22, x22, w0, sxtw
2277
+ ldr w3, [x19, 2664]
2278
+ mov x0, x22
15902279 mov x1, 64
1591
- mov x0, x20
15922280 adrp x2, .LC24
15932281 add x2, x2, :lo12:.LC24
15942282 bl snprintf
1595
- add x20, x20, x0, sxtw
1596
- ldrh w3, [x21, 228]
2283
+ add x22, x22, w0, sxtw
2284
+ ldrh w3, [x19, 366]
2285
+ mov x0, x22
15972286 mov x1, 64
1598
- mov x0, x20
15992287 adrp x2, .LC25
16002288 add x2, x2, :lo12:.LC25
16012289 bl snprintf
1602
- add x20, x20, x0, sxtw
1603
- ldr w3, [x21, 2668]
2290
+ add x22, x22, w0, sxtw
2291
+ ldrh w3, [x19, 228]
2292
+ mov x0, x22
16042293 mov x1, 64
1605
- mov x0, x20
16062294 adrp x2, .LC26
16072295 add x2, x2, :lo12:.LC26
16082296 bl snprintf
1609
- add x20, x20, x0, sxtw
1610
- ldr w3, [x21, 2672]
2297
+ add x22, x22, w0, sxtw
2298
+ ldr w3, [x19, 2668]
2299
+ mov x0, x22
16112300 mov x1, 64
1612
- mov x0, x20
16132301 adrp x2, .LC27
16142302 add x2, x2, :lo12:.LC27
16152303 bl snprintf
1616
- add x20, x20, x0, sxtw
1617
- ldr w3, [x21, 2676]
2304
+ add x22, x22, w0, sxtw
2305
+ ldr w3, [x19, 2672]
2306
+ mov x0, x22
16182307 mov x1, 64
1619
- mov x0, x20
16202308 adrp x2, .LC28
16212309 add x2, x2, :lo12:.LC28
16222310 bl snprintf
1623
- add x20, x20, x0, sxtw
1624
- ldr w3, [x21, 2680]
2311
+ add x22, x22, w0, sxtw
2312
+ ldr w3, [x19, 2676]
2313
+ mov x0, x22
16252314 mov x1, 64
1626
- mov x0, x20
16272315 adrp x2, .LC29
16282316 add x2, x2, :lo12:.LC29
16292317 bl snprintf
1630
- add x20, x20, x0, sxtw
1631
- ldr w3, [x21, 2684]
2318
+ add x22, x22, w0, sxtw
2319
+ ldr w3, [x19, 2680]
2320
+ mov x0, x22
16322321 mov x1, 64
1633
- mov x0, x20
16342322 adrp x2, .LC30
16352323 add x2, x2, :lo12:.LC30
16362324 bl snprintf
1637
- add x20, x20, x0, sxtw
1638
- ldr w3, [x21, 2688]
2325
+ add x22, x22, w0, sxtw
2326
+ ldr w3, [x19, 2684]
2327
+ mov x0, x22
16392328 mov x1, 64
1640
- mov x0, x20
16412329 adrp x2, .LC31
16422330 add x2, x2, :lo12:.LC31
16432331 bl snprintf
1644
- add x20, x20, x0, sxtw
1645
- ldrh w3, [x21, 2542]
2332
+ add x22, x22, w0, sxtw
2333
+ ldr w3, [x19, 2688]
2334
+ mov x0, x22
16462335 mov x1, 64
1647
- mov x0, x20
16482336 adrp x2, .LC32
16492337 add x2, x2, :lo12:.LC32
16502338 bl snprintf
1651
- add x20, x20, x0, sxtw
1652
- ldrh w3, [x21, 2540]
2339
+ add x22, x22, w0, sxtw
2340
+ ldrh w3, [x19, 2542]
2341
+ mov x0, x22
16532342 mov x1, 64
1654
- mov x0, x20
16552343 adrp x2, .LC33
16562344 add x2, x2, :lo12:.LC33
16572345 bl snprintf
1658
- add x20, x20, x0, sxtw
1659
- ldr w3, [x21, 344]
2346
+ add x22, x22, w0, sxtw
2347
+ ldrh w3, [x19, 2540]
2348
+ mov x0, x22
16602349 mov x1, 64
1661
- mov x0, x20
16622350 adrp x2, .LC34
16632351 add x2, x2, :lo12:.LC34
16642352 bl snprintf
1665
- add x20, x20, x0, sxtw
1666
- ldr w3, [x21, 336]
2353
+ add x22, x22, w0, sxtw
2354
+ ldr w3, [x19, 344]
2355
+ mov x0, x22
16672356 mov x1, 64
1668
- mov x0, x20
16692357 adrp x2, .LC35
16702358 add x2, x2, :lo12:.LC35
16712359 bl snprintf
1672
- add x20, x20, x0, sxtw
1673
- ldr w3, [x21, 232]
2360
+ add x22, x22, w0, sxtw
2361
+ ldr w3, [x19, 336]
2362
+ mov x0, x22
16742363 mov x1, 64
1675
- mov x0, x20
16762364 adrp x2, .LC36
16772365 add x2, x2, :lo12:.LC36
16782366 bl snprintf
1679
- add x20, x20, x0, sxtw
1680
- ldrh w3, [x21, 462]
2367
+ add x22, x22, w0, sxtw
2368
+ ldr w3, [x19, 232]
2369
+ mov x0, x22
16812370 mov x1, 64
1682
- mov x0, x20
16832371 adrp x2, .LC37
16842372 add x2, x2, :lo12:.LC37
16852373 bl snprintf
1686
- add x20, x20, x0, sxtw
1687
- ldrh w3, [x21, 244]
2374
+ add x22, x22, w0, sxtw
2375
+ ldrh w3, [x19, 462]
2376
+ mov x0, x22
16882377 mov x1, 64
1689
- mov x0, x20
16902378 adrp x2, .LC38
16912379 add x2, x2, :lo12:.LC38
16922380 bl snprintf
1693
- add x20, x20, x0, sxtw
1694
- ldrh w3, [x21, 2692]
2381
+ add x22, x22, w0, sxtw
2382
+ ldrh w3, [x19, 244]
2383
+ mov x0, x22
16952384 mov x1, 64
1696
- mov x0, x20
16972385 adrp x2, .LC39
16982386 add x2, x2, :lo12:.LC39
16992387 bl snprintf
1700
- add x20, x20, x0, sxtw
1701
- ldr w3, [x21, 248]
2388
+ add x22, x22, w0, sxtw
2389
+ ldrh w3, [x19, 2692]
2390
+ mov x0, x22
17022391 mov x1, 64
1703
- mov x0, x20
17042392 adrp x2, .LC40
17052393 add x2, x2, :lo12:.LC40
17062394 bl snprintf
1707
- add x20, x20, x0, sxtw
1708
- ldrh w3, [x21, 2696]
2395
+ add x22, x22, w0, sxtw
2396
+ ldr w3, [x19, 248]
2397
+ mov x0, x22
17092398 mov x1, 64
1710
- mov x0, x20
17112399 adrp x2, .LC41
17122400 add x2, x2, :lo12:.LC41
17132401 bl snprintf
1714
- add x20, x20, x0, sxtw
1715
- ldrh w3, [x21, 360]
2402
+ add x22, x22, w0, sxtw
2403
+ ldrh w3, [x19, 2696]
2404
+ mov x0, x22
17162405 mov x1, 64
1717
- mov x0, x20
17182406 adrp x2, .LC42
17192407 add x2, x2, :lo12:.LC42
17202408 bl snprintf
1721
- add x20, x20, x0, sxtw
1722
- ldrh w3, [x21, 26]
2409
+ add x22, x22, w0, sxtw
2410
+ ldrh w3, [x19, 360]
2411
+ mov x0, x22
17232412 mov x1, 64
1724
- mov x0, x20
17252413 adrp x2, .LC43
17262414 add x2, x2, :lo12:.LC43
17272415 bl snprintf
1728
- add x20, x20, x0, sxtw
1729
- ldrb w3, [x21, 30]
2416
+ add x22, x22, w0, sxtw
2417
+ ldrh w3, [x19, 26]
2418
+ mov x0, x22
17302419 mov x1, 64
1731
- mov x0, x20
17322420 adrp x2, .LC44
17332421 add x2, x2, :lo12:.LC44
17342422 bl snprintf
1735
- add x20, x20, x0, sxtw
1736
- ldrh w3, [x21, 24]
2423
+ add x22, x22, w0, sxtw
2424
+ ldrb w3, [x19, 30]
2425
+ mov x0, x22
17372426 mov x1, 64
1738
- mov x0, x20
17392427 adrp x2, .LC45
17402428 add x2, x2, :lo12:.LC45
17412429 bl snprintf
1742
- add x20, x20, x0, sxtw
1743
- ldrb w3, [x21, 32]
2430
+ add x22, x22, w0, sxtw
2431
+ ldrh w3, [x19, 24]
2432
+ mov x0, x22
17442433 mov x1, 64
1745
- mov x0, x20
17462434 adrp x2, .LC46
17472435 add x2, x2, :lo12:.LC46
17482436 bl snprintf
1749
- add x20, x20, x0, sxtw
1750
- ldrh w3, [x21, 28]
2437
+ add x22, x22, w0, sxtw
2438
+ ldrb w3, [x19, 32]
2439
+ mov x0, x22
17512440 mov x1, 64
1752
- mov x0, x20
17532441 adrp x2, .LC47
17542442 add x2, x2, :lo12:.LC47
17552443 bl snprintf
1756
- add x20, x20, x0, sxtw
1757
- ldrh w1, [x21, 24]
2444
+ add x22, x22, w0, sxtw
2445
+ ldrh w3, [x19, 28]
2446
+ mov x0, x22
2447
+ mov x1, 64
17582448 adrp x2, .LC48
1759
- ldr x0, [x21, 72]
17602449 add x2, x2, :lo12:.LC48
1761
- ldrh w3, [x0, x1, lsl 1]
1762
- mov x1, 64
1763
- mov x0, x20
17642450 bl snprintf
1765
- add x20, x20, x0, sxtw
1766
- ldrh w3, [x21, 82]
1767
- mov x1, 64
1768
- mov x0, x20
2451
+ add x22, x22, w0, sxtw
2452
+ ldrh w1, [x19, 24]
17692453 adrp x2, .LC49
2454
+ ldr x0, [x19, 72]
17702455 add x2, x2, :lo12:.LC49
1771
- bl snprintf
1772
- add x20, x20, x0, sxtw
1773
- ldrb w3, [x21, 86]
2456
+ ldrh w3, [x0, x1, lsl 1]
2457
+ mov x0, x22
17742458 mov x1, 64
1775
- mov x0, x20
2459
+ bl snprintf
2460
+ add x22, x22, w0, sxtw
2461
+ ldrh w3, [x19, 82]
2462
+ mov x0, x22
2463
+ mov x1, 64
17762464 adrp x2, .LC50
17772465 add x2, x2, :lo12:.LC50
17782466 bl snprintf
1779
- add x20, x20, x0, sxtw
1780
- ldrh w3, [x21, 80]
2467
+ add x22, x22, w0, sxtw
2468
+ ldrb w3, [x19, 86]
2469
+ mov x0, x22
17812470 mov x1, 64
1782
- mov x0, x20
17832471 adrp x2, .LC51
17842472 add x2, x2, :lo12:.LC51
17852473 bl snprintf
1786
- add x20, x20, x0, sxtw
1787
- ldrb w3, [x21, 88]
2474
+ add x22, x22, w0, sxtw
2475
+ ldrh w3, [x19, 80]
2476
+ mov x0, x22
17882477 mov x1, 64
1789
- mov x0, x20
17902478 adrp x2, .LC52
17912479 add x2, x2, :lo12:.LC52
17922480 bl snprintf
1793
- add x20, x20, x0, sxtw
1794
- ldrh w3, [x21, 84]
2481
+ add x22, x22, w0, sxtw
2482
+ ldrb w3, [x19, 88]
2483
+ mov x0, x22
17952484 mov x1, 64
1796
- mov x0, x20
17972485 adrp x2, .LC53
17982486 add x2, x2, :lo12:.LC53
17992487 bl snprintf
1800
- add x20, x20, x0, sxtw
1801
- ldrh w1, [x21, 80]
2488
+ add x22, x22, w0, sxtw
2489
+ ldrh w3, [x19, 84]
2490
+ mov x0, x22
2491
+ mov x1, 64
18022492 adrp x2, .LC54
1803
- ldr x0, [x21, 72]
18042493 add x2, x2, :lo12:.LC54
1805
- ldrh w3, [x0, x1, lsl 1]
1806
- mov x1, 64
1807
- mov x0, x20
18082494 bl snprintf
1809
- add x20, x20, x0, sxtw
1810
- ldrh w3, [x21, 130]
1811
- mov x1, 64
1812
- mov x0, x20
2495
+ add x22, x22, w0, sxtw
2496
+ ldrh w1, [x19, 80]
18132497 adrp x2, .LC55
2498
+ ldr x0, [x19, 72]
18142499 add x2, x2, :lo12:.LC55
1815
- bl snprintf
1816
- add x20, x20, x0, sxtw
1817
- ldrb w3, [x21, 134]
2500
+ ldrh w3, [x0, x1, lsl 1]
2501
+ mov x0, x22
18182502 mov x1, 64
1819
- mov x0, x20
2503
+ bl snprintf
2504
+ add x22, x22, w0, sxtw
2505
+ ldrh w3, [x19, 130]
2506
+ mov x0, x22
2507
+ mov x1, 64
18202508 adrp x2, .LC56
18212509 add x2, x2, :lo12:.LC56
18222510 bl snprintf
1823
- add x20, x20, x0, sxtw
1824
- ldrh w3, [x21, 128]
2511
+ add x22, x22, w0, sxtw
2512
+ ldrb w3, [x19, 134]
2513
+ mov x0, x22
18252514 mov x1, 64
1826
- mov x0, x20
18272515 adrp x2, .LC57
18282516 add x2, x2, :lo12:.LC57
18292517 bl snprintf
1830
- add x20, x20, x0, sxtw
1831
- ldrb w3, [x21, 136]
2518
+ add x22, x22, w0, sxtw
2519
+ ldrh w3, [x19, 128]
2520
+ mov x0, x22
18322521 mov x1, 64
1833
- mov x0, x20
18342522 adrp x2, .LC58
18352523 add x2, x2, :lo12:.LC58
18362524 bl snprintf
1837
- add x20, x20, x0, sxtw
1838
- ldrh w3, [x21, 132]
2525
+ add x22, x22, w0, sxtw
2526
+ ldrb w3, [x19, 136]
2527
+ mov x0, x22
18392528 mov x1, 64
1840
- mov x0, x20
18412529 adrp x2, .LC59
18422530 add x2, x2, :lo12:.LC59
18432531 bl snprintf
1844
- add x20, x20, x0, sxtw
1845
- ldrh w3, [x21, 178]
2532
+ add x22, x22, w0, sxtw
2533
+ ldrh w3, [x19, 132]
2534
+ mov x0, x22
18462535 mov x1, 64
1847
- mov x0, x20
18482536 adrp x2, .LC60
18492537 add x2, x2, :lo12:.LC60
18502538 bl snprintf
1851
- add x20, x20, x0, sxtw
1852
- ldrb w3, [x21, 182]
2539
+ add x22, x22, w0, sxtw
2540
+ ldrh w3, [x19, 178]
2541
+ mov x0, x22
18532542 mov x1, 64
1854
- mov x0, x20
18552543 adrp x2, .LC61
18562544 add x2, x2, :lo12:.LC61
18572545 bl snprintf
1858
- add x20, x20, x0, sxtw
1859
- ldrh w3, [x21, 176]
2546
+ add x22, x22, w0, sxtw
2547
+ ldrb w3, [x19, 182]
2548
+ mov x0, x22
18602549 mov x1, 64
1861
- mov x0, x20
18622550 adrp x2, .LC62
18632551 add x2, x2, :lo12:.LC62
18642552 bl snprintf
1865
- add x20, x20, x0, sxtw
1866
- ldrb w3, [x21, 184]
2553
+ add x22, x22, w0, sxtw
2554
+ ldrh w3, [x19, 176]
2555
+ mov x0, x22
18672556 mov x1, 64
1868
- mov x0, x20
18692557 adrp x2, .LC63
18702558 add x2, x2, :lo12:.LC63
18712559 bl snprintf
1872
- add x20, x20, x0, sxtw
1873
- ldrh w3, [x21, 180]
2560
+ add x22, x22, w0, sxtw
2561
+ ldrb w3, [x19, 184]
2562
+ mov x0, x22
18742563 mov x1, 64
1875
- mov x0, x20
18762564 adrp x2, .LC64
18772565 add x2, x2, :lo12:.LC64
18782566 bl snprintf
1879
- add x20, x20, x0, sxtw
1880
- ldr w5, [x21, 2788]
2567
+ add x22, x22, w0, sxtw
2568
+ ldrh w3, [x19, 180]
2569
+ mov x0, x22
18812570 mov x1, 64
1882
- ldr w4, [x21, 2796]
18832571 adrp x2, .LC65
1884
- ldr w3, [x21, 2792]
18852572 add x2, x2, :lo12:.LC65
1886
- mov x0, x20
18872573 bl snprintf
1888
- add x19, x20, x0, sxtw
1889
- ldr w3, [x21, 2784]
2574
+ add x22, x22, w0, sxtw
2575
+ ldr w5, [x19, 2788]
2576
+ mov x0, x22
2577
+ ldr w4, [x19, 2796]
18902578 mov x1, 64
1891
- mov x0, x19
2579
+ ldr w3, [x19, 2792]
18922580 adrp x2, .LC66
18932581 add x2, x2, :lo12:.LC66
18942582 bl snprintf
1895
- add x19, x19, x0, sxtw
1896
- ldr w3, [x21, 2808]
2583
+ add x22, x22, w0, sxtw
2584
+ ldr w3, [x19, 2784]
2585
+ mov x0, x22
18972586 mov x1, 64
1898
- mov x0, x19
18992587 adrp x2, .LC67
19002588 add x2, x2, :lo12:.LC67
19012589 bl snprintf
1902
- add x19, x19, x0, sxtw
1903
- ldrh w3, [x21, 3224]
2590
+ add x22, x22, w0, sxtw
2591
+ ldr w3, [x19, 2808]
19042592 mov x1, 64
1905
- mov x0, x19
2593
+ mov x0, x22
19062594 adrp x2, .LC68
19072595 add x2, x2, :lo12:.LC68
19082596 bl snprintf
1909
- add x19, x19, x0, sxtw
1910
- ldrh w3, [x21, 3226]
2597
+ add x20, x22, w0, sxtw
2598
+ ldrh w3, [x19, 3224]
2599
+ mov x0, x20
19112600 mov x1, 64
1912
- mov x0, x19
19132601 adrp x2, .LC69
19142602 add x2, x2, :lo12:.LC69
19152603 bl snprintf
1916
- add x19, x19, x0, sxtw
1917
- ldr w3, [x21, 3228]
2604
+ add x20, x20, w0, sxtw
2605
+ ldrh w3, [x19, 3226]
2606
+ mov x0, x20
19182607 mov x1, 64
1919
- mov x0, x19
19202608 adrp x2, .LC70
19212609 add x2, x2, :lo12:.LC70
19222610 bl snprintf
1923
- add x19, x19, x0, sxtw
1924
- ldrh w3, [x21, 3232]
2611
+ add x20, x20, w0, sxtw
2612
+ ldr w3, [x19, 3228]
2613
+ mov x0, x20
2614
+ mov x1, 64
19252615 adrp x2, .LC71
19262616 add x2, x2, :lo12:.LC71
1927
- mov x1, 64
1928
- mov x0, x19
19292617 bl snprintf
1930
- add x19, x19, x0, sxtw
2618
+ add x20, x20, w0, sxtw
2619
+ ldrh w3, [x19, 3232]
2620
+ adrp x2, .LC72
2621
+ add x2, x2, :lo12:.LC72
2622
+ mov x1, 64
2623
+ mov x0, x20
2624
+ bl snprintf
2625
+ add x20, x20, w0, sxtw
19312626 bl GetFreeBlockMinEraseCount
19322627 and w3, w0, 65535
19332628 mov x1, 64
1934
- mov x0, x19
1935
- adrp x2, .LC72
1936
- add x2, x2, :lo12:.LC72
2629
+ mov x0, x20
2630
+ adrp x2, .LC73
2631
+ add x2, x2, :lo12:.LC73
19372632 bl snprintf
1938
- add x19, x19, x0, sxtw
1939
- ldrh w0, [x21, 228]
2633
+ add x20, x20, w0, sxtw
2634
+ ldrh w0, [x19, 228]
19402635 bl GetFreeBlockMaxEraseCount
19412636 and w3, w0, 65535
1942
- adrp x2, .LC73
1943
- mov x0, x19
1944
- add x2, x2, :lo12:.LC73
2637
+ adrp x2, .LC74
2638
+ mov x0, x20
2639
+ add x2, x2, :lo12:.LC74
19452640 mov x1, 64
19462641 bl snprintf
1947
- add x19, x19, x0, sxtw
2642
+ add x20, x20, w0, sxtw
19482643 adrp x0, .LANCHOR2
19492644 ldr w0, [x0, #:lo12:.LANCHOR2]
19502645 cmp w0, 1
1951
- beq .L196
1952
-.L201:
1953
- sub w0, w19, w22
1954
- ldr x27, [sp, 80]
2646
+ beq .L241
2647
+.L246:
2648
+ sub w0, w20, w21
19552649 ldp x19, x20, [sp, 16]
19562650 ldp x21, x22, [sp, 32]
19572651 ldp x23, x24, [sp, 48]
19582652 ldp x25, x26, [sp, 64]
1959
- ldp x29, x30, [sp], 96
2653
+ ldp x29, x30, [sp], 80
2654
+ hint 29 // autiasp
19602655 ret
1961
-.L196:
1962
- ldrh w0, [x21, 176]
2656
+.L241:
2657
+ ldrh w0, [x19, 176]
19632658 mov w1, 65535
19642659 cmp w0, w1
1965
- beq .L198
1966
- ldr x1, [x21, 72]
2660
+ beq .L243
2661
+ ldr x1, [x19, 72]
19672662 ubfiz x0, x0, 1, 16
1968
- adrp x2, .LC74
1969
- add x2, x2, :lo12:.LC74
2663
+ adrp x2, .LC75
2664
+ add x2, x2, :lo12:.LC75
19702665 ldrh w3, [x1, x0]
1971
- mov x0, x19
2666
+ mov x0, x20
19722667 mov x1, 64
19732668 bl snprintf
1974
- add x19, x19, x0, sxtw
1975
-.L198:
2669
+ add x20, x20, w0, sxtw
2670
+.L243:
19762671 mov w0, 0
1977
- adrp x24, .LC75
2672
+ adrp x23, .LC76
19782673 bl List_get_gc_head_node
1979
- add x21, x23, :lo12:.LANCHOR0
2674
+ add x23, x23, :lo12:.LC76
19802675 and w4, w0, 65535
1981
- add x24, x24, :lo12:.LC75
1982
- mov w20, 0
1983
- mov w27, 65535
1984
- mov w26, 6
1985
-.L200:
1986
- cmp w4, w27
1987
- beq .L199
1988
- umull x25, w4, w26
1989
- ldr x0, [x21, 2560]
1990
- ldr x2, [x21, 72]
2676
+ mov w22, 0
2677
+ mov w26, 65535
2678
+ mov w25, 6
2679
+.L245:
2680
+ ldr x0, [x19, 2560]
2681
+ cmp w4, w26
2682
+ beq .L244
2683
+ umull x24, w4, w25
19912684 ubfiz x1, x4, 1, 16
1992
- ldr x3, [x21, 2600]
1993
- add x0, x0, x25
2685
+ ldr x2, [x19, 72]
2686
+ add x0, x0, x24
2687
+ ldr x3, [x19, 2600]
19942688 ldrh w5, [x2, x1]
1995
- mov x2, x24
1996
- ldrh w7, [x3, x1]
1997
- mov w3, w20
2689
+ mov x2, x23
19982690 ldrh w6, [x0, 4]
2691
+ mov x0, x20
2692
+ ldrh w7, [x3, x1]
2693
+ mov w3, w22
19992694 mov x1, 64
2000
- mov x0, x19
2001
- add w20, w20, 1
2695
+ add w22, w22, 1
20022696 bl snprintf
2003
- add x19, x19, x0, sxtw
2004
- ldr x0, [x21, 2560]
2005
- cmp w20, 16
2006
- ldrh w4, [x0, x25]
2007
- bne .L200
2008
-.L199:
2009
- add x23, x23, :lo12:.LANCHOR0
2010
- adrp x21, .LC76
2011
- add x21, x21, :lo12:.LC76
2012
- mov w20, 0
2697
+ add x20, x20, w0, sxtw
2698
+ ldr x0, [x19, 2560]
2699
+ ldrh w4, [x0, x24]
2700
+ cmp w22, 16
2701
+ bne .L245
2702
+.L244:
2703
+ ldr x0, [x19, 2560]
2704
+ adrp x23, .LC77
2705
+ ldr x4, [x19, 2592]
2706
+ add x23, x23, :lo12:.LC77
2707
+ mov w22, 0
20132708 mov w25, 65535
2014
- mov w26, 6
2015
- ldr x0, [x23, 2560]
2016
- ldr x4, [x23, 2592]
20172709 sub x4, x4, x0
20182710 mov x0, -6148914691236517206
2019
- asr x4, x4, 1
20202711 movk x0, 0xaaab, lsl 0
2712
+ mov w26, 6
2713
+ asr x4, x4, 1
20212714 mul x4, x4, x0
20222715 and w4, w4, 65535
2023
-.L202:
2716
+.L247:
20242717 cmp w4, w25
2025
- beq .L201
2718
+ beq .L246
2719
+ ldr x0, [x19, 2560]
20262720 umull x24, w4, w26
2027
- ldr x0, [x23, 2560]
2028
- ldr x2, [x23, 2600]
2721
+ ldr x2, [x19, 2600]
20292722 ubfiz x1, x4, 1, 16
20302723 add x0, x0, x24
2031
- mov w3, w20
2032
- add w20, w20, 1
2724
+ mov w3, w22
2725
+ add w22, w22, 1
20332726 ldrh w6, [x2, x1]
2034
- mov x2, x21
2727
+ mov x2, x23
20352728 ldrh w5, [x0, 4]
20362729 mov x1, 64
2037
- mov x0, x19
2730
+ mov x0, x20
20382731 bl snprintf
2039
- add x19, x19, x0, sxtw
2040
- cmp w20, 4
2041
- beq .L201
2042
- ldr x0, [x23, 2560]
2732
+ add x20, x20, w0, sxtw
2733
+ cmp w22, 4
2734
+ beq .L246
2735
+ ldr x0, [x19, 2560]
20432736 ldrh w4, [x0, x24]
2044
- b .L202
2737
+ b .L247
20452738 .size FtlPrintInfo2buf, .-FtlPrintInfo2buf
2739
+ .section .rodata.str1.1
2740
+.LC78:
2741
+ .string "%s\n"
2742
+ .text
20462743 .align 2
20472744 .global rknand_proc_ftlread
20482745 .type rknand_proc_ftlread, %function
20492746 rknand_proc_ftlread:
2747
+ hint 34 // bti c
2748
+ .section __patchable_function_entries
2749
+ .align 3
2750
+ .8byte .LPFE40
2751
+ .text
2752
+.LPFE40:
2753
+ nop
2754
+ nop
20502755 cmp w0, 2047
2051
- ble .L210
2756
+ ble .L255
2757
+ hint 25 // paciasp
20522758 stp x29, x30, [sp, -32]!
2053
- adrp x3, .LC0
2054
- adrp x2, .LC77
2055
- add x3, x3, :lo12:.LC0
2056
- add x29, sp, 0
2057
- add x2, x2, :lo12:.LC77
2759
+ adrp x3, .LC1
2760
+ mov x29, sp
2761
+ add x3, x3, :lo12:.LC1
2762
+ adrp x2, .LC78
2763
+ add x2, x2, :lo12:.LC78
20582764 stp x19, x20, [sp, 16]
2059
- mov x20, x1
2765
+ mov x19, x1
20602766 mov x1, 64
2061
- mov x0, x20
2062
- bl snprintf
2063
- add x19, x20, x0, sxtw
2767
+ add x20, x19, 30
20642768 mov x0, x19
2769
+ bl snprintf
2770
+ mov x0, x20
20652771 bl FtlPrintInfo2buf
2066
- add x0, x19, x0, sxtw
2067
- sub w0, w0, w20
2772
+ add x0, x20, w0, sxtw
2773
+ sub w0, w0, w19
20682774 ldp x19, x20, [sp, 16]
20692775 ldp x29, x30, [sp], 32
2776
+ hint 29 // autiasp
20702777 ret
2071
-.L210:
2778
+.L255:
20722779 mov w0, 0
20732780 ret
20742781 .size rknand_proc_ftlread, .-rknand_proc_ftlread
2782
+ .section .rodata.str1.1
2783
+.LC79:
2784
+ .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n"
2785
+ .text
20752786 .align 2
20762787 .global GetSwlReplaceBlock
20772788 .type GetSwlReplaceBlock, %function
20782789 GetSwlReplaceBlock:
2079
- stp x29, x30, [sp, -32]!
2080
- adrp x8, .LANCHOR0
2081
- add x0, x8, :lo12:.LANCHOR0
2082
- add x29, sp, 0
2790
+ hint 34 // bti c
2791
+ .section __patchable_function_entries
2792
+ .align 3
2793
+ .8byte .LPFE41
2794
+ .text
2795
+.LPFE41:
2796
+ nop
2797
+ nop
2798
+ hint 25 // paciasp
2799
+ stp x29, x30, [sp, -96]!
2800
+ mov x29, sp
20832801 stp x19, x20, [sp, 16]
2084
- ldr w2, [x0, 2676]
2085
- ldr w1, [x0, 2688]
2086
- cmp w2, w1
2087
- bcs .L216
2088
- ldrh w2, [x0, 244]
2089
- mov x1, 0
2090
- ldr x4, [x0, 2600]
2091
- str wzr, [x0, 2668]
2092
-.L217:
2093
- cmp w2, w1
2094
- bhi .L218
2095
- add x1, x8, :lo12:.LANCHOR0
2096
- ldr w0, [x1, 2668]
2097
- udiv w2, w0, w2
2098
- str w2, [x1, 2676]
2099
- ldr w2, [x1, 2672]
2100
- sub w0, w0, w2
2101
- ldrh w2, [x1, 296]
2102
- udiv w0, w0, w2
2103
- str w0, [x1, 2668]
2104
-.L219:
2105
- add x1, x8, :lo12:.LANCHOR0
2106
- ldr w9, [x1, 2688]
2107
- ldr w11, [x1, 2676]
2108
- add w0, w9, 256
2109
- cmp w0, w11
2110
- bls .L224
2111
- ldr w1, [x1, 2684]
2112
- add w0, w9, 768
2802
+ adrp x19, .LANCHOR0
2803
+ add x19, x19, :lo12:.LANCHOR0
2804
+ stp x21, x22, [sp, 32]
2805
+ ldr w1, [x19, 2676]
2806
+ ldr w0, [x19, 2688]
2807
+ stp x23, x24, [sp, 48]
2808
+ stp x25, x26, [sp, 64]
2809
+ str x27, [sp, 80]
2810
+ cmp w1, w0
2811
+ bcs .L261
2812
+ ldrh w1, [x19, 244]
2813
+ mov x2, 0
2814
+ ldr x4, [x19, 2600]
2815
+ str wzr, [x19, 2668]
2816
+.L262:
2817
+ ldr w0, [x19, 2668]
2818
+ cmp w1, w2
2819
+ bhi .L263
2820
+ udiv w1, w0, w1
2821
+ str w1, [x19, 2676]
2822
+ ldr w1, [x19, 2672]
2823
+ sub w0, w0, w1
2824
+ ldrh w1, [x19, 296]
2825
+ udiv w0, w0, w1
2826
+ str w0, [x19, 2668]
2827
+.L264:
2828
+ ldr w22, [x19, 2688]
2829
+ ldr w24, [x19, 2676]
2830
+ add w0, w22, 256
2831
+ cmp w0, w24
2832
+ bls .L269
2833
+ ldr w1, [x19, 2684]
2834
+ add w0, w22, 768
21132835 cmp w0, w1
2114
- bls .L224
2115
-.L226:
2836
+ bls .L269
2837
+.L271:
21162838 mov w20, 65535
2117
-.L225:
2839
+.L270:
21182840 mov w0, w20
21192841 ldp x19, x20, [sp, 16]
2120
- ldp x29, x30, [sp], 32
2842
+ ldp x21, x22, [sp, 32]
2843
+ ldp x23, x24, [sp, 48]
2844
+ ldp x25, x26, [sp, 64]
2845
+ ldr x27, [sp, 80]
2846
+ ldp x29, x30, [sp], 96
2847
+ hint 29 // autiasp
21212848 ret
2122
-.L218:
2123
- ldrh w3, [x4, x1, lsl 1]
2124
- add x1, x1, 1
2125
- ldr w5, [x0, 2668]
2126
- add w3, w3, w5
2127
- str w3, [x0, 2668]
2128
- b .L217
2129
-.L216:
2130
- ldr w1, [x0, 2684]
2131
- cmp w2, w1
2132
- bls .L219
2849
+.L263:
2850
+ ldrh w3, [x4, x2, lsl 1]
2851
+ add x2, x2, 1
2852
+ add w0, w3, w0
2853
+ str w0, [x19, 2668]
2854
+ b .L262
2855
+.L261:
2856
+ ldr w0, [x19, 2684]
2857
+ cmp w1, w0
2858
+ bls .L264
2859
+ add w0, w0, 1
2860
+ str w0, [x19, 2684]
2861
+ mov x0, 0
2862
+.L266:
2863
+ ldrh w1, [x19, 244]
2864
+ cmp w1, w0
2865
+ bls .L264
2866
+ ldr x3, [x19, 2600]
2867
+ lsl x2, x0, 1
2868
+ add x0, x0, 1
2869
+ ldrh w1, [x3, x2]
21332870 add w1, w1, 1
2134
- str w1, [x0, 2684]
2135
- mov w1, 0
2136
-.L221:
2137
- ldrh w2, [x0, 244]
2138
- cmp w1, w2
2139
- bcs .L219
2140
- ldr x4, [x0, 2600]
2141
- ubfiz x3, x1, 1, 32
2142
- add w1, w1, 1
2143
- ldrh w2, [x4, x3]
2144
- add w2, w2, 1
2145
- strh w2, [x4, x3]
2146
- b .L221
2147
-.L224:
2148
- add x10, x8, :lo12:.LANCHOR0
2149
- ldrh w0, [x10, 228]
2871
+ strh w1, [x3, x2]
2872
+ b .L266
2873
+.L269:
2874
+ ldrh w0, [x19, 228]
21502875 add w0, w0, w0, lsl 1
2151
- lsr w0, w0, 2
2876
+ ubfx x0, x0, 2, 16
21522877 bl GetFreeBlockMaxEraseCount
2153
- and w6, w0, 65535
2154
- add w0, w9, 64
2155
- cmp w6, w0
2156
- bcc .L226
2157
- ldr x0, [x10, 2568]
2158
- cbz x0, .L226
2159
- mov w4, 65535
2160
- ldrh w12, [x10, 244]
2161
- mov x13, -6148914691236517206
2162
- ldr x7, [x10, 2560]
2163
- ldr x5, [x10, 2600]
2164
- mov w2, w4
2165
- mov w10, w4
2166
- mov w1, 0
2167
- movk x13, 0xaaab, lsl 0
2168
- mov w14, 6
2169
-.L227:
2170
- ldrh w3, [x0]
2171
- cmp w3, w10
2172
- bne .L230
2173
- mov w20, w2
2174
-.L229:
2878
+ add w1, w22, 64
2879
+ and w27, w0, 65535
2880
+ cmp w1, w0, uxth
2881
+ bhi .L271
2882
+ ldr x0, [x19, 2568]
2883
+ cbz x0, .L271
2884
+ ldrh w7, [x19, 244]
2885
+ mov w23, 65535
2886
+ ldr x3, [x19, 2560]
2887
+ mov x8, -6148914691236517206
2888
+ ldr x25, [x19, 2600]
2889
+ mov w1, w23
2890
+ mov w6, w23
2891
+ mov w4, 0
2892
+ movk x8, 0xaaab, lsl 0
2893
+ mov w9, 6
2894
+.L272:
2895
+ ldrh w2, [x0]
2896
+ cmp w2, w6
2897
+ bne .L275
2898
+ mov w20, w1
2899
+.L274:
21752900 mov w0, 65535
21762901 cmp w20, w0
2177
- beq .L226
2178
- ubfiz x7, x20, 1, 32
2179
- ldrh w3, [x5, x7]
2180
- cmp w9, w3
2181
- bcs .L231
2902
+ beq .L271
2903
+ ldrh w21, [x25, w20, uxtw 1]
2904
+ ubfiz x26, x20, 1, 32
2905
+ cmp w22, w21
2906
+ bcs .L276
21822907 bl GetFreeBlockMinEraseCount
2183
- cmp w9, w0, uxth
2184
- bcs .L231
2185
- add x0, x8, :lo12:.LANCHOR0
2186
- str w4, [x0, 2688]
2187
-.L231:
2188
- cmp w11, w3
2189
- bls .L226
2190
- add w0, w3, 128
2191
- cmp w6, w0
2192
- ble .L226
2193
- add w0, w3, 256
2194
- cmp w11, w0
2195
- bhi .L232
2196
- add x0, x8, :lo12:.LANCHOR0
2197
- add w3, w3, 768
2198
- ldr w0, [x0, 2684]
2199
- cmp w3, w0
2200
- bcs .L226
2201
-.L232:
2202
- add x19, x8, :lo12:.LANCHOR0
2203
- ldrh w5, [x5, x7]
2204
- mov w2, w11
2205
- mov w1, w20
2206
- ldr x0, [x19, 72]
2908
+ cmp w22, w0, uxth
2909
+ bcs .L276
2910
+ str w23, [x19, 2688]
2911
+.L276:
2912
+ cmp w24, w21
2913
+ bls .L271
2914
+ add w0, w21, 128
2915
+ cmp w27, w0
2916
+ ble .L271
2917
+ add w0, w21, 256
22072918 ldr w3, [x19, 2684]
2208
- ldrh w4, [x0, x7]
2209
- adrp x0, .LC78
2210
- add x0, x0, :lo12:.LC78
2919
+ cmp w24, w0
2920
+ bhi .L277
2921
+ add w21, w21, 768
2922
+ cmp w21, w3
2923
+ bcs .L271
2924
+.L277:
2925
+ ldr x0, [x19, 72]
2926
+ mov w6, w27
2927
+ ldrh w5, [x25, x26]
2928
+ mov w2, w24
2929
+ mov w1, w20
2930
+ ldrh w4, [x0, x26]
2931
+ adrp x0, .LC79
2932
+ add x0, x0, :lo12:.LC79
22112933 bl sftl_printk
22122934 mov w0, 1
22132935 str w0, [x19, 3236]
2214
- b .L225
2215
-.L230:
2216
- add w1, w1, 1
2217
- and w1, w1, 65535
2218
- cmp w1, w12
2219
- bhi .L226
2220
- ldrh w15, [x0, 4]
2221
- cbz w15, .L228
2222
- sub x0, x0, x7
2936
+ b .L270
2937
+.L275:
2938
+ add w5, w4, 1
2939
+ and w4, w5, 65535
2940
+ cmp w7, w5, uxth
2941
+ bcc .L271
2942
+ ldrh w5, [x0, 4]
2943
+ cbz w5, .L273
2944
+ sub x0, x0, x3
22232945 asr x0, x0, 1
2224
- mul x0, x0, x13
2946
+ mul x0, x0, x8
22252947 and w20, w0, 65535
22262948 and x0, x0, 65535
2227
- ldrh w0, [x5, x0, lsl 1]
2228
- cmp w9, w0
2229
- bcs .L229
2230
- cmp w4, w0
2231
- bls .L228
2232
- mov w4, w0
2233
- mov w2, w20
2234
-.L228:
2235
- umaddl x0, w3, w14, x7
2236
- b .L227
2949
+ ldrh w0, [x25, x0, lsl 1]
2950
+ cmp w22, w0
2951
+ bcs .L274
2952
+ cmp w0, w23
2953
+ bcs .L273
2954
+ mov w23, w0
2955
+ mov w1, w20
2956
+.L273:
2957
+ umaddl x0, w2, w9, x3
2958
+ b .L272
22372959 .size GetSwlReplaceBlock, .-GetSwlReplaceBlock
22382960 .align 2
22392961 .global free_data_superblock
22402962 .type free_data_superblock, %function
22412963 free_data_superblock:
2242
- and w0, w0, 65535
2243
- mov w1, 65535
2244
- cmp w0, w1
2245
- beq .L243
2246
- stp x29, x30, [sp, -16]!
2964
+ hint 34 // bti c
2965
+ .section __patchable_function_entries
2966
+ .align 3
2967
+ .8byte .LPFE42
2968
+ .text
2969
+.LPFE42:
2970
+ nop
2971
+ nop
2972
+ mov w2, 65535
2973
+ cmp w2, w0, uxth
2974
+ beq .L288
2975
+ hint 25 // paciasp
22472976 adrp x2, .LANCHOR0+72
2248
- ubfiz x1, x0, 1, 16
2249
- add x29, sp, 0
2977
+ stp x29, x30, [sp, -16]!
2978
+ and w1, w0, 65535
2979
+ mov x29, sp
22502980 ldr x2, [x2, #:lo12:.LANCHOR0+72]
2251
- strh wzr, [x2, x1]
2981
+ ubfiz x0, x1, 1, 16
2982
+ strh wzr, [x2, x0]
2983
+ mov w0, w1
22522984 bl INSERT_FREE_LIST
22532985 mov w0, 0
22542986 ldp x29, x30, [sp], 16
2987
+ hint 29 // autiasp
22552988 ret
2256
-.L243:
2989
+.L288:
22572990 mov w0, 0
22582991 ret
22592992 .size free_data_superblock, .-free_data_superblock
....@@ -2261,516 +2994,652 @@
22612994 .global get_new_active_ppa
22622995 .type get_new_active_ppa, %function
22632996 get_new_active_ppa:
2264
- stp x29, x30, [sp, -32]!
2265
- add x29, sp, 0
2997
+ hint 34 // bti c
2998
+ .section __patchable_function_entries
2999
+ .align 3
3000
+ .8byte .LPFE43
3001
+ .text
3002
+.LPFE43:
3003
+ nop
3004
+ nop
3005
+ hint 25 // paciasp
3006
+ stp x29, x30, [sp, -48]!
3007
+ mov x29, sp
22663008 stp x19, x20, [sp, 16]
22673009 mov x19, x0
3010
+ str x21, [sp, 32]
22683011 ldrh w1, [x0]
22693012 mov w0, 65535
22703013 cmp w1, w0
2271
- bne .L247
3014
+ bne .L292
22723015 adrp x1, .LANCHOR1
22733016 add x1, x1, :lo12:.LANCHOR1
2274
- adrp x0, .LC8
3017
+ adrp x0, .LC9
3018
+ add x1, x1, 111
3019
+ add x0, x0, :lo12:.LC9
22753020 mov w2, 2792
2276
- add x1, x1, 136
2277
- add x0, x0, :lo12:.LC8
22783021 bl sftl_printk
2279
-.L247:
2280
- adrp x20, .LANCHOR0
2281
- add x0, x20, :lo12:.LANCHOR0
3022
+.L292:
3023
+ adrp x21, .LANCHOR0
3024
+ add x21, x21, :lo12:.LANCHOR0
22823025 ldrh w1, [x19, 2]
2283
- ldrh w0, [x0, 306]
3026
+ ldrh w0, [x21, 306]
22843027 cmp w1, w0
2285
- bne .L248
3028
+ bne .L293
22863029 adrp x1, .LANCHOR1
22873030 add x1, x1, :lo12:.LANCHOR1
2288
- adrp x0, .LC8
3031
+ adrp x0, .LC9
3032
+ add x1, x1, 111
3033
+ add x0, x0, :lo12:.LC9
22893034 mov w2, 2793
2290
- add x1, x1, 136
2291
- add x0, x0, :lo12:.LC8
22923035 bl sftl_printk
2293
-.L248:
3036
+.L293:
22943037 ldrh w0, [x19, 4]
2295
- cbnz w0, .L249
3038
+ cbnz w0, .L294
22963039 adrp x1, .LANCHOR1
22973040 add x1, x1, :lo12:.LANCHOR1
2298
- adrp x0, .LC8
3041
+ adrp x0, .LC9
3042
+ add x1, x1, 111
3043
+ add x0, x0, :lo12:.LC9
22993044 mov w2, 2794
2300
- add x1, x1, 136
2301
- add x0, x0, :lo12:.LC8
23023045 bl sftl_printk
2303
-.L249:
3046
+.L294:
23043047 ldrb w0, [x19, 6]
2305
- add x1, x20, :lo12:.LANCHOR0
3048
+ mov w2, 65535
23063049 strb wzr, [x19, 10]
23073050 add x0, x0, 8
2308
- ldrh w3, [x1, 236]
2309
- mov w1, 65535
3051
+ ldrh w3, [x21, 236]
23103052 ldrh w0, [x19, x0, lsl 1]
2311
-.L250:
2312
- cmp w0, w1
2313
- beq .L252
2314
- add x20, x20, :lo12:.LANCHOR0
2315
- ldrh w1, [x19, 2]
2316
- ldrh w2, [x20, 306]
2317
- cmp w1, w2
2318
- bcs .L256
2319
- orr w20, w1, w0, lsl 10
2320
- ldrh w1, [x19, 4]
2321
- ldrb w0, [x19, 6]
2322
- mov w4, 65535
2323
- sub w1, w1, #1
2324
- and w1, w1, 65535
2325
- strh w1, [x19, 4]
2326
-.L255:
2327
- add w0, w0, 1
2328
- and w0, w0, 255
2329
- cmp w3, w0
2330
- bne .L254
2331
- ldrh w0, [x19, 2]
2332
- add w0, w0, 1
2333
- strh w0, [x19, 2]
2334
- mov w0, 0
2335
-.L254:
2336
- add x5, x19, x0, sxtw 1
2337
- ldrh w5, [x5, 16]
2338
- cmp w5, w4
2339
- beq .L255
2340
- strb w0, [x19, 6]
2341
- ldrh w0, [x19, 2]
3053
+.L295:
3054
+ ldrh w20, [x19, 2]
23423055 cmp w0, w2
2343
- bne .L246
2344
- cbz w1, .L246
3056
+ beq .L297
3057
+ ldrh w2, [x21, 306]
3058
+ cmp w2, w20
3059
+ bls .L301
3060
+ orr w20, w20, w0, lsl 10
3061
+ ldrh w0, [x19, 4]
3062
+ ldrb w1, [x19, 6]
3063
+ mov w5, 65535
3064
+ sub w0, w0, #1
3065
+ and w0, w0, 65535
3066
+ strh w0, [x19, 4]
3067
+.L300:
3068
+ add w4, w1, 1
3069
+ and w1, w4, 255
3070
+ cmp w3, w4, uxtb
3071
+ bne .L299
3072
+ ldrh w1, [x19, 2]
3073
+ add w1, w1, 1
3074
+ strh w1, [x19, 2]
3075
+ mov w1, 0
3076
+.L299:
3077
+ add x4, x19, w1, sxtw 1
3078
+ ldrh w4, [x4, 16]
3079
+ cmp w4, w5
3080
+ beq .L300
3081
+ strb w1, [x19, 6]
3082
+ ldrh w1, [x19, 2]
3083
+ cmp w1, w2
3084
+ bne .L291
3085
+ cbz w0, .L291
23453086 adrp x1, .LANCHOR1
23463087 add x1, x1, :lo12:.LANCHOR1
2347
- adrp x0, .LC8
3088
+ adrp x0, .LC9
3089
+ add x1, x1, 111
3090
+ add x0, x0, :lo12:.LC9
23483091 mov w2, 2817
2349
- add x1, x1, 136
2350
- add x0, x0, :lo12:.LC8
23513092 bl sftl_printk
2352
-.L246:
3093
+.L291:
23533094 mov w0, w20
23543095 ldp x19, x20, [sp, 16]
2355
- ldp x29, x30, [sp], 32
3096
+ ldr x21, [sp, 32]
3097
+ ldp x29, x30, [sp], 48
3098
+ hint 29 // autiasp
23563099 ret
2357
-.L252:
2358
- ldrb w0, [x19, 6]
2359
- add w0, w0, 1
2360
- and w0, w0, 255
2361
- strb w0, [x19, 6]
2362
- cmp w0, w3
2363
- bne .L251
2364
- ldrh w0, [x19, 2]
3100
+.L297:
3101
+ ldrb w1, [x19, 6]
3102
+ add w1, w1, 1
3103
+ and w1, w1, 255
3104
+ strb w1, [x19, 6]
3105
+ cmp w1, w3
3106
+ bne .L296
3107
+ add w20, w20, 1
3108
+ strh w20, [x19, 2]
23653109 strb wzr, [x19, 6]
2366
- add w0, w0, 1
2367
- strh w0, [x19, 2]
2368
-.L251:
3110
+.L296:
23693111 ldrb w0, [x19, 6]
23703112 add x0, x0, 8
23713113 ldrh w0, [x19, x0, lsl 1]
2372
- b .L250
2373
-.L256:
3114
+ b .L295
3115
+.L301:
23743116 mov w20, 65535
2375
- b .L246
3117
+ b .L291
23763118 .size get_new_active_ppa, .-get_new_active_ppa
23773119 .align 2
23783120 .global FtlGcBufInit
23793121 .type FtlGcBufInit, %function
23803122 FtlGcBufInit:
3123
+ hint 34 // bti c
3124
+ .section __patchable_function_entries
3125
+ .align 3
3126
+ .8byte .LPFE44
3127
+ .text
3128
+.LPFE44:
3129
+ nop
3130
+ nop
23813131 adrp x0, .LANCHOR0
2382
- add x1, x0, :lo12:.LANCHOR0
2383
- mov w3, 0
2384
- mov w8, 24
2385
- mov w9, 1
2386
- mov w5, 4
2387
- str wzr, [x1, 3240]
2388
-.L263:
2389
- ldrh w2, [x1, 236]
2390
- cmp w3, w2
2391
- bcc .L264
23923132 add x0, x0, :lo12:.LANCHOR0
3133
+ mov w2, 0
3134
+ mov w7, 24
3135
+ mov w8, 1
3136
+ mov w4, 4
3137
+ str wzr, [x0, 3240]
3138
+ hint 25 // paciasp
3139
+.L308:
3140
+ ldrh w1, [x0, 236]
3141
+ cmp w1, w2
3142
+ bhi .L309
23933143 mov w6, 24
23943144 mov w5, 4
2395
-.L265:
2396
- ldr w1, [x0, 3280]
2397
- cmp w2, w1
2398
- bcc .L266
3145
+.L310:
3146
+ ldr w2, [x0, 3280]
3147
+ cmp w1, w2
3148
+ bcc .L311
3149
+ hint 29 // autiasp
23993150 ret
2400
-.L264:
2401
- umull x4, w3, w8
2402
- ldr x6, [x1, 3248]
2403
- ldr x7, [x1, 3256]
2404
- add x2, x6, x4
2405
- str w9, [x2, 16]
2406
- ldrh w2, [x1, 314]
2407
- mul w2, w2, w3
2408
- sdiv w2, w2, w5
2409
- add x2, x7, x2, sxtw 2
2410
- str x2, [x6, x4]
2411
- ldrh w2, [x1, 316]
2412
- ldr x7, [x1, 3248]
2413
- ldr x10, [x1, 3264]
2414
- add x6, x7, x4
2415
- mul w2, w2, w3
2416
- sdiv w2, w2, w5
2417
- add x2, x10, x2, sxtw 2
2418
- str x2, [x6, 8]
2419
- ldr x2, [x1, 3272]
2420
- ubfiz x10, x3, 5, 16
2421
- ldr x4, [x7, x4]
2422
- add w3, w3, 1
2423
- add x2, x2, x10
2424
- and w3, w3, 65535
2425
- str x4, [x2, 8]
2426
- ldr x4, [x6, 8]
2427
- str x4, [x2, 16]
2428
- b .L263
2429
-.L266:
2430
- umull x4, w2, w6
2431
- ldr x3, [x0, 3248]
2432
- ldr x7, [x0, 3256]
2433
- add x1, x3, x4
2434
- str wzr, [x1, 16]
3151
+.L309:
3152
+ ldr x5, [x0, 3248]
3153
+ umull x3, w2, w7
3154
+ ldr x6, [x0, 3256]
3155
+ add x1, x5, x3
3156
+ str w8, [x1, 16]
24353157 ldrh w1, [x0, 314]
24363158 mul w1, w1, w2
2437
- sdiv w1, w1, w5
2438
- add x1, x7, x1, sxtw 2
2439
- str x1, [x3, x4]
3159
+ sdiv w1, w1, w4
3160
+ add x1, x6, w1, sxtw 2
3161
+ str x1, [x5, x3]
24403162 ldrh w1, [x0, 316]
2441
- ldr x3, [x0, 3248]
2442
- add x3, x3, x4
2443
- ldr x4, [x0, 3264]
3163
+ ldr x6, [x0, 3248]
3164
+ ldr x9, [x0, 3264]
24443165 mul w1, w1, w2
3166
+ add x5, x6, x3
3167
+ sdiv w1, w1, w4
3168
+ add x1, x9, w1, sxtw 2
3169
+ str x1, [x5, 8]
3170
+ ldr x1, [x0, 3272]
3171
+ ubfiz x9, x2, 5, 16
3172
+ ldr x3, [x6, x3]
3173
+ add x1, x1, x9
24453174 add w2, w2, 1
24463175 and w2, w2, 65535
2447
- sdiv w1, w1, w5
2448
- add x1, x4, x1, sxtw 2
2449
- str x1, [x3, 8]
2450
- b .L265
3176
+ str x3, [x1, 8]
3177
+ ldr x3, [x5, 8]
3178
+ str x3, [x1, 16]
3179
+ b .L308
3180
+.L311:
3181
+ ldr x3, [x0, 3248]
3182
+ umull x4, w1, w6
3183
+ ldr x7, [x0, 3256]
3184
+ add x2, x3, x4
3185
+ str wzr, [x2, 16]
3186
+ ldrh w2, [x0, 314]
3187
+ mul w2, w2, w1
3188
+ sdiv w2, w2, w5
3189
+ add x2, x7, w2, sxtw 2
3190
+ str x2, [x3, x4]
3191
+ ldrh w2, [x0, 316]
3192
+ ldr x3, [x0, 3248]
3193
+ mul w2, w2, w1
3194
+ add x3, x3, x4
3195
+ ldr x4, [x0, 3264]
3196
+ add w1, w1, 1
3197
+ and w1, w1, 65535
3198
+ sdiv w2, w2, w5
3199
+ add x2, x4, w2, sxtw 2
3200
+ str x2, [x3, 8]
3201
+ b .L310
24513202 .size FtlGcBufInit, .-FtlGcBufInit
24523203 .align 2
24533204 .global FtlGcBufFree
24543205 .type FtlGcBufFree, %function
24553206 FtlGcBufFree:
3207
+ hint 34 // bti c
3208
+ .section __patchable_function_entries
3209
+ .align 3
3210
+ .8byte .LPFE45
3211
+ .text
3212
+.LPFE45:
3213
+ nop
3214
+ nop
24563215 adrp x2, .LANCHOR0
24573216 add x2, x2, :lo12:.LANCHOR0
24583217 mov w3, 0
24593218 mov w8, 24
3219
+ hint 25 // paciasp
24603220 ldr w7, [x2, 3280]
24613221 ldr x5, [x2, 3248]
2462
-.L268:
3222
+.L314:
24633223 cmp w3, w1
2464
- bcs .L267
3224
+ bcs .L313
24653225 ubfiz x4, x3, 5, 16
24663226 mov w2, 0
24673227 add x4, x0, x4
2468
- b .L273
2469
-.L269:
3228
+ b .L319
3229
+.L315:
24703230 add w2, w2, 1
24713231 and w2, w2, 65535
2472
-.L273:
3232
+.L319:
24733233 cmp w2, w7
2474
- bcs .L270
3234
+ bcs .L316
24753235 umull x6, w2, w8
24763236 add x9, x5, x6
24773237 ldr x10, [x5, x6]
24783238 ldr x6, [x4, 8]
24793239 cmp x10, x6
2480
- bne .L269
3240
+ bne .L315
24813241 str wzr, [x9, 16]
2482
-.L270:
3242
+.L316:
24833243 add w3, w3, 1
24843244 and w3, w3, 65535
2485
- b .L268
2486
-.L267:
3245
+ b .L314
3246
+.L313:
3247
+ hint 29 // autiasp
24873248 ret
24883249 .size FtlGcBufFree, .-FtlGcBufFree
24893250 .align 2
24903251 .global FtlGcBufAlloc
24913252 .type FtlGcBufAlloc, %function
24923253 FtlGcBufAlloc:
3254
+ hint 34 // bti c
3255
+ .section __patchable_function_entries
3256
+ .align 3
3257
+ .8byte .LPFE46
3258
+ .text
3259
+.LPFE46:
3260
+ nop
3261
+ nop
24933262 adrp x2, .LANCHOR0
24943263 add x2, x2, :lo12:.LANCHOR0
2495
- mov w3, 0
24963264 mov w7, 24
24973265 mov w8, 1
2498
- ldr w5, [x2, 3280]
2499
- ldr x6, [x2, 3248]
2500
-.L275:
2501
- cmp w3, w1
2502
- bcs .L274
3266
+ hint 25 // paciasp
3267
+ ldr w6, [x2, 3280]
3268
+ ldr x5, [x2, 3248]
25033269 mov w2, 0
2504
- b .L280
2505
-.L276:
2506
- add w2, w2, 1
2507
- and w2, w2, 65535
2508
-.L280:
2509
- cmp w2, w5
2510
- bcs .L277
2511
- umaddl x4, w2, w7, x6
2512
- ldr w9, [x4, 16]
2513
- cbnz w9, .L276
2514
- ubfiz x2, x3, 5, 16
2515
- ldr x9, [x4]
2516
- add x2, x0, x2
2517
- str w8, [x4, 16]
2518
- str x9, [x2, 8]
2519
- ldr x4, [x4, 8]
2520
- str x4, [x2, 16]
2521
-.L277:
3270
+.L322:
3271
+ cmp w2, w1
3272
+ bcc .L327
3273
+ hint 29 // autiasp
3274
+ ret
3275
+.L323:
25223276 add w3, w3, 1
25233277 and w3, w3, 65535
2524
- b .L275
2525
-.L274:
2526
- ret
3278
+.L326:
3279
+ cmp w3, w6
3280
+ bcs .L324
3281
+ umaddl x4, w3, w7, x5
3282
+ ldr w9, [x4, 16]
3283
+ cbnz w9, .L323
3284
+ ubfiz x3, x2, 5, 16
3285
+ str w8, [x4, 16]
3286
+ add x3, x0, x3
3287
+ ldr x9, [x4]
3288
+ str x9, [x3, 8]
3289
+ ldr x4, [x4, 8]
3290
+ str x4, [x3, 16]
3291
+.L324:
3292
+ add w2, w2, 1
3293
+ and w2, w2, 65535
3294
+ b .L322
3295
+.L327:
3296
+ mov w3, 0
3297
+ b .L326
25273298 .size FtlGcBufAlloc, .-FtlGcBufAlloc
25283299 .align 2
25293300 .global IsBlkInGcList
25303301 .type IsBlkInGcList, %function
25313302 IsBlkInGcList:
3303
+ hint 34 // bti c
3304
+ .section __patchable_function_entries
3305
+ .align 3
3306
+ .8byte .LPFE47
3307
+ .text
3308
+.LPFE47:
3309
+ nop
3310
+ nop
25323311 adrp x1, .LANCHOR0
25333312 add x1, x1, :lo12:.LANCHOR0
25343313 and w0, w0, 65535
2535
- ldrh w2, [x1, 3284]
2536
- ldr x3, [x1, 3288]
3314
+ hint 25 // paciasp
3315
+ ldr x2, [x1, 3288]
3316
+ ldrh w3, [x1, 3284]
25373317 mov x1, 0
2538
-.L282:
2539
- cmp w2, w1, uxth
2540
- bhi .L284
3318
+ sub x2, x2, #2
3319
+.L330:
3320
+ cmp w3, w1, uxth
3321
+ bhi .L332
25413322 mov w0, 0
3323
+.L329:
3324
+ hint 29 // autiasp
25423325 ret
2543
-.L284:
3326
+.L332:
25443327 add x1, x1, 1
2545
- add x4, x3, x1, lsl 1
2546
- ldrh w4, [x4, -2]
3328
+ ldrh w4, [x2, x1, lsl 1]
25473329 cmp w4, w0
2548
- bne .L282
3330
+ bne .L330
25493331 mov w0, 1
2550
- ret
3332
+ b .L329
25513333 .size IsBlkInGcList, .-IsBlkInGcList
25523334 .align 2
25533335 .global FtlGcUpdatePage
25543336 .type FtlGcUpdatePage, %function
25553337 FtlGcUpdatePage:
2556
- mov w5, w0
2557
- mov w8, w1
2558
- mov w7, w2
2559
- stp x29, x30, [sp, -16]!
2560
- lsr w0, w0, 10
2561
- add x29, sp, 0
3338
+ hint 34 // bti c
3339
+ .section __patchable_function_entries
3340
+ .align 3
3341
+ .8byte .LPFE48
3342
+ .text
3343
+.LPFE48:
3344
+ nop
3345
+ nop
3346
+ hint 25 // paciasp
3347
+ stp x29, x30, [sp, -48]!
3348
+ mov x29, sp
3349
+ stp x19, x20, [sp, 16]
3350
+ mov w19, w0
3351
+ mov w20, w2
3352
+ ubfx x0, x19, 10, 16
3353
+ str x21, [sp, 32]
3354
+ mov w21, w1
25623355 bl P2V_block_in_plane
2563
- and w9, w0, 65535
25643356 adrp x3, .LANCHOR0
2565
- add x4, x3, :lo12:.LANCHOR0
2566
- ldrh w1, [x4, 3284]
2567
- ldr x6, [x4, 3288]
3357
+ add x3, x3, :lo12:.LANCHOR0
3358
+ and w6, w0, 65535
25683359 mov x4, 0
2569
-.L287:
3360
+ ldr x1, [x3, 3288]
3361
+ ldrh w5, [x3, 3284]
3362
+ sub x7, x1, #2
3363
+.L336:
25703364 and w2, w4, 65535
2571
- cmp w2, w1
2572
- bcc .L289
2573
- bne .L288
2574
- and x4, x4, 65535
2575
- strh w0, [x6, x4, lsl 1]
2576
- add x4, x3, :lo12:.LANCHOR0
2577
- ldrh w0, [x4, 3284]
3365
+ cmp w5, w2
3366
+ bhi .L338
3367
+ bne .L337
3368
+ strh w0, [x1, x4, lsl 1]
3369
+ ldrh w0, [x3, 3284]
25783370 add w0, w0, 1
2579
- strh w0, [x4, 3284]
2580
- b .L288
2581
-.L289:
3371
+ strh w0, [x3, 3284]
3372
+ b .L337
3373
+.L338:
25823374 add x4, x4, 1
2583
- add x2, x6, x4, lsl 1
2584
- ldrh w2, [x2, -2]
2585
- cmp w2, w9
2586
- bne .L287
2587
-.L288:
2588
- add x0, x3, :lo12:.LANCHOR0
2589
- mov w1, 12
2590
- ldrh w3, [x0, 3296]
2591
- ldr x4, [x0, 3304]
2592
- umull x3, w3, w1
2593
- add x4, x4, x3
2594
- str w8, [x4, 4]
2595
- ldr x1, [x0, 3304]
2596
- add x4, x1, x3
2597
- str w7, [x4, 8]
2598
- str w5, [x1, x3]
2599
- ldrh w1, [x0, 3296]
2600
- add w1, w1, 1
2601
- strh w1, [x0, 3296]
2602
- ldp x29, x30, [sp], 16
3375
+ ldrh w2, [x7, x4, lsl 1]
3376
+ cmp w2, w6
3377
+ bne .L336
3378
+.L337:
3379
+ ldrh w4, [x3, 3296]
3380
+ mov w0, 12
3381
+ umull x4, w4, w0
3382
+ ldr x0, [x3, 3304]
3383
+ add x0, x0, x4
3384
+ str w21, [x0, 4]
3385
+ ldr x0, [x3, 3304]
3386
+ add x1, x0, x4
3387
+ str w20, [x1, 8]
3388
+ str w19, [x0, x4]
3389
+ ldrh w0, [x3, 3296]
3390
+ add w0, w0, 1
3391
+ strh w0, [x3, 3296]
3392
+ ldp x19, x20, [sp, 16]
3393
+ ldr x21, [sp, 32]
3394
+ ldp x29, x30, [sp], 48
3395
+ hint 29 // autiasp
26033396 ret
26043397 .size FtlGcUpdatePage, .-FtlGcUpdatePage
3398
+ .section .rodata.str1.1
3399
+.LC80:
3400
+ .string "FtlGcRefreshBlock 0x%x\n"
3401
+ .text
26053402 .align 2
26063403 .global FtlGcRefreshBlock
26073404 .type FtlGcRefreshBlock, %function
26083405 FtlGcRefreshBlock:
3406
+ hint 34 // bti c
3407
+ .section __patchable_function_entries
3408
+ .align 3
3409
+ .8byte .LPFE49
3410
+ .text
3411
+.LPFE49:
3412
+ nop
3413
+ nop
3414
+ hint 25 // paciasp
26093415 stp x29, x30, [sp, -32]!
2610
- add x29, sp, 0
3416
+ mov x29, sp
26113417 str x19, [sp, 16]
26123418 and w19, w0, 65535
26133419 mov w1, w19
2614
- adrp x0, .LC79
2615
- add x0, x0, :lo12:.LC79
3420
+ adrp x0, .LC80
3421
+ add x0, x0, :lo12:.LC80
26163422 bl sftl_printk
26173423 adrp x0, .LANCHOR0
26183424 add x0, x0, :lo12:.LANCHOR0
26193425 ldrh w3, [x0, 226]
2620
- cmp w19, w3
2621
- beq .L292
3426
+ cmp w3, w19
3427
+ beq .L341
26223428 ldrh w2, [x0, 224]
2623
- cmp w19, w2
2624
- beq .L292
3429
+ cmp w2, w19
3430
+ beq .L341
26253431 mov w1, 65535
26263432 cmp w3, w1
2627
- bne .L293
3433
+ bne .L342
26283434 strh w19, [x0, 226]
2629
-.L292:
3435
+.L341:
26303436 mov w0, 0
26313437 ldr x19, [sp, 16]
26323438 ldp x29, x30, [sp], 32
3439
+ hint 29 // autiasp
26333440 ret
2634
-.L293:
3441
+.L342:
26353442 cmp w2, w1
2636
- bne .L292
3443
+ bne .L341
26373444 strh w19, [x0, 224]
2638
- b .L292
3445
+ b .L341
26393446 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock
3447
+ .section .rodata.str1.1
3448
+.LC81:
3449
+ .string "FtlGcMarkBadPhyBlk %d 0x%x\n"
3450
+ .text
26403451 .align 2
26413452 .global FtlGcMarkBadPhyBlk
26423453 .type FtlGcMarkBadPhyBlk, %function
26433454 FtlGcMarkBadPhyBlk:
3455
+ hint 34 // bti c
3456
+ .section __patchable_function_entries
3457
+ .align 3
3458
+ .8byte .LPFE50
3459
+ .text
3460
+.LPFE50:
3461
+ nop
3462
+ nop
3463
+ hint 25 // paciasp
26443464 stp x29, x30, [sp, -48]!
2645
- add x29, sp, 0
3465
+ mov x29, sp
26463466 stp x19, x20, [sp, 16]
26473467 adrp x19, .LANCHOR0
2648
- add x20, x19, :lo12:.LANCHOR0
2649
- stp x21, x22, [sp, 32]
2650
- and w21, w0, 65535
2651
- add x20, x20, 3320
2652
- mov w0, w21
2653
- bl P2V_block_in_plane
2654
- ldrh w1, [x20, -8]
2655
- mov w2, w21
2656
- mov w22, w0
2657
- adrp x0, .LC80
2658
- add x0, x0, :lo12:.LC80
2659
- bl sftl_printk
2660
- mov w0, w22
2661
- bl FtlGcRefreshBlock
2662
- ldrh w0, [x20, -8]
2663
- mov x1, 0
2664
-.L296:
2665
- cmp w0, w1, uxth
2666
- bhi .L298
2667
- cmp w0, 15
2668
- bhi .L297
26693468 add x19, x19, :lo12:.LANCHOR0
3469
+ and w20, w0, 65535
3470
+ str x21, [sp, 32]
3471
+ mov w0, w20
3472
+ bl P2V_block_in_plane
3473
+ ldrh w1, [x19, 3312]
3474
+ mov w2, w20
3475
+ mov w21, w0
3476
+ adrp x0, .LC81
3477
+ add x0, x0, :lo12:.LC81
3478
+ bl sftl_printk
3479
+ mov w0, w21
3480
+ bl FtlGcRefreshBlock
3481
+ ldrh w0, [x19, 3312]
3482
+ add x2, x19, 3314
3483
+ mov x1, 0
3484
+.L345:
3485
+ cmp w0, w1, uxth
3486
+ bhi .L347
3487
+ cmp w0, 15
3488
+ bhi .L346
26703489 add w1, w0, 1
2671
- add x19, x19, 3320
2672
- strh w1, [x19, -8]
2673
- strh w21, [x19, w0, sxtw 1]
2674
- b .L297
2675
-.L298:
3490
+ add x19, x19, 3314
3491
+ strh w1, [x19, -2]
3492
+ strh w20, [x19, w0, sxtw 1]
3493
+ b .L346
3494
+.L347:
26763495 add x1, x1, 1
2677
- add x2, x20, x1, lsl 1
2678
- ldrh w2, [x2, -2]
2679
- cmp w2, w21
2680
- bne .L296
2681
-.L297:
3496
+ add x3, x2, x1, lsl 1
3497
+ ldrh w3, [x3, -2]
3498
+ cmp w3, w20
3499
+ bne .L345
3500
+.L346:
26823501 mov w0, 0
26833502 ldp x19, x20, [sp, 16]
2684
- ldp x21, x22, [sp, 32]
3503
+ ldr x21, [sp, 32]
26853504 ldp x29, x30, [sp], 48
3505
+ hint 29 // autiasp
26863506 ret
26873507 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
26883508 .align 2
26893509 .global FtlGcReFreshBadBlk
26903510 .type FtlGcReFreshBadBlk, %function
26913511 FtlGcReFreshBadBlk:
3512
+ hint 34 // bti c
3513
+ .section __patchable_function_entries
3514
+ .align 3
3515
+ .8byte .LPFE51
3516
+ .text
3517
+.LPFE51:
3518
+ nop
3519
+ nop
3520
+ hint 25 // paciasp
26923521 stp x29, x30, [sp, -32]!
2693
- add x29, sp, 0
3522
+ mov x29, sp
26943523 str x19, [sp, 16]
26953524 adrp x19, .LANCHOR0
2696
- add x0, x19, :lo12:.LANCHOR0
2697
- ldrh w1, [x0, 3312]
2698
- cbz w1, .L301
2699
- ldrh w3, [x0, 226]
2700
- mov w2, 65535
2701
- cmp w3, w2
2702
- bne .L301
2703
- ldrh w2, [x0, 3354]
2704
- cmp w2, w1
2705
- bcc .L302
2706
- strh wzr, [x0, 3354]
2707
-.L302:
27083525 add x19, x19, :lo12:.LANCHOR0
2709
- add x0, x19, 3320
2710
- ldrh w1, [x19, 3354]
3526
+ ldrh w0, [x19, 3312]
3527
+ cbz w0, .L350
3528
+ ldrh w2, [x19, 226]
3529
+ mov w1, 65535
3530
+ cmp w2, w1
3531
+ bne .L350
3532
+ ldrh w1, [x19, 3348]
3533
+ cmp w1, w0
3534
+ bcc .L351
3535
+ strh wzr, [x19, 3348]
3536
+.L351:
3537
+ ldrh w1, [x19, 3348]
3538
+ add x0, x19, 3314
27113539 ldrh w0, [x0, x1, lsl 1]
27123540 bl P2V_block_in_plane
27133541 bl FtlGcRefreshBlock
2714
- ldrh w0, [x19, 3354]
3542
+ ldrh w0, [x19, 3348]
27153543 add w0, w0, 1
2716
- strh w0, [x19, 3354]
2717
-.L301:
3544
+ strh w0, [x19, 3348]
3545
+.L350:
27183546 mov w0, 0
27193547 ldr x19, [sp, 16]
27203548 ldp x29, x30, [sp], 32
3549
+ hint 29 // autiasp
27213550 ret
27223551 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
27233552 .align 2
27243553 .global ftl_malloc
27253554 .type ftl_malloc, %function
27263555 ftl_malloc:
3556
+ hint 34 // bti c
3557
+ .section __patchable_function_entries
3558
+ .align 3
3559
+ .8byte .LPFE52
3560
+ .text
3561
+.LPFE52:
3562
+ nop
3563
+ nop
3564
+ hint 25 // paciasp
27273565 stp x29, x30, [sp, -16]!
2728
- mov w1, 193
2729
- movk w1, 0x60, lsl 16
3566
+ mov w1, 3265
3567
+ mov x29, sp
27303568 sxtw x0, w0
2731
- add x29, sp, 0
27323569 bl __kmalloc
27333570 ldp x29, x30, [sp], 16
3571
+ hint 29 // autiasp
27343572 ret
27353573 .size ftl_malloc, .-ftl_malloc
27363574 .align 2
27373575 .global ftl_free
27383576 .type ftl_free, %function
27393577 ftl_free:
3578
+ hint 34 // bti c
3579
+ .section __patchable_function_entries
3580
+ .align 3
3581
+ .8byte .LPFE53
3582
+ .text
3583
+.LPFE53:
3584
+ nop
3585
+ nop
3586
+ hint 25 // paciasp
27403587 stp x29, x30, [sp, -16]!
2741
- add x29, sp, 0
3588
+ mov x29, sp
27423589 bl kfree
27433590 ldp x29, x30, [sp], 16
3591
+ hint 29 // autiasp
27443592 ret
27453593 .size ftl_free, .-ftl_free
3594
+ .section .rodata.str1.1
3595
+.LC82:
3596
+ .string "%s %p + 0x%x:"
3597
+.LC83:
3598
+ .string "0x%08x,"
3599
+.LC84:
3600
+ .string "0x%04x,"
3601
+.LC85:
3602
+ .string "0x%02x,"
3603
+.LC86:
3604
+ .string "\n"
3605
+ .text
27463606 .align 2
27473607 .global rknand_print_hex
27483608 .type rknand_print_hex, %function
27493609 rknand_print_hex:
3610
+ hint 34 // bti c
3611
+ .section __patchable_function_entries
3612
+ .align 3
3613
+ .8byte .LPFE54
3614
+ .text
3615
+.LPFE54:
3616
+ nop
3617
+ nop
3618
+ hint 25 // paciasp
27503619 stp x29, x30, [sp, -96]!
2751
- add x29, sp, 0
2752
- stp x21, x22, [sp, 32]
2753
- mov x21, x1
2754
- stp x23, x24, [sp, 48]
2755
- adrp x24, .LC81
2756
- stp x25, x26, [sp, 64]
2757
- mov w23, w2
2758
- stp x27, x28, [sp, 80]
2759
- adrp x25, .LC84
2760
- mov x27, x0
2761
- mov w26, w3
2762
- add x24, x24, :lo12:.LC81
2763
- add x25, x25, :lo12:.LC84
3620
+ mov x29, sp
27643621 stp x19, x20, [sp, 16]
2765
- mov w22, 0
3622
+ mov x20, x1
27663623 mov x19, 0
2767
- mov w20, 0
2768
- adrp x28, .LC83
2769
-.L312:
2770
- cmp w26, w19
2771
- bhi .L318
2772
- adrp x0, .LC85
2773
- add x0, x0, :lo12:.LC85
3624
+ stp x21, x22, [sp, 32]
3625
+ mov w22, w2
3626
+ mov w21, 0
3627
+ stp x23, x24, [sp, 48]
3628
+ mov w23, w3
3629
+ mov w24, 0
3630
+ stp x25, x26, [sp, 64]
3631
+ adrp x26, .LC82
3632
+ mov x25, x0
3633
+ add x26, x26, :lo12:.LC82
3634
+ stp x27, x28, [sp, 80]
3635
+ adrp x27, .LC85
3636
+ add x27, x27, :lo12:.LC85
3637
+ adrp x28, .LC84
3638
+.L361:
3639
+ cmp w23, w19
3640
+ bhi .L367
3641
+ adrp x0, .LC86
3642
+ add x0, x0, :lo12:.LC86
27743643 bl sftl_printk
27753644 ldp x19, x20, [sp, 16]
27763645 ldp x21, x22, [sp, 32]
....@@ -2778,374 +3647,444 @@
27783647 ldp x25, x26, [sp, 64]
27793648 ldp x27, x28, [sp, 80]
27803649 ldp x29, x30, [sp], 96
3650
+ hint 29 // autiasp
27813651 ret
2782
-.L318:
2783
- cbnz w20, .L313
2784
- mov w3, w22
2785
- mov x2, x21
2786
- mov x1, x27
2787
- mov x0, x24
3652
+.L367:
3653
+ cbnz w21, .L362
3654
+ mov w3, w24
3655
+ mov x2, x20
3656
+ mov x1, x25
3657
+ mov x0, x26
27883658 bl sftl_printk
2789
-.L313:
2790
- cmp w23, 4
2791
- bne .L314
2792
- ldr w1, [x21, x19, lsl 2]
2793
- adrp x0, .LC82
2794
- add x0, x0, :lo12:.LC82
2795
-.L320:
3659
+.L362:
3660
+ cmp w22, 4
3661
+ bne .L363
3662
+ ldr w1, [x20, x19, lsl 2]
3663
+ adrp x0, .LC83
3664
+ add x0, x0, :lo12:.LC83
3665
+.L369:
3666
+ add w21, w21, 1
27963667 bl sftl_printk
2797
- add w20, w20, 1
2798
- cmp w20, 15
2799
- bls .L317
2800
- mov w20, 0
2801
- adrp x0, .LC85
2802
- add x0, x0, :lo12:.LC85
3668
+ cmp w21, 15
3669
+ bls .L366
3670
+ mov w21, 0
3671
+ adrp x0, .LC86
3672
+ add x0, x0, :lo12:.LC86
28033673 bl sftl_printk
2804
-.L317:
3674
+.L366:
28053675 add x19, x19, 1
2806
- add w22, w22, w23
2807
- b .L312
2808
-.L314:
2809
- cmp w23, 2
2810
- bne .L316
2811
- ldrh w1, [x21, x19, lsl 1]
2812
- add x0, x28, :lo12:.LC83
2813
- b .L320
2814
-.L316:
2815
- ldrb w1, [x21, x19]
2816
- mov x0, x25
2817
- b .L320
3676
+ add w24, w24, w22
3677
+ b .L361
3678
+.L363:
3679
+ cmp w22, 2
3680
+ bne .L365
3681
+ ldrh w1, [x20, x19, lsl 1]
3682
+ add x0, x28, :lo12:.LC84
3683
+ b .L369
3684
+.L365:
3685
+ ldrb w1, [x20, x19]
3686
+ mov x0, x27
3687
+ b .L369
28183688 .size rknand_print_hex, .-rknand_print_hex
3689
+ .section .rodata.str1.1
3690
+.LC87:
3691
+ .string "%s: addr: %x is in id block!!!!!!!!!!\n"
3692
+.LC88:
3693
+ .string "not free: w: d:"
3694
+.LC89:
3695
+ .string "not free: w: s:"
3696
+ .text
28193697 .align 2
28203698 .global FlashEraseBlocks
28213699 .type FlashEraseBlocks, %function
28223700 FlashEraseBlocks:
2823
- stp x29, x30, [sp, -112]!
2824
- add x29, sp, 0
2825
- stp x19, x20, [sp, 16]
2826
- adrp x19, .LANCHOR0
2827
- add x19, x19, :lo12:.LANCHOR0
3701
+ hint 34 // bti c
3702
+ .section __patchable_function_entries
3703
+ .align 3
3704
+ .8byte .LPFE55
3705
+ .text
3706
+.LPFE55:
3707
+ nop
3708
+ nop
3709
+ hint 25 // paciasp
3710
+ stp x29, x30, [sp, -96]!
3711
+ mrs x1, sp_el0
3712
+ mov x29, sp
28283713 stp x21, x22, [sp, 32]
3714
+ adrp x21, .LANCHOR0
3715
+ add x21, x21, :lo12:.LANCHOR0
3716
+ stp x19, x20, [sp, 16]
3717
+ mov x19, x0
3718
+ mov w0, 32
28293719 stp x23, x24, [sp, 48]
2830
- ubfiz x23, x2, 5, 32
3720
+ mov x20, x19
3721
+ umaddl x22, w2, w0, x19
28313722 stp x25, x26, [sp, 64]
2832
- mov x20, x0
2833
- str x27, [sp, 80]
2834
- adrp x21, __stack_chk_guard
2835
- add x24, x23, 4
2836
- add x0, x21, :lo12:__stack_chk_guard
2837
- ldrh w25, [x19, 12]
2838
- add x22, x20, 4
2839
- add x24, x20, x24
2840
- ldr x1, [x0]
2841
- str x1, [x29, 104]
2842
- mov x1,0
2843
- mov w26, -1
2844
- lsl w27, w25, 3
2845
-.L322:
2846
- cmp x22, x24
2847
- beq .L326
2848
- ldr w0, [x22]
2849
- add x2, x29, 96
2850
- add x1, x29, 100
3723
+ mov w24, -1
3724
+ ldrh w23, [x21, 12]
3725
+ ldr x3, [x1, 1376]
3726
+ str x3, [sp, 88]
3727
+ mov x3, 0
3728
+ lsl w26, w23, 3
3729
+.L371:
3730
+ cmp x20, x22
3731
+ beq .L375
3732
+ ldr w0, [x20, 4]
3733
+ add x2, sp, 80
3734
+ add x1, sp, 84
28513735 bl l2p_addr_tran.isra.0
2852
- ldr w0, [x29, 96]
2853
- cbnz w0, .L323
2854
- ldr w1, [x29, 100]
2855
- cmp w27, w1
2856
- bls .L323
2857
- mov x19, x20
2858
- add x23, x20, x23
3736
+ ldr w0, [sp, 80]
3737
+ cbnz w0, .L372
3738
+ ldr w1, [sp, 84]
3739
+ cmp w26, w1
3740
+ bls .L372
28593741 adrp x20, .LANCHOR1
28603742 add x20, x20, :lo12:.LANCHOR1
2861
- adrp x22, .LC86
2862
- add x20, x20, 160
2863
- add x22, x22, :lo12:.LC86
2864
-.L324:
2865
- cmp x19, x23
2866
- bne .L325
3743
+ adrp x21, .LC87
3744
+ add x20, x20, 130
3745
+ add x21, x21, :lo12:.LC87
3746
+.L373:
3747
+ cmp x19, x22
3748
+ bne .L374
28673749 bl dump_stack
2868
-.L326:
2869
- add x21, x21, :lo12:__stack_chk_guard
2870
- mov w0, 0
2871
- ldr x2, [x29, 104]
2872
- ldr x1, [x21]
2873
- eor x1, x2, x1
2874
- cbz x1, .L333
3750
+.L375:
3751
+ mrs x0, sp_el0
3752
+ ldr x1, [sp, 88]
3753
+ ldr x2, [x0, 1376]
3754
+ subs x1, x1, x2
3755
+ mov x2, 0
3756
+ beq .L382
28753757 bl __stack_chk_fail
2876
-.L325:
2877
- ldr w2, [x29, 100]
3758
+.L374:
3759
+ ldr w2, [sp, 84]
28783760 mov w0, -1
28793761 str w0, [x19]
28803762 mov x1, x20
2881
- mov x0, x22
3763
+ mov x0, x21
28823764 add x19, x19, 32
28833765 bl sftl_printk
28843766 ldr x1, [x19, -24]
28853767 mov w3, 16
28863768 mov w2, 4
2887
- adrp x0, .LC87
2888
- add x0, x0, :lo12:.LC87
3769
+ adrp x0, .LC88
3770
+ add x0, x0, :lo12:.LC88
28893771 bl rknand_print_hex
28903772 ldr x1, [x19, -16]
28913773 mov w3, 4
2892
- adrp x0, .LC88
3774
+ adrp x0, .LC89
28933775 mov w2, w3
2894
- add x0, x0, :lo12:.LC88
3776
+ add x0, x0, :lo12:.LC89
28953777 bl rknand_print_hex
2896
- b .L324
2897
-.L323:
2898
- ldr w1, [x29, 100]
2899
- ldr x2, [x19, 3368]
3778
+ b .L373
3779
+.L372:
3780
+ ldr w1, [sp, 84]
3781
+ ldr x2, [x21, 3360]
29003782 blr x2
29013783 cmp w0, 0
2902
- csel w0, w26, wzr, ne
2903
- str w0, [x22, -4]
2904
- ldrh w0, [x19, 14]
3784
+ csel w0, wzr, w24, eq
3785
+ str w0, [x20]
3786
+ ldrh w0, [x21, 14]
29053787 cmp w0, 4
2906
- bne .L330
2907
- ldrb w0, [x29, 96]
2908
- ldr x2, [x19, 3368]
2909
- ldr w1, [x29, 100]
2910
- add w1, w25, w1
3788
+ bne .L379
3789
+ ldrb w0, [sp, 80]
3790
+ ldr x2, [x21, 3360]
3791
+ ldr w1, [sp, 84]
3792
+ add w1, w23, w1
29113793 blr x2
2912
- cbz w0, .L330
2913
- str w26, [x22, -4]
2914
-.L330:
2915
- add x22, x22, 32
2916
- b .L322
2917
-.L333:
3794
+ cbz w0, .L379
3795
+ str w24, [x20]
3796
+.L379:
3797
+ add x20, x20, 32
3798
+ b .L371
3799
+.L382:
3800
+ mov w0, 0
29183801 ldp x19, x20, [sp, 16]
29193802 ldp x21, x22, [sp, 32]
29203803 ldp x23, x24, [sp, 48]
29213804 ldp x25, x26, [sp, 64]
2922
- ldr x27, [sp, 80]
2923
- ldp x29, x30, [sp], 112
3805
+ ldp x29, x30, [sp], 96
3806
+ hint 29 // autiasp
29243807 ret
29253808 .size FlashEraseBlocks, .-FlashEraseBlocks
29263809 .align 2
29273810 .global FtlFreeSysBlkQueueIn
29283811 .type FtlFreeSysBlkQueueIn, %function
29293812 FtlFreeSysBlkQueueIn:
3813
+ hint 34 // bti c
3814
+ .section __patchable_function_entries
3815
+ .align 3
3816
+ .8byte .LPFE56
3817
+ .text
3818
+.LPFE56:
3819
+ nop
3820
+ nop
3821
+ hint 25 // paciasp
29303822 stp x29, x30, [sp, -48]!
2931
- add x29, sp, 0
2932
- stp x21, x22, [sp, 32]
3823
+ mov x29, sp
3824
+ str x21, [sp, 32]
29333825 and w21, w0, 65535
2934
- stp x19, x20, [sp, 16]
29353826 sub w2, w21, #1
29363827 mov w0, 65533
3828
+ stp x19, x20, [sp, 16]
29373829 cmp w0, w2, uxth
2938
- bcc .L338
2939
- adrp x0, .LANCHOR0
2940
- add x20, x0, :lo12:.LANCHOR0
2941
- mov x19, x0
2942
- ldrh w2, [x20, 462]
2943
- cmp w2, 1024
2944
- beq .L338
3830
+ bcc .L388
3831
+ adrp x19, .LANCHOR0
3832
+ add x19, x19, :lo12:.LANCHOR0
3833
+ ldrh w0, [x19, 462]
3834
+ cmp w0, 1024
3835
+ beq .L388
29453836 and w1, w1, 65535
2946
- cbz w1, .L340
3837
+ cbz w1, .L390
29473838 mov w0, w21
29483839 bl P2V_block_in_plane
2949
- and w22, w0, 65535
2950
- ldr x0, [x20, 3408]
3840
+ and w20, w0, 65535
29513841 lsl w1, w21, 10
3842
+ ldr x0, [x19, 3400]
29523843 mov w2, 1
29533844 str w1, [x0, 4]
29543845 mov w1, w2
2955
- ldr x0, [x20, 3408]
3846
+ ldr x0, [x19, 3400]
29563847 bl FlashEraseBlocks
2957
- ldr x2, [x20, 2600]
2958
- ubfiz x0, x22, 1, 16
3848
+ ldr x2, [x19, 2600]
3849
+ ubfiz x0, x20, 1, 16
29593850 ldrh w1, [x2, x0]
29603851 add w1, w1, 1
29613852 strh w1, [x2, x0]
2962
- ldr w0, [x20, 2680]
3853
+ ldr w0, [x19, 2680]
29633854 add w0, w0, 1
2964
- str w0, [x20, 2680]
2965
-.L340:
2966
- add x0, x19, :lo12:.LANCHOR0
2967
- add x0, x0, 456
2968
- ldrh w1, [x0, 6]
2969
- add w1, w1, 1
2970
- strh w1, [x0, 6]
2971
- ldrh w1, [x0, 4]
2972
- add x2, x0, x1, sxtw 1
2973
- add w1, w1, 1
2974
- and w1, w1, 1023
2975
- strh w1, [x0, 4]
2976
- strh w21, [x2, 8]
2977
-.L338:
3855
+ str w0, [x19, 2680]
3856
+.L390:
3857
+ ldrh w0, [x19, 462]
3858
+ add x19, x19, 456
3859
+ ldrh w1, [x19, 4]
3860
+ add w0, w0, 1
3861
+ strh w0, [x19, 6]
3862
+ ldrh w0, [x19, 4]
3863
+ add x1, x19, x1, lsl 1
3864
+ add w0, w0, 1
3865
+ and w0, w0, 1023
3866
+ strh w0, [x19, 4]
3867
+ strh w21, [x1, 8]
3868
+.L388:
29783869 ldp x19, x20, [sp, 16]
2979
- ldp x21, x22, [sp, 32]
3870
+ ldr x21, [sp, 32]
29803871 ldp x29, x30, [sp], 48
3872
+ hint 29 // autiasp
29813873 ret
29823874 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
3875
+ .section .rodata.str1.1
3876
+.LC90:
3877
+ .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n"
3878
+ .text
29833879 .align 2
29843880 .global FtlFreeSysBlkQueueOut
29853881 .type FtlFreeSysBlkQueueOut, %function
29863882 FtlFreeSysBlkQueueOut:
2987
- stp x29, x30, [sp, -48]!
2988
- adrp x0, .LANCHOR0
2989
- add x29, sp, 0
2990
- str x21, [sp, 32]
2991
- add x21, x0, :lo12:.LANCHOR0
3883
+ hint 34 // bti c
3884
+ .section __patchable_function_entries
3885
+ .align 3
3886
+ .8byte .LPFE57
3887
+ .text
3888
+.LPFE57:
3889
+ nop
3890
+ nop
3891
+ hint 25 // paciasp
3892
+ stp x29, x30, [sp, -32]!
3893
+ mov x29, sp
29923894 stp x19, x20, [sp, 16]
2993
- mov x19, x0
2994
- ldrh w2, [x21, 462]
2995
- cbz w2, .L352
2996
- ldrh w0, [x21, 458]
2997
- add x1, x21, 456
3895
+ adrp x19, .LANCHOR0
3896
+ add x19, x19, :lo12:.LANCHOR0
3897
+ ldrh w2, [x19, 462]
3898
+ cbz w2, .L402
3899
+ ldrh w3, [x19, 458]
3900
+ add x0, x19, 456
3901
+ ldrh w1, [x19, 458]
29983902 sub w2, w2, #1
2999
- strh w2, [x21, 462]
3903
+ strh w2, [x19, 462]
30003904 mov w2, 1
3001
- add x3, x1, x0, sxtw 1
3002
- add w0, w0, 1
3003
- and w0, w0, 1023
3004
- strh w0, [x21, 458]
3005
- ldr x0, [x21, 3408]
3905
+ add x3, x0, x3, lsl 1
3906
+ add w1, w1, 1
3907
+ ldr x0, [x19, 3400]
3908
+ and w1, w1, 1023
30063909 ldrh w20, [x3, 8]
3910
+ strh w1, [x19, 458]
30073911 lsl w1, w20, 10
30083912 str w1, [x0, 4]
30093913 mov w1, w2
3010
- ldr x0, [x21, 3408]
3914
+ ldr x0, [x19, 3400]
30113915 bl FlashEraseBlocks
3012
- ldr w0, [x21, 2680]
3916
+ ldr w0, [x19, 2680]
3917
+ sub w1, w20, #1
30133918 add w0, w0, 1
3014
- str w0, [x21, 2680]
3015
-.L349:
3016
- sub w0, w20, #1
3017
- mov w1, 65533
3018
- cmp w1, w0, uxth
3019
- bcs .L350
3020
- add x0, x19, :lo12:.LANCHOR0
3919
+ str w0, [x19, 2680]
3920
+ mov w0, 65533
3921
+ cmp w0, w1, uxth
3922
+ bcs .L400
3923
+.L399:
3924
+ ldrh w2, [x19, 462]
3925
+ adrp x0, .LC90
30213926 mov w1, w20
3022
- ldrh w2, [x0, 462]
3023
- adrp x0, .LC89
3024
- add x0, x0, :lo12:.LC89
3927
+ add x0, x0, :lo12:.LC90
30253928 bl sftl_printk
3026
-.L351:
3027
- b .L351
3028
-.L352:
3929
+.L401:
3930
+ b .L401
3931
+.L402:
30293932 mov w20, 65535
3030
- b .L349
3031
-.L350:
3933
+ b .L399
3934
+.L400:
30323935 mov w0, w20
3033
- ldr x21, [sp, 32]
30343936 ldp x19, x20, [sp, 16]
3035
- ldp x29, x30, [sp], 48
3937
+ ldp x29, x30, [sp], 32
3938
+ hint 29 // autiasp
30363939 ret
30373940 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
3941
+ .section .rodata.str1.1
3942
+.LC91:
3943
+ .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n"
3944
+ .text
30383945 .align 2
30393946 .global ftl_map_blk_alloc_new_blk
30403947 .type ftl_map_blk_alloc_new_blk, %function
30413948 ftl_map_blk_alloc_new_blk:
3949
+ hint 34 // bti c
3950
+ .section __patchable_function_entries
3951
+ .align 3
3952
+ .8byte .LPFE58
3953
+ .text
3954
+.LPFE58:
3955
+ nop
3956
+ nop
3957
+ hint 25 // paciasp
30423958 stp x29, x30, [sp, -48]!
3043
- add x29, sp, 0
3959
+ mov x29, sp
30443960 stp x19, x20, [sp, 16]
30453961 mov x19, x0
3046
- str x21, [sp, 32]
30473962 mov w20, 0
3963
+ str x21, [sp, 32]
30483964 ldrh w1, [x0, 10]
30493965 ldr x0, [x0, 16]
3050
-.L355:
3051
- cmp w20, w1
3052
- beq .L359
3966
+.L405:
3967
+ cmp w1, w20
3968
+ beq .L411
30533969 mov x21, x0
30543970 ldrh w2, [x0], 2
3055
- cbnz w2, .L356
3971
+ cbnz w2, .L406
30563972 bl FtlFreeSysBlkQueueOut
30573973 and w1, w0, 65535
3058
- strh w0, [x21]
30593974 sub w2, w1, #1
3975
+ strh w0, [x21]
30603976 mov w0, 65533
30613977 cmp w0, w2, uxth
3062
- bcs .L357
3978
+ bcs .L407
30633979 adrp x0, .LANCHOR0+462
30643980 ldrh w2, [x0, #:lo12:.LANCHOR0+462]
3065
- adrp x0, .LC90
3066
- add x0, x0, :lo12:.LC90
3981
+ adrp x0, .LC91
3982
+ add x0, x0, :lo12:.LC91
30673983 bl sftl_printk
3068
-.L358:
3069
- b .L358
3070
-.L357:
3984
+.L408:
3985
+ b .L408
3986
+.L407:
30713987 ldr w0, [x19, 48]
3072
- strh wzr, [x19, 2]
3988
+ strh w20, [x19]
30733989 add w0, w0, 1
30743990 str w0, [x19, 48]
30753991 ldrh w0, [x19, 8]
3076
- strh w20, [x19]
3992
+ strh wzr, [x19, 2]
30773993 add w0, w0, 1
30783994 strh w0, [x19, 8]
3079
-.L359:
30803995 ldrh w0, [x19, 10]
30813996 cmp w0, w20
3082
- bhi .L361
3997
+ bhi .L409
3998
+.L411:
30833999 adrp x1, .LANCHOR1
30844000 add x1, x1, :lo12:.LANCHOR1
3085
- adrp x0, .LC8
4001
+ adrp x0, .LC9
4002
+ add x1, x1, 147
4003
+ add x0, x0, :lo12:.LC9
30864004 mov w2, 578
3087
- add x1, x1, 184
3088
- add x0, x0, :lo12:.LC8
30894005 bl sftl_printk
3090
-.L361:
4006
+.L409:
30914007 mov w0, 0
3092
- ldr x21, [sp, 32]
30934008 ldp x19, x20, [sp, 16]
4009
+ ldr x21, [sp, 32]
30944010 ldp x29, x30, [sp], 48
4011
+ hint 29 // autiasp
30954012 ret
3096
-.L356:
4013
+.L406:
30974014 add w20, w20, 1
30984015 and w20, w20, 65535
3099
- b .L355
4016
+ b .L405
31004017 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
31014018 .align 2
31024019 .global ftl_memset
31034020 .type ftl_memset, %function
31044021 ftl_memset:
4022
+ hint 34 // bti c
4023
+ .section __patchable_function_entries
4024
+ .align 3
4025
+ .8byte .LPFE59
4026
+ .text
4027
+.LPFE59:
4028
+ nop
4029
+ nop
4030
+ hint 25 // paciasp
31054031 stp x29, x30, [sp, -16]!
31064032 uxtw x2, w2
3107
- add x29, sp, 0
4033
+ mov x29, sp
31084034 bl memset
31094035 ldp x29, x30, [sp], 16
4036
+ hint 29 // autiasp
31104037 ret
31114038 .size ftl_memset, .-ftl_memset
4039
+ .section .rodata.str1.1
4040
+.LC92:
4041
+ .string "%s error allocating memory. return -1\n"
4042
+ .text
31124043 .align 2
31134044 .global FtlMemInit
31144045 .type FtlMemInit, %function
31154046 FtlMemInit:
4047
+ hint 34 // bti c
4048
+ .section __patchable_function_entries
4049
+ .align 3
4050
+ .8byte .LPFE60
4051
+ .text
4052
+.LPFE60:
4053
+ nop
4054
+ nop
4055
+ hint 25 // paciasp
31164056 stp x29, x30, [sp, -48]!
31174057 mov w0, 65535
3118
- add x29, sp, 0
4058
+ mov x29, sp
31194059 stp x19, x20, [sp, 16]
3120
- adrp x20, .LANCHOR0
3121
- add x19, x20, :lo12:.LANCHOR0
3122
- stp x21, x22, [sp, 32]
3123
- add x1, x19, 2560
3124
- add x2, x19, 2560
3125
- add x3, x19, 3328
3126
- strh wzr, [x19, 3232]
3127
- strh wzr, [x19, 3312]
3128
- stp wzr, wzr, [x1, 68]
3129
- stp wzr, wzr, [x1, 76]
3130
- str wzr, [x19, 2644]
3131
- str wzr, [x19, 2648]
3132
- stp wzr, wzr, [x2, 100]
3133
- stp wzr, wzr, [x2, 108]
3134
- str wzr, [x19, 2680]
3135
- str wzr, [x19, 2684]
4060
+ adrp x19, .LANCHOR0
4061
+ add x19, x19, :lo12:.LANCHOR0
4062
+ add x4, x19, 3416
4063
+ add x3, x19, 2676
4064
+ add x2, x19, 2656
4065
+ add x1, x19, 2636
31364066 str wzr, [x19, 2688]
3137
- str wzr, [x19, 3228]
3138
- str wzr, [x19, 3236]
3139
- stp wzr, w0, [x3, 88]
4067
+ stp wzr, w0, [x4, -8]
31404068 mov w0, -1
3141
- stp wzr, wzr, [x3, 96]
3142
- strh w0, [x19, 226]
31434069 strh w0, [x19, 224]
4070
+ strh w0, [x19, 226]
31444071 mov w0, 32
4072
+ stp wzr, wzr, [x2, -12]
4073
+ stp wzr, wzr, [x3, -8]
4074
+ stp wzr, wzr, [x1, -8]
4075
+ stp wzr, wzr, [x4]
4076
+ stp wzr, wzr, [x1]
4077
+ stp wzr, wzr, [x3, 4]
4078
+ stp wzr, wzr, [x2, 4]
31454079 strh w0, [x19, 3224]
31464080 mov w0, 128
4081
+ str x21, [sp, 32]
31474082 strh w0, [x19, 3226]
3148
- strh wzr, [x19, 3354]
4083
+ str wzr, [x19, 3228]
4084
+ strh wzr, [x19, 3232]
4085
+ str wzr, [x19, 3236]
4086
+ strh wzr, [x19, 3312]
4087
+ strh wzr, [x19, 3348]
31494088 ldrh w0, [x19, 310]
31504089 lsl w0, w0, 1
31514090 bl ftl_malloc
....@@ -3154,109 +4093,109 @@
31544093 mov w0, 12
31554094 mul w0, w1, w0
31564095 bl ftl_malloc
3157
- ldrh w21, [x19, 236]
4096
+ ldrh w20, [x19, 236]
31584097 str x0, [x19, 3304]
3159
- lsl w22, w21, 5
3160
- lsl w21, w21, 7
4098
+ lsl w21, w20, 7
4099
+ lsl w20, w20, 5
31614100 mov w0, w21
4101
+ bl ftl_malloc
4102
+ str x0, [x19, 3424]
4103
+ mov w0, w20
31624104 bl ftl_malloc
31634105 str x0, [x19, 3432]
3164
- mov w0, w22
3165
- bl ftl_malloc
3166
- str x0, [x19, 3440]
31674106 mov w0, w21
31684107 bl ftl_malloc
3169
- str x0, [x19, 3448]
3170
- mov w0, w22
4108
+ str x0, [x19, 3440]
4109
+ mov w0, w20
31714110 bl ftl_malloc
3172
- str x0, [x19, 3408]
3173
- mov w0, w22
4111
+ str x0, [x19, 3400]
4112
+ mov w0, w20
31744113 bl ftl_malloc
31754114 str x0, [x19, 3272]
31764115 ldrh w0, [x19, 236]
3177
- ldrh w21, [x19, 314]
4116
+ ldrh w20, [x19, 314]
31784117 lsl w0, w0, 1
31794118 add w0, w0, 1
31804119 str w0, [x19, 3280]
3181
- mov w0, w21
4120
+ mov w0, w20
4121
+ bl ftl_malloc
4122
+ str x0, [x19, 3448]
4123
+ mov w0, w20
31824124 bl ftl_malloc
31834125 str x0, [x19, 3456]
3184
- mov w0, w21
4126
+ mov w0, w20
31854127 bl ftl_malloc
31864128 str x0, [x19, 3464]
3187
- mov w0, w21
3188
- bl ftl_malloc
3189
- str x0, [x19, 3472]
31904129 ldr w0, [x19, 3280]
3191
- mul w0, w21, w0
4130
+ mul w0, w20, w0
31924131 bl ftl_malloc
31934132 str x0, [x19, 3256]
3194
- mov w0, w21
4133
+ mov w0, w20
4134
+ bl ftl_malloc
4135
+ str x0, [x19, 3472]
4136
+ mov w0, w20
31954137 bl ftl_malloc
31964138 str x0, [x19, 3480]
3197
- mov w0, w21
3198
- bl ftl_malloc
3199
- str x0, [x19, 3488]
32004139 ldr w1, [x19, 3280]
32014140 mov w0, 24
32024141 mul w0, w1, w0
32034142 bl ftl_malloc
32044143 str x0, [x19, 3248]
3205
- mov w0, w21
4144
+ mov w0, w20
4145
+ bl ftl_malloc
4146
+ str x0, [x19, 3488]
4147
+ mov w0, w20
32064148 bl ftl_malloc
32074149 str x0, [x19, 3496]
3208
- mov w0, w21
3209
- bl ftl_malloc
3210
- str x0, [x19, 3504]
32114150 ldrh w0, [x19, 262]
32124151 lsl w0, w0, 2
32134152 bl ftl_malloc
3214
- ldrh w21, [x19, 316]
3215
- str x0, [x19, 3512]
4153
+ ldrh w20, [x19, 316]
4154
+ str x0, [x19, 3504]
32164155 ldrh w0, [x19, 236]
3217
- mul w21, w21, w0
3218
- mov w0, w21
4156
+ mul w20, w20, w0
4157
+ mov w0, w20
4158
+ bl ftl_malloc
4159
+ str x0, [x19, 3512]
4160
+ lsl w0, w20, 2
32194161 bl ftl_malloc
32204162 str x0, [x19, 3520]
3221
- lsl w0, w21, 2
3222
- bl ftl_malloc
3223
- str x0, [x19, 3528]
32244163 ldrh w1, [x19, 316]
32254164 ldr w0, [x19, 3280]
32264165 mul w0, w1, w0
32274166 bl ftl_malloc
32284167 str x0, [x19, 3264]
32294168 ldrh w0, [x19, 246]
4169
+ ubfiz w1, w0, 1, 15
32304170 ubfiz w0, w0, 1, 15
3231
- strh w0, [x19, 3536]
3232
- and w0, w0, 65534
4171
+ strh w1, [x19, 3528]
32334172 bl ftl_malloc
3234
- str x0, [x19, 3544]
3235
- ldrh w0, [x19, 3536]
4173
+ str x0, [x19, 3536]
4174
+ ldrh w0, [x19, 3528]
32364175 add x0, x0, 547
32374176 lsr x0, x0, 9
3238
- strh w0, [x19, 3536]
4177
+ strh w0, [x19, 3528]
32394178 lsl w0, w0, 9
32404179 bl ftl_malloc
3241
- ldrh w21, [x19, 246]
3242
- str x0, [x19, 3552]
4180
+ ldrh w20, [x19, 246]
4181
+ str x0, [x19, 3544]
32434182 add x0, x0, 32
32444183 str x0, [x19, 2600]
3245
- lsl w21, w21, 1
3246
- mov w0, w21
4184
+ lsl w20, w20, 1
4185
+ mov w0, w20
4186
+ bl ftl_malloc
4187
+ str x0, [x19, 3552]
4188
+ mov w0, w20
4189
+ bl ftl_malloc
4190
+ ldr w20, [x19, 332]
4191
+ str x0, [x19, 72]
4192
+ lsl w20, w20, 1
4193
+ mov w0, w20
32474194 bl ftl_malloc
32484195 str x0, [x19, 3560]
3249
- mov w0, w21
3250
- bl ftl_malloc
3251
- ldr w21, [x19, 332]
3252
- str x0, [x19, 72]
3253
- lsl w21, w21, 1
3254
- mov w0, w21
4196
+ mov w0, w20
32554197 bl ftl_malloc
32564198 str x0, [x19, 3568]
3257
- mov w0, w21
3258
- bl ftl_malloc
3259
- str x0, [x19, 3576]
32604199 ldrh w0, [x19, 324]
32614200 lsl w0, w0, 1
32624201 bl ftl_malloc
....@@ -3264,27 +4203,27 @@
32644203 ldrh w0, [x19, 324]
32654204 lsl w0, w0, 1
32664205 bl ftl_malloc
3267
- str x0, [x19, 3584]
4206
+ str x0, [x19, 3576]
32684207 ldrh w0, [x19, 324]
32694208 lsl w0, w0, 2
32704209 bl ftl_malloc
3271
- str x0, [x19, 3592]
4210
+ str x0, [x19, 3584]
32724211 ldrh w0, [x19, 326]
32734212 lsl w0, w0, 2
32744213 bl ftl_malloc
32754214 ldrh w2, [x19, 326]
32764215 mov w1, 0
3277
- str x0, [x19, 3600]
4216
+ str x0, [x19, 3592]
32784217 lsl w2, w2, 2
32794218 bl ftl_memset
32804219 ldrh w0, [x19, 340]
32814220 lsl w0, w0, 2
32824221 bl ftl_malloc
3283
- str x0, [x19, 3608]
4222
+ str x0, [x19, 3600]
32844223 ldr w0, [x19, 332]
32854224 lsl w0, w0, 2
32864225 bl ftl_malloc
3287
- str x0, [x19, 3616]
4226
+ str x0, [x19, 3608]
32884227 ldrh w0, [x19, 342]
32894228 lsl w0, w0, 4
32904229 bl ftl_malloc
....@@ -3293,7 +4232,7 @@
32934232 ldrh w0, [x19, 314]
32944233 mul w0, w1, w0
32954234 bl ftl_malloc
3296
- str x0, [x19, 3624]
4235
+ str x0, [x19, 3616]
32974236 ldrh w1, [x19, 246]
32984237 mov w0, 6
32994238 mul w0, w1, w0
....@@ -3303,193 +4242,204 @@
33034242 ldrh w1, [x19, 258]
33044243 add w0, w0, 31
33054244 asr w0, w0, 5
3306
- strh w0, [x19, 3632]
4245
+ strh w0, [x19, 3624]
33074246 mul w0, w1, w0
33084247 lsl w0, w0, 2
33094248 bl ftl_malloc
3310
- ldrh w4, [x19, 3632]
3311
- add x5, x19, 400
3312
- ldrh w6, [x19, 258]
3313
- mov x1, 1
3314
- str x0, [x19, 392]
3315
- mov w2, w4
3316
- mov x0, x20
3317
-.L366:
3318
- cmp w1, w6
3319
- bcc .L367
4249
+ ldrh w3, [x19, 3624]
4250
+ add x4, x19, 360
4251
+ ldrh w1, [x19, 258]
4252
+ mov x20, x0
4253
+ mov w2, w3
4254
+ str x0, [x4, 32]
4255
+ mov x0, 0
4256
+.L416:
4257
+ add x0, x0, 1
4258
+ cmp w1, w0
4259
+ bhi .L417
4260
+ cmp w1, 0
33204261 mov w2, 8
3321
- add x4, x0, :lo12:.LANCHOR0
4262
+ csinc w1, w1, wzr, ne
4263
+ add x0, x19, 360
33224264 sub w2, w2, w1
3323
- add x4, x4, 360
3324
- add x2, x2, 1
3325
- mov x3, 0
3326
-.L368:
3327
- add x3, x3, 1
3328
- cmp x3, x2
3329
- bne .L369
3330
- add x1, x0, :lo12:.LANCHOR0
3331
- ldr x2, [x1, 3568]
3332
- cbnz x2, .L370
3333
-.L372:
4265
+ add w1, w1, 4
4266
+ ubfiz x3, x1, 3, 17
4267
+ lsl x2, x2, 3
4268
+ add x0, x0, x3
4269
+ mov w1, 0
4270
+ bl memset
4271
+ ldr x0, [x19, 3560]
4272
+ cbnz x0, .L418
4273
+.L420:
33344274 adrp x1, .LANCHOR1
33354275 add x1, x1, :lo12:.LANCHOR1
3336
- add x1, x1, 216
3337
- adrp x0, .LC91
3338
- add x0, x0, :lo12:.LC91
4276
+ add x1, x1, 173
4277
+ adrp x0, .LC92
4278
+ add x0, x0, :lo12:.LC92
33394279 bl sftl_printk
33404280 mov w0, -1
3341
-.L365:
4281
+.L415:
33424282 ldp x19, x20, [sp, 16]
3343
- ldp x21, x22, [sp, 32]
4283
+ ldr x21, [sp, 32]
33444284 ldp x29, x30, [sp], 48
4285
+ hint 29 // autiasp
33454286 ret
3346
-.L367:
3347
- ldr x3, [x19, 392]
3348
- add w1, w1, 1
3349
- add x3, x3, x2, uxtw 2
3350
- add w2, w2, w4
3351
- str x3, [x5], 8
3352
- b .L366
3353
-.L369:
3354
- add x5, x1, x3
3355
- add x5, x4, x5, lsl 3
3356
- str xzr, [x5, 24]
3357
- b .L368
3358
-.L370:
3359
- ldr x2, [x1, 3576]
3360
- cbz x2, .L372
3361
- ldr x2, [x1, 3608]
3362
- cbz x2, .L372
3363
- ldr x2, [x1, 3616]
3364
- cbz x2, .L372
3365
- ldr x2, [x1, 2608]
3366
- cbz x2, .L372
3367
- ldr x2, [x1, 3624]
3368
- cbz x2, .L372
3369
- ldr x2, [x1, 2560]
3370
- cbz x2, .L372
3371
- ldr x2, [x1, 392]
3372
- cbz x2, .L372
3373
- ldr x1, [x1, 72]
3374
- cbz x1, .L372
3375
- add x1, x0, :lo12:.LANCHOR0
3376
- ldr x2, [x1, 3288]
3377
- cbz x2, .L372
3378
- ldr x2, [x1, 3304]
3379
- cbz x2, .L372
3380
- ldr x2, [x1, 3432]
3381
- cbz x2, .L372
3382
- ldr x2, [x1, 3448]
3383
- cbz x2, .L372
3384
- ldr x2, [x1, 3408]
3385
- cbz x2, .L372
3386
- ldr x2, [x1, 3272]
3387
- cbz x2, .L372
3388
- ldr x2, [x1, 3440]
3389
- cbz x2, .L372
3390
- ldr x2, [x1, 3456]
3391
- cbz x2, .L372
3392
- ldr x2, [x1, 3464]
3393
- cbz x2, .L372
3394
- ldr x1, [x1, 3472]
3395
- cbz x1, .L372
3396
- add x0, x0, :lo12:.LANCHOR0
3397
- ldr x1, [x0, 3256]
3398
- cbz x1, .L372
3399
- ldr x1, [x0, 3480]
3400
- cbz x1, .L372
3401
- ldr x1, [x0, 3488]
3402
- cbz x1, .L372
3403
- ldr x1, [x0, 3248]
3404
- cbz x1, .L372
3405
- ldr x1, [x0, 3520]
3406
- cbz x1, .L372
3407
- ldr x1, [x0, 3528]
3408
- cbz x1, .L372
3409
- ldr x1, [x0, 3264]
3410
- cbz x1, .L372
3411
- ldr x1, [x0, 2600]
3412
- cbz x1, .L372
3413
- ldr x1, [x0, 3544]
3414
- cbz x1, .L372
3415
- ldr x0, [x0, 352]
3416
- cbz x0, .L372
4287
+.L417:
4288
+ add x5, x4, x0, lsl 3
4289
+ add x6, x20, w2, uxtw 2
4290
+ add w2, w2, w3
4291
+ str x6, [x5, 32]
4292
+ b .L416
4293
+.L418:
4294
+ ldr x0, [x19, 3568]
4295
+ cbz x0, .L420
4296
+ ldr x0, [x19, 3600]
4297
+ cbz x0, .L420
4298
+ ldr x0, [x19, 3608]
4299
+ cbz x0, .L420
4300
+ ldr x0, [x19, 2608]
4301
+ cbz x0, .L420
4302
+ ldr x0, [x19, 3616]
4303
+ cbz x0, .L420
4304
+ ldr x0, [x19, 2560]
4305
+ cbz x0, .L420
4306
+ cbz x20, .L420
4307
+ ldr x0, [x19, 72]
4308
+ cbz x0, .L420
4309
+ ldr x0, [x19, 3288]
4310
+ cbz x0, .L420
4311
+ ldr x0, [x19, 3304]
4312
+ cbz x0, .L420
4313
+ ldr x0, [x19, 3424]
4314
+ cbz x0, .L420
4315
+ ldr x0, [x19, 3440]
4316
+ cbz x0, .L420
4317
+ ldr x0, [x19, 3400]
4318
+ cbz x0, .L420
4319
+ ldr x0, [x19, 3272]
4320
+ cbz x0, .L420
4321
+ ldr x0, [x19, 3432]
4322
+ cbz x0, .L420
4323
+ ldr x0, [x19, 3448]
4324
+ cbz x0, .L420
4325
+ ldr x0, [x19, 3456]
4326
+ cbz x0, .L420
4327
+ ldr x0, [x19, 3464]
4328
+ cbz x0, .L420
4329
+ ldr x0, [x19, 3256]
4330
+ cbz x0, .L420
4331
+ ldr x0, [x19, 3472]
4332
+ cbz x0, .L420
4333
+ ldr x0, [x19, 3480]
4334
+ cbz x0, .L420
4335
+ ldr x0, [x19, 3248]
4336
+ cbz x0, .L420
4337
+ ldr x0, [x19, 3512]
4338
+ cbz x0, .L420
4339
+ ldr x0, [x19, 3520]
4340
+ cbz x0, .L420
4341
+ ldr x0, [x19, 3264]
4342
+ cbz x0, .L420
4343
+ ldr x0, [x19, 2600]
4344
+ cbz x0, .L420
4345
+ ldr x0, [x19, 3536]
4346
+ cbz x0, .L420
4347
+ ldr x0, [x19, 352]
4348
+ cbz x0, .L420
34174349 adrp x0, .LANCHOR0
34184350 add x0, x0, :lo12:.LANCHOR0
4351
+ ldr x1, [x0, 3576]
4352
+ cbz x1, .L420
34194353 ldr x1, [x0, 3584]
3420
- cbz x1, .L372
3421
- ldr x1, [x0, 3592]
3422
- cbz x1, .L372
3423
- ldr x0, [x0, 3600]
3424
- cbz x0, .L372
4354
+ cbz x1, .L420
4355
+ ldr x0, [x0, 3592]
4356
+ cbz x0, .L420
34254357 mov w0, 0
3426
- b .L365
4358
+ b .L415
34274359 .size FtlMemInit, .-FtlMemInit
34284360 .align 2
34294361 .global FtlBbt2Bitmap
34304362 .type FtlBbt2Bitmap, %function
34314363 FtlBbt2Bitmap:
4364
+ hint 34 // bti c
4365
+ .section __patchable_function_entries
4366
+ .align 3
4367
+ .8byte .LPFE61
4368
+ .text
4369
+.LPFE61:
4370
+ nop
4371
+ nop
4372
+ hint 25 // paciasp
34324373 stp x29, x30, [sp, -64]!
3433
- add x29, sp, 0
3434
- stp x21, x22, [sp, 32]
3435
- adrp x21, .LANCHOR0
4374
+ mov x29, sp
34364375 stp x23, x24, [sp, 48]
3437
- mov x23, x0
3438
- add x0, x21, :lo12:.LANCHOR0
4376
+ adrp x23, .LANCHOR0
4377
+ add x23, x23, :lo12:.LANCHOR0
4378
+ stp x21, x22, [sp, 32]
4379
+ adrp x21, .LANCHOR1
4380
+ add x21, x21, :lo12:.LANCHOR1
4381
+ ldrh w2, [x23, 3624]
4382
+ adrp x24, .LC9
4383
+ add x21, x21, 184
4384
+ add x24, x24, :lo12:.LC9
34394385 stp x19, x20, [sp, 16]
3440
- adrp x20, .LANCHOR1
3441
- add x20, x20, :lo12:.LANCHOR1
3442
- adrp x24, .LC8
3443
- add x20, x20, 232
3444
- ldrh w2, [x0, 3632]
3445
- add x24, x24, :lo12:.LC8
34464386 mov x19, 0
3447
- mov x22, x1
3448
- mov x0, x22
3449
- mov w1, 0
4387
+ mov x20, x1
4388
+ mov x22, x0
34504389 lsl w2, w2, 2
4390
+ mov x0, x20
4391
+ mov w1, 0
34514392 bl ftl_memset
3452
-.L470:
3453
- ldrh w0, [x23, x19]
4393
+.L518:
4394
+ ldrh w0, [x22, x19, lsl 1]
34544395 mov w1, 65535
34554396 cmp w0, w1
3456
- beq .L467
3457
- add x1, x21, :lo12:.LANCHOR0
3458
- ldrh w1, [x1, 302]
4397
+ beq .L515
4398
+ ldrh w1, [x23, 302]
34594399 cmp w1, w0
3460
- bhi .L469
3461
- mov w2, 74
3462
- mov x1, x20
4400
+ bhi .L517
4401
+ mov x1, x21
34634402 mov x0, x24
4403
+ mov w2, 74
34644404 bl sftl_printk
3465
-.L469:
3466
- ldrh w2, [x23, x19]
3467
- mov w1, 1
3468
- add x19, x19, 2
3469
- cmp x19, 1024
3470
- ubfx x0, x2, 5, 11
3471
- lsl w2, w1, w2
3472
- lsl x0, x0, 2
3473
- ldr w1, [x22, x0]
3474
- orr w1, w1, w2
3475
- str w1, [x22, x0]
3476
- bne .L470
3477
-.L467:
4405
+.L517:
4406
+ ldrh w3, [x22, x19, lsl 1]
4407
+ mov w2, 1
4408
+ add x19, x19, 1
4409
+ ubfx x1, x3, 5, 11
4410
+ lsl w3, w2, w3
4411
+ lsl x1, x1, 2
4412
+ ldr w2, [x20, x1]
4413
+ orr w2, w2, w3
4414
+ str w2, [x20, x1]
4415
+ cmp x19, 512
4416
+ bne .L518
4417
+.L515:
34784418 ldp x19, x20, [sp, 16]
34794419 ldp x21, x22, [sp, 32]
34804420 ldp x23, x24, [sp, 48]
34814421 ldp x29, x30, [sp], 64
4422
+ hint 29 // autiasp
34824423 ret
34834424 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap
34844425 .align 2
34854426 .global FtlBbtMemInit
34864427 .type FtlBbtMemInit, %function
34874428 FtlBbtMemInit:
3488
- stp x29, x30, [sp, -16]!
4429
+ hint 34 // bti c
4430
+ .section __patchable_function_entries
4431
+ .align 3
4432
+ .8byte .LPFE62
4433
+ .text
4434
+.LPFE62:
4435
+ nop
4436
+ nop
4437
+ hint 25 // paciasp
34894438 adrp x0, .LANCHOR0
4439
+ stp x29, x30, [sp, -16]!
34904440 add x0, x0, :lo12:.LANCHOR0
34914441 mov w1, -1
3492
- add x29, sp, 0
4442
+ mov x29, sp
34934443 mov w2, 16
34944444 add x0, x0, 372
34954445 strh w1, [x0, -12]
....@@ -3497,139 +4447,159 @@
34974447 strh wzr, [x0, -6]
34984448 bl ftl_memset
34994449 ldp x29, x30, [sp], 16
4450
+ hint 29 // autiasp
35004451 ret
35014452 .size FtlBbtMemInit, .-FtlBbtMemInit
35024453 .align 2
35034454 .global FtlFreeSysBlkQueueInit
35044455 .type FtlFreeSysBlkQueueInit, %function
35054456 FtlFreeSysBlkQueueInit:
3506
- stp x29, x30, [sp, -16]!
4457
+ hint 34 // bti c
4458
+ .section __patchable_function_entries
4459
+ .align 3
4460
+ .8byte .LPFE63
4461
+ .text
4462
+.LPFE63:
4463
+ nop
4464
+ nop
35074465 adrp x3, .LANCHOR0
35084466 add x3, x3, :lo12:.LANCHOR0
4467
+ hint 25 // paciasp
4468
+ add x1, x3, 456
4469
+ stp x29, x30, [sp, -16]!
35094470 mov w2, 2048
3510
- add x29, sp, 0
4471
+ mov x29, sp
4472
+ str wzr, [x1, 2]
35114473 mov w1, 0
35124474 strh w0, [x3, 456]
35134475 add x0, x3, 464
3514
- strh wzr, [x3, 458]
3515
- strh wzr, [x3, 460]
35164476 strh wzr, [x3, 462]
35174477 bl ftl_memset
35184478 mov w0, 0
35194479 ldp x29, x30, [sp], 16
4480
+ hint 29 // autiasp
35204481 ret
35214482 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
35224483 .align 2
35234484 .global ftl_free_no_use_map_blk
35244485 .type ftl_free_no_use_map_blk, %function
35254486 ftl_free_no_use_map_blk:
4487
+ hint 34 // bti c
4488
+ .section __patchable_function_entries
4489
+ .align 3
4490
+ .8byte .LPFE64
4491
+ .text
4492
+.LPFE64:
4493
+ nop
4494
+ nop
4495
+ hint 25 // paciasp
35264496 stp x29, x30, [sp, -80]!
35274497 mov w1, 0
3528
- add x29, sp, 0
4498
+ mov x29, sp
35294499 stp x19, x20, [sp, 16]
35304500 mov x19, x0
35314501 stp x21, x22, [sp, 32]
35324502 stp x23, x24, [sp, 48]
35334503 str x25, [sp, 64]
3534
- ldrh w2, [x0, 10]
35354504 ldp x21, x20, [x0, 32]
4505
+ ldrh w2, [x0, 10]
35364506 ldr x22, [x0, 16]
35374507 lsl w2, w2, 1
35384508 mov x0, x21
35394509 bl ftl_memset
35404510 mov w0, 0
3541
-.L479:
4511
+.L526:
35424512 ldrh w1, [x19, 6]
35434513 cmp w1, w0
3544
- bhi .L483
4514
+ bhi .L530
35454515 adrp x0, .LANCHOR0+308
3546
- mov w23, 0
4516
+ mov w24, 0
35474517 mov w20, 0
35484518 ldrh w1, [x0, #:lo12:.LANCHOR0+308]
35494519 ldrh w0, [x19]
35504520 strh w1, [x21, x0, lsl 1]
3551
- ldrh w24, [x21]
3552
-.L484:
4521
+ ldrh w25, [x21]
4522
+.L531:
35534523 ldrh w0, [x19, 10]
35544524 cmp w0, w20
3555
- bhi .L488
3556
- mov w0, w23
3557
- ldr x25, [sp, 64]
4525
+ bhi .L534
4526
+ mov w0, w24
35584527 ldp x19, x20, [sp, 16]
35594528 ldp x21, x22, [sp, 32]
35604529 ldp x23, x24, [sp, 48]
4530
+ ldr x25, [sp, 64]
35614531 ldp x29, x30, [sp], 80
4532
+ hint 29 // autiasp
35624533 ret
3563
-.L483:
4534
+.L530:
35644535 ubfiz x1, x0, 2, 16
35654536 ldr w2, [x20, x1]
35664537 mov w1, 0
35674538 ubfx x2, x2, 10, 16
3568
-.L480:
4539
+.L527:
35694540 ldrh w3, [x19, 10]
35704541 cmp w3, w1
3571
- bhi .L482
4542
+ bhi .L529
35724543 add w0, w0, 1
35734544 and w0, w0, 65535
3574
- b .L479
3575
-.L482:
4545
+ b .L526
4546
+.L529:
35764547 ubfiz x3, x1, 1, 16
35774548 ldrh w4, [x22, x3]
35784549 cmp w4, w2
3579
- bne .L481
3580
- cbz w2, .L481
4550
+ bne .L528
4551
+ cbz w2, .L528
35814552 ldrh w4, [x21, x3]
35824553 add w4, w4, 1
35834554 strh w4, [x21, x3]
3584
-.L481:
4555
+.L528:
35854556 add w1, w1, 1
35864557 and w1, w1, 65535
3587
- b .L480
3588
-.L488:
3589
- ubfiz x0, x20, 1, 16
3590
- ldrh w1, [x21, x0]
3591
- cmp w24, w1
3592
- bls .L485
3593
- add x25, x22, x0
3594
- ldrh w0, [x22, x0]
3595
- cbnz w0, .L486
3596
-.L487:
3597
- add w20, w20, 1
3598
- and w20, w20, 65535
3599
- b .L484
3600
-.L485:
3601
- cbnz w1, .L487
3602
- add x25, x22, x0
3603
- ldrh w0, [x22, x0]
3604
- cbz w0, .L487
3605
-.L489:
4558
+ b .L527
4559
+.L534:
4560
+ ubfiz x23, x20, 1, 16
4561
+ ldrh w0, [x21, x23]
4562
+ cmp w0, w25
4563
+ bcs .L532
4564
+ ldrh w1, [x22, x23]
4565
+ cmp w1, 0
4566
+ csel w24, w24, w20, eq
4567
+ csel w25, w25, w0, eq
4568
+.L532:
4569
+ cbnz w0, .L533
4570
+ ldrh w0, [x22, x23]
4571
+ cbz w0, .L533
36064572 mov w1, 1
36074573 bl FtlFreeSysBlkQueueIn
3608
- strh wzr, [x25]
4574
+ strh wzr, [x22, x23]
36094575 ldrh w0, [x19, 8]
36104576 sub w0, w0, #1
36114577 strh w0, [x19, 8]
3612
- b .L487
3613
-.L490:
3614
- mov w24, 0
3615
- b .L489
3616
-.L486:
3617
- mov w23, w20
3618
- cbz w1, .L490
3619
- mov w24, w1
3620
- b .L487
4578
+.L533:
4579
+ add w20, w20, 1
4580
+ and w20, w20, 65535
4581
+ b .L531
36214582 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
36224583 .align 2
36234584 .global FtlL2PDataInit
36244585 .type FtlL2PDataInit, %function
36254586 FtlL2PDataInit:
4587
+ hint 34 // bti c
4588
+ .section __patchable_function_entries
4589
+ .align 3
4590
+ .8byte .LPFE65
4591
+ .text
4592
+.LPFE65:
4593
+ nop
4594
+ nop
4595
+ hint 25 // paciasp
36264596 stp x29, x30, [sp, -32]!
3627
- adrp x0, .LANCHOR0
36284597 mov w1, 0
3629
- add x29, sp, 0
4598
+ mov x29, sp
36304599 str x19, [sp, 16]
3631
- add x19, x0, :lo12:.LANCHOR0
3632
- ldr x0, [x19, 3576]
4600
+ adrp x19, .LANCHOR0
4601
+ add x19, x19, :lo12:.LANCHOR0
4602
+ ldr x0, [x19, 3568]
36334603 ldr w2, [x19, 332]
36344604 lsl w2, w2, 1
36354605 bl ftl_memset
....@@ -3637,92 +4607,99 @@
36374607 mov w1, 255
36384608 ldrh w2, [x19, 314]
36394609 mul w2, w2, w0
3640
- ldr x0, [x19, 3624]
4610
+ ldr x0, [x19, 3616]
36414611 bl ftl_memset
3642
- mov x0, x19
3643
- mov w1, 0
3644
- mov w5, -1
3645
-.L500:
3646
- ldrh w2, [x0, 342]
3647
- cmp w2, w1
3648
- bhi .L501
3649
- mov w2, -1
3650
- strh w2, [x0, 3642]
3651
- strh w2, [x0, 3640]
3652
- add x1, x0, 3640
3653
- ldr w2, [x0, 332]
3654
- strh w2, [x0, 3650]
3655
- mov w2, -3902
3656
- strh w2, [x0, 3644]
3657
- ldrh w2, [x0, 3704]
3658
- strh w2, [x0, 3648]
3659
- ldrh w2, [x0, 340]
3660
- strh w2, [x0, 3646]
3661
- ldr x2, [x0, 3568]
3662
- str x2, [x0, 3656]
3663
- ldr x2, [x0, 3616]
3664
- str x2, [x0, 3664]
3665
- ldr x2, [x0, 3576]
3666
- str x2, [x0, 3672]
3667
- ldr x0, [x0, 3608]
3668
- str x0, [x1, 40]
4612
+ mov w0, 0
4613
+ mov w4, -1
4614
+.L545:
4615
+ ldrh w1, [x19, 342]
4616
+ cmp w1, w0
4617
+ bhi .L546
4618
+ ldr w1, [x19, 332]
4619
+ strh w1, [x19, 3642]
4620
+ mov w1, -1
4621
+ str w1, [x19, 3632]
4622
+ mov w1, -3902
4623
+ strh w1, [x19, 3636]
4624
+ ldrh w1, [x19, 3696]
4625
+ strh w1, [x19, 3640]
4626
+ ldrh w1, [x19, 340]
4627
+ strh w1, [x19, 3638]
4628
+ ldr x1, [x19, 3560]
4629
+ str x1, [x19, 3648]
4630
+ ldr x1, [x19, 3608]
4631
+ str x1, [x19, 3656]
4632
+ ldr x1, [x19, 3568]
4633
+ str x1, [x19, 3664]
4634
+ ldr x1, [x19, 3600]
4635
+ str x1, [x19, 3672]
36694636 ldr x19, [sp, 16]
36704637 ldp x29, x30, [sp], 32
4638
+ hint 29 // autiasp
36714639 ret
3672
-.L501:
3673
- ldr x3, [x0, 2608]
3674
- ubfiz x2, x1, 4, 16
3675
- add x3, x3, x2
3676
- str wzr, [x3, 4]
3677
- ldr x3, [x0, 2608]
3678
- strh w5, [x3, x2]
3679
- ldr x3, [x0, 2608]
3680
- ldr x4, [x0, 3624]
3681
- add x3, x3, x2
3682
- ldrh w2, [x0, 314]
3683
- mul w2, w2, w1
3684
- add w1, w1, 1
3685
- and w1, w1, 65535
3686
- sxtw x2, w2
3687
- and x2, x2, -4
3688
- add x2, x4, x2
3689
- str x2, [x3, 8]
3690
- b .L500
4640
+.L546:
4641
+ ldr x2, [x19, 2608]
4642
+ ubfiz x1, x0, 4, 16
4643
+ add x2, x2, x1
4644
+ str wzr, [x2, 4]
4645
+ ldr x2, [x19, 2608]
4646
+ strh w4, [x2, x1]
4647
+ ldr x2, [x19, 2608]
4648
+ ldr x3, [x19, 3616]
4649
+ add x2, x2, x1
4650
+ ldrh w1, [x19, 314]
4651
+ mul w1, w1, w0
4652
+ add w0, w0, 1
4653
+ and w0, w0, 65535
4654
+ sxtw x1, w1
4655
+ and x1, x1, -4
4656
+ add x1, x3, x1
4657
+ str x1, [x2, 8]
4658
+ b .L545
36914659 .size FtlL2PDataInit, .-FtlL2PDataInit
36924660 .align 2
36934661 .global FtlVariablesInit
36944662 .type FtlVariablesInit, %function
36954663 FtlVariablesInit:
4664
+ hint 34 // bti c
4665
+ .section __patchable_function_entries
4666
+ .align 3
4667
+ .8byte .LPFE66
4668
+ .text
4669
+.LPFE66:
4670
+ nop
4671
+ nop
4672
+ hint 25 // paciasp
36964673 stp x29, x30, [sp, -32]!
36974674 mov w0, -1
3698
- mov w1, 0
3699
- add x29, sp, 0
4675
+ mov x29, sp
37004676 str x19, [sp, 16]
37014677 adrp x19, .LANCHOR0
37024678 add x19, x19, :lo12:.LANCHOR0
3703
- strh w0, [x19, 3706]
4679
+ mov w1, 0
4680
+ strh w0, [x19, 3698]
37044681 mov w0, -1
3705
- str w0, [x19, 3716]
4682
+ str w0, [x19, 3708]
37064683 ldr x0, [x19, 352]
3707
- ldrh w2, [x19, 324]
37084684 strh wzr, [x19, 348]
3709
- str wzr, [x19, 3708]
4685
+ ldrh w2, [x19, 324]
4686
+ str wzr, [x19, 3700]
4687
+ str wzr, [x19, 3704]
37104688 lsl w2, w2, 1
3711
- str wzr, [x19, 3712]
37124689 bl ftl_memset
37134690 ldr x0, [x19, 2600]
37144691 mov w1, 0
37154692 ldrh w2, [x19, 246]
37164693 lsl w2, w2, 1
37174694 bl ftl_memset
3718
- ldr x0, [x19, 3544]
4695
+ ldr x0, [x19, 3536]
37194696 mov w1, 0
37204697 ldrh w2, [x19, 246]
37214698 lsl w2, w2, 1
37224699 bl ftl_memset
4700
+ add x0, x19, 2512
37234701 mov w2, 48
37244702 mov w1, 0
3725
- add x0, x19, 2512
37264703 bl ftl_memset
37274704 mov w2, 512
37284705 mov w1, 0
....@@ -3730,134 +4707,160 @@
37304707 bl ftl_memset
37314708 bl FtlGcBufInit
37324709 bl FtlL2PDataInit
3733
- ldr x19, [sp, 16]
37344710 mov w0, 0
4711
+ ldr x19, [sp, 16]
37354712 ldp x29, x30, [sp], 32
4713
+ hint 29 // autiasp
37364714 ret
37374715 .size FtlVariablesInit, .-FtlVariablesInit
37384716 .align 2
37394717 .global SupperBlkListInit
37404718 .type SupperBlkListInit, %function
37414719 SupperBlkListInit:
3742
- stp x29, x30, [sp, -64]!
4720
+ hint 34 // bti c
4721
+ .section __patchable_function_entries
4722
+ .align 3
4723
+ .8byte .LPFE67
4724
+ .text
4725
+.LPFE67:
4726
+ nop
4727
+ nop
4728
+ hint 25 // paciasp
4729
+ stp x29, x30, [sp, -112]!
37434730 mov w0, 6
3744
- mov w1, 0
3745
- add x29, sp, 0
4731
+ mov x29, sp
37464732 stp x19, x20, [sp, 16]
37474733 adrp x19, .LANCHOR0
37484734 add x19, x19, :lo12:.LANCHOR0
3749
- str x23, [sp, 48]
3750
- add x23, x19, 264
3751
- stp x21, x22, [sp, 32]
3752
- mov w20, 0
3753
- mov w22, 0
4735
+ stp x25, x26, [sp, 64]
4736
+ add x25, x19, 264
4737
+ mov w1, 0
37544738 ldrh w2, [x19, 246]
4739
+ mov w20, 0
4740
+ mov w26, -1
4741
+ stp x21, x22, [sp, 32]
37554742 mov w21, 0
4743
+ stp x23, x24, [sp, 48]
4744
+ mov w23, 0
37564745 mul w2, w2, w0
37574746 ldr x0, [x19, 2560]
4747
+ stp x27, x28, [sp, 80]
4748
+ mov w27, 32768
37584749 bl ftl_memset
3759
- strh wzr, [x19, 2584]
37604750 strh wzr, [x19, 228]
37614751 str xzr, [x19, 2568]
37624752 str xzr, [x19, 2576]
4753
+ strh wzr, [x19, 2584]
37634754 str xzr, [x19, 2592]
3764
-.L506:
4755
+.L551:
37654756 ldrh w0, [x19, 244]
3766
- cmp w20, w0
3767
- bcs .L513
3768
- ldrh w8, [x19, 236]
3769
- mov x6, 0
3770
- ldrh w7, [x19, 306]
3771
- mov w5, 0
3772
- b .L514
3773
-.L508:
3774
- ldrb w0, [x23, x6]
4757
+ cmp w0, w20
4758
+ bls .L558
4759
+ ldrh w2, [x19, 236]
4760
+ mov x24, 0
4761
+ ldrh w28, [x19, 306]
4762
+ mov w22, 0
4763
+ b .L559
4764
+.L553:
4765
+ ldrb w0, [x25, x24]
37754766 mov w1, w20
4767
+ str w2, [sp, 108]
37764768 bl V2P_block
37774769 bl FtlBbmIsBadBlock
3778
- cbnz w0, .L507
3779
- add w5, w5, w7
3780
- and w5, w5, 65535
3781
-.L507:
3782
- add x6, x6, 1
3783
-.L514:
3784
- cmp w8, w6, uxth
3785
- bhi .L508
3786
- cbz w5, .L509
3787
- mov w0, 32768
3788
- sdiv w5, w0, w5
3789
-.L510:
4770
+ ldr w2, [sp, 108]
4771
+ cbnz w0, .L552
4772
+ add w22, w28, w22
4773
+ and w22, w22, 65535
4774
+.L552:
4775
+ add x24, x24, 1
4776
+.L559:
4777
+ cmp w2, w24, uxth
4778
+ bhi .L553
4779
+ cbz w22, .L554
4780
+ udiv w22, w27, w22
4781
+.L555:
37904782 ldr x1, [x19, 2560]
37914783 mov w0, 6
37924784 umaddl x0, w20, w0, x1
3793
- strh w5, [x0, 4]
4785
+ strh w22, [x0, 4]
37944786 ldrh w0, [x19, 24]
37954787 cmp w0, w20
3796
- beq .L511
4788
+ beq .L556
37974789 ldrh w0, [x19, 80]
37984790 cmp w0, w20
3799
- beq .L511
4791
+ beq .L556
38004792 ldrh w0, [x19, 128]
38014793 cmp w0, w20
3802
- beq .L511
4794
+ beq .L556
38034795 ldr x1, [x19, 72]
38044796 ubfiz x0, x20, 1, 16
38054797 ldrh w0, [x1, x0]
3806
- cbnz w0, .L512
3807
- add w22, w22, 1
4798
+ cbnz w0, .L557
4799
+ add w23, w23, 1
38084800 mov w0, w20
3809
- and w22, w22, 65535
4801
+ and w23, w23, 65535
38104802 bl INSERT_FREE_LIST
3811
-.L511:
4803
+.L556:
38124804 add w20, w20, 1
38134805 and w20, w20, 65535
3814
- b .L506
3815
-.L509:
4806
+ b .L551
4807
+.L554:
38164808 ldr x1, [x19, 72]
38174809 ubfiz x0, x20, 1, 16
3818
- mov w2, -1
3819
- strh w2, [x1, x0]
3820
- b .L510
3821
-.L512:
4810
+ strh w26, [x1, x0]
4811
+ b .L555
4812
+.L557:
38224813 add w21, w21, 1
38234814 mov w0, w20
38244815 and w21, w21, 65535
38254816 bl INSERT_DATA_LIST
3826
- b .L511
3827
-.L513:
4817
+ b .L556
4818
+.L558:
4819
+ strh w23, [x19, 228]
38284820 strh w21, [x19, 2584]
3829
- add w21, w21, w22
3830
- strh w22, [x19, 228]
4821
+ add w21, w21, w23
38314822 cmp w21, w0
3832
- ble .L515
4823
+ ble .L560
38334824 adrp x1, .LANCHOR1
38344825 add x1, x1, :lo12:.LANCHOR1
3835
- adrp x0, .LC8
4826
+ adrp x0, .LC9
4827
+ add x1, x1, 198
4828
+ add x0, x0, :lo12:.LC9
38364829 mov w2, 2219
3837
- add x1, x1, 248
3838
- add x0, x0, :lo12:.LC8
38394830 bl sftl_printk
3840
-.L515:
4831
+.L560:
38414832 mov w0, 0
3842
- ldr x23, [sp, 48]
38434833 ldp x19, x20, [sp, 16]
38444834 ldp x21, x22, [sp, 32]
3845
- ldp x29, x30, [sp], 64
4835
+ ldp x23, x24, [sp, 48]
4836
+ ldp x25, x26, [sp, 64]
4837
+ ldp x27, x28, [sp, 80]
4838
+ ldp x29, x30, [sp], 112
4839
+ hint 29 // autiasp
38464840 ret
38474841 .size SupperBlkListInit, .-SupperBlkListInit
38484842 .align 2
38494843 .global FtlGcPageVarInit
38504844 .type FtlGcPageVarInit, %function
38514845 FtlGcPageVarInit:
4846
+ hint 34 // bti c
4847
+ .section __patchable_function_entries
4848
+ .align 3
4849
+ .8byte .LPFE68
4850
+ .text
4851
+.LPFE68:
4852
+ nop
4853
+ nop
4854
+ hint 25 // paciasp
38524855 stp x29, x30, [sp, -32]!
38534856 mov w1, 255
3854
- add x29, sp, 0
4857
+ mov x29, sp
38554858 str x19, [sp, 16]
38564859 adrp x19, .LANCHOR0
38574860 add x19, x19, :lo12:.LANCHOR0
38584861 ldr x0, [x19, 3288]
3859
- ldrh w2, [x19, 310]
38604862 strh wzr, [x19, 3284]
4863
+ ldrh w2, [x19, 310]
38614864 strh wzr, [x19, 3296]
38624865 lsl w2, w2, 1
38634866 bl ftl_memset
....@@ -3870,401 +4873,457 @@
38704873 bl FtlGcBufInit
38714874 ldr x19, [sp, 16]
38724875 ldp x29, x30, [sp], 32
4876
+ hint 29 // autiasp
38734877 ret
38744878 .size FtlGcPageVarInit, .-FtlGcPageVarInit
38754879 .align 2
38764880 .global FlashGetBadBlockList
38774881 .type FlashGetBadBlockList, %function
38784882 FlashGetBadBlockList:
4883
+ hint 34 // bti c
4884
+ .section __patchable_function_entries
4885
+ .align 3
4886
+ .8byte .LPFE69
4887
+ .text
4888
+.LPFE69:
4889
+ nop
4890
+ nop
4891
+ hint 25 // paciasp
38794892 stp x29, x30, [sp, -48]!
38804893 mov w2, 256
3881
- add x29, sp, 0
4894
+ mov x29, sp
38824895 stp x19, x20, [sp, 16]
3883
- mov x20, x0
4896
+ adrp x20, .LANCHOR0
4897
+ add x20, x20, :lo12:.LANCHOR0
4898
+ mov x19, x0
38844899 str x21, [sp, 32]
38854900 mov w21, w1
38864901 mov w1, 255
38874902 bl ftl_memset
3888
- adrp x19, .LANCHOR0
3889
- add x0, x19, :lo12:.LANCHOR0
4903
+ ldr x2, [x20, 3352]
38904904 mov w1, w21
3891
- ldr x2, [x0, 3360]
3892
- mov x0, x20
4905
+ mov x0, x19
38934906 blr x2
38944907 and w0, w0, 65535
38954908 cmp w0, 50
3896
- bls .L520
4909
+ bls .L565
4910
+ mov x0, x19
38974911 mov w2, 256
38984912 mov w1, 255
3899
- mov x0, x20
39004913 bl ftl_memset
39014914 mov w0, 0
3902
-.L520:
3903
- add x19, x19, :lo12:.LANCHOR0
3904
- ldrh w1, [x19, 14]
4915
+.L565:
4916
+ ldrh w1, [x20, 14]
39054917 cmp w1, 4
3906
- bne .L524
4918
+ bne .L570
39074919 mov x1, 0
3908
-.L522:
4920
+ b .L566
4921
+.L567:
4922
+ ldrh w2, [x19, x1, lsl 1]
4923
+ lsr w2, w2, 1
4924
+ strh w2, [x19, x1, lsl 1]
4925
+ add x1, x1, 1
4926
+.L566:
39094927 cmp w0, w1, uxth
3910
- bhi .L523
3911
-.L524:
4928
+ bhi .L567
4929
+.L570:
39124930 ldp x19, x20, [sp, 16]
39134931 ldr x21, [sp, 32]
39144932 ldp x29, x30, [sp], 48
4933
+ hint 29 // autiasp
39154934 ret
3916
-.L523:
3917
- ldrh w2, [x20, x1, lsl 1]
3918
- lsr w2, w2, 1
3919
- strh w2, [x20, x1, lsl 1]
3920
- add x1, x1, 1
3921
- b .L522
39224935 .size FlashGetBadBlockList, .-FlashGetBadBlockList
39234936 .align 2
39244937 .global ftl_memcpy
39254938 .type ftl_memcpy, %function
39264939 ftl_memcpy:
4940
+ hint 34 // bti c
4941
+ .section __patchable_function_entries
4942
+ .align 3
4943
+ .8byte .LPFE70
4944
+ .text
4945
+.LPFE70:
4946
+ nop
4947
+ nop
4948
+ hint 25 // paciasp
39274949 stp x29, x30, [sp, -16]!
39284950 uxtw x2, w2
3929
- add x29, sp, 0
4951
+ mov x29, sp
39304952 bl memcpy
39314953 ldp x29, x30, [sp], 16
4954
+ hint 29 // autiasp
39324955 ret
39334956 .size ftl_memcpy, .-ftl_memcpy
4957
+ .section .rodata.str1.1
4958
+.LC93:
4959
+ .string "FlashReadPages %x %x error_ecc_bits %d\n"
4960
+.LC94:
4961
+ .string "data:"
4962
+.LC95:
4963
+ .string "spare:"
4964
+ .text
39344965 .align 2
39354966 .global FlashReadPages
39364967 .type FlashReadPages, %function
39374968 FlashReadPages:
3938
- stp x29, x30, [sp, -112]!
3939
- ubfiz x1, x1, 5, 32
3940
- add x29, sp, 0
3941
- stp x21, x22, [sp, 32]
3942
- adrp x21, __stack_chk_guard
3943
- stp x23, x24, [sp, 48]
3944
- add x2, x21, :lo12:__stack_chk_guard
4969
+ hint 34 // bti c
4970
+ .section __patchable_function_entries
4971
+ .align 3
4972
+ .8byte .LPFE71
4973
+ .text
4974
+.LPFE71:
4975
+ nop
4976
+ nop
4977
+ hint 25 // paciasp
4978
+ stp x29, x30, [sp, -96]!
4979
+ mrs x2, sp_el0
4980
+ mov x29, sp
39454981 stp x19, x20, [sp, 16]
3946
- adrp x22, .LANCHOR0
3947
- stp x25, x26, [sp, 64]
3948
- adrp x23, .LANCHOR1
3949
- stp x27, x28, [sp, 80]
3950
- add x23, x23, :lo12:.LANCHOR1
3951
- adrp x25, .LC8
39524982 mov x19, x0
3953
- ldr x3, [x2]
3954
- str x3, [x29, 104]
3955
- mov x3,0
3956
- add x2, x22, :lo12:.LANCHOR0
3957
- add x24, x0, x1
3958
- add x23, x23, 272
3959
- add x25, x25, :lo12:.LC8
3960
- ldrh w26, [x2, 12]
3961
-.L529:
3962
- cmp x24, x19
3963
- bne .L542
3964
- add x21, x21, :lo12:__stack_chk_guard
3965
- mov w0, 0
3966
- ldr x2, [x29, 104]
3967
- ldr x1, [x21]
3968
- eor x1, x2, x1
3969
- cbz x1, .L543
4983
+ adrp x20, .LANCHOR0
4984
+ add x20, x20, :lo12:.LANCHOR0
4985
+ mov w0, 32
4986
+ stp x21, x22, [sp, 32]
4987
+ adrp x22, .LANCHOR1
4988
+ add x22, x22, :lo12:.LANCHOR1
4989
+ stp x23, x24, [sp, 48]
4990
+ umaddl x23, w1, w0, x19
4991
+ adrp x24, .LC9
4992
+ stp x25, x26, [sp, 64]
4993
+ add x22, x22, 216
4994
+ ldrh w25, [x20, 12]
4995
+ ldr x3, [x2, 1376]
4996
+ str x3, [sp, 88]
4997
+ mov x3, 0
4998
+ add x24, x24, :lo12:.LC9
4999
+.L575:
5000
+ cmp x19, x23
5001
+ bne .L588
5002
+ mrs x0, sp_el0
5003
+ ldr x1, [sp, 88]
5004
+ ldr x2, [x0, 1376]
5005
+ subs x1, x1, x2
5006
+ mov x2, 0
5007
+ beq .L589
39705008 bl __stack_chk_fail
3971
-.L542:
5009
+.L588:
39725010 ldr x0, [x19, 8]
3973
- cbz x0, .L530
5011
+ cbz x0, .L576
39745012 ldr x0, [x19, 16]
3975
- cbnz x0, .L531
3976
-.L530:
5013
+ cbnz x0, .L577
5014
+.L576:
5015
+ mov x1, x22
5016
+ mov x0, x24
39775017 mov w2, 96
3978
- mov x1, x23
3979
- mov x0, x25
39805018 bl sftl_printk
3981
-.L531:
5019
+.L577:
39825020 ldr w0, [x19, 4]
3983
- add x2, x29, 96
3984
- add x1, x29, 100
5021
+ add x2, sp, 80
5022
+ add x1, sp, 84
39855023 bl l2p_addr_tran.isra.0
3986
- ldr w0, [x29, 96]
5024
+ ldr w0, [sp, 80]
39875025 cmp w0, 3
3988
- bls .L532
5026
+ bls .L578
39895027 mov w0, -1
39905028 str w0, [x19]
3991
-.L533:
5029
+.L579:
39925030 add x19, x19, 32
3993
- b .L529
3994
-.L532:
3995
- ldr x20, [x19, 8]
3996
- tst x20, 63
3997
- beq .L534
3998
- add x1, x22, :lo12:.LANCHOR0
3999
- ldr x20, [x1, 3496]
4000
-.L534:
4001
- add x28, x22, :lo12:.LANCHOR0
4002
- ldr w1, [x29, 100]
5031
+ b .L575
5032
+.L578:
5033
+ ldr x21, [x19, 8]
5034
+ tst x21, 63
5035
+ beq .L580
5036
+ ldr x21, [x20, 3488]
5037
+.L580:
5038
+ mov x2, x21
5039
+ ldr w1, [sp, 84]
40035040 ldr x3, [x19, 16]
4004
- mov x2, x20
4005
- ldr x4, [x28, 3384]
5041
+ ldr x4, [x20, 3376]
40065042 blr x4
40075043 str w0, [x19]
4008
- ldrh w0, [x28, 14]
5044
+ ldrh w0, [x20, 14]
40095045 cmp w0, 4
4010
- bne .L536
4011
- ldrb w0, [x29, 96]
4012
- add x2, x20, 2048
4013
- ldr x4, [x28, 3384]
4014
- ldr w1, [x29, 100]
5046
+ bne .L582
5047
+ ldrb w0, [sp, 80]
5048
+ add x2, x21, 2048
5049
+ ldr x4, [x20, 3376]
40155050 ldr x3, [x19, 16]
4016
- add w1, w26, w1
5051
+ ldr w1, [sp, 84]
40175052 add x3, x3, 8
5053
+ add w1, w25, w1
40185054 blr x4
40195055 cmn w0, #1
4020
- beq .L537
5056
+ beq .L583
40215057 ldr x1, [x19, 16]
40225058 ldr w2, [x1, 12]
40235059 cmn w2, #1
4024
- bne .L538
5060
+ bne .L584
40255061 ldr w2, [x1, 8]
40265062 cmn w2, #1
4027
- bne .L538
5063
+ bne .L584
40285064 ldr w1, [x1]
40295065 cmn w1, #1
4030
- beq .L538
4031
-.L537:
4032
- mov w1, -1
4033
- str w1, [x19]
4034
-.L538:
5066
+ beq .L584
5067
+.L583:
5068
+ mov w0, -1
5069
+.L615:
5070
+ str w0, [x19]
5071
+ b .L585
5072
+.L584:
40355073 ldr w1, [x19]
40365074 cmn w1, #1
4037
- beq .L539
5075
+ beq .L585
40385076 cmp w0, 256
4039
- bne .L539
4040
- str w0, [x19]
4041
-.L539:
5077
+ beq .L615
5078
+.L585:
40425079 ldr w3, [x19]
40435080 cmp w3, 256
40445081 ccmn w3, #1, 4, ne
4045
- bne .L536
5082
+ bne .L582
40465083 ldr w1, [x19, 4]
4047
- adrp x0, .LC92
4048
- ldr w2, [x29, 100]
4049
- add x0, x0, :lo12:.LC92
5084
+ adrp x0, .LC93
5085
+ ldr w2, [sp, 84]
5086
+ add x0, x0, :lo12:.LC93
40505087 bl sftl_printk
40515088 ldr x1, [x19, 8]
4052
- cbz x1, .L541
4053
- mov w3, 4
4054
- adrp x0, .LC93
4055
- mov w2, w3
4056
- add x0, x0, :lo12:.LC93
4057
- bl rknand_print_hex
4058
-.L541:
4059
- ldr x1, [x19, 16]
4060
- cbz x1, .L536
5089
+ cbz x1, .L587
40615090 mov w3, 4
40625091 adrp x0, .LC94
40635092 mov w2, w3
40645093 add x0, x0, :lo12:.LC94
40655094 bl rknand_print_hex
4066
-.L536:
4067
- add x1, x22, :lo12:.LANCHOR0
4068
- ldr x0, [x1, 3496]
4069
- cmp x20, x0
4070
- bne .L533
5095
+.L587:
5096
+ ldr x1, [x19, 16]
5097
+ cbz x1, .L582
5098
+ mov w3, 4
5099
+ adrp x0, .LC95
5100
+ mov w2, w3
5101
+ add x0, x0, :lo12:.LC95
5102
+ bl rknand_print_hex
5103
+.L582:
5104
+ ldr x0, [x20, 3488]
5105
+ cmp x0, x21
5106
+ bne .L579
40715107 ldr x0, [x19, 8]
4072
- cmp x20, x0
4073
- beq .L533
4074
- ldrh w2, [x1, 262]
4075
- mov x1, x20
5108
+ cmp x0, x21
5109
+ beq .L579
5110
+ ldrh w2, [x20, 262]
5111
+ mov x1, x21
40765112 lsl w2, w2, 9
40775113 bl ftl_memcpy
4078
- b .L533
4079
-.L543:
5114
+ b .L579
5115
+.L589:
5116
+ mov w0, 0
40805117 ldp x19, x20, [sp, 16]
40815118 ldp x21, x22, [sp, 32]
40825119 ldp x23, x24, [sp, 48]
40835120 ldp x25, x26, [sp, 64]
4084
- ldp x27, x28, [sp, 80]
4085
- ldp x29, x30, [sp], 112
5121
+ ldp x29, x30, [sp], 96
5122
+ hint 29 // autiasp
40865123 ret
40875124 .size FlashReadPages, .-FlashReadPages
40885125 .align 2
40895126 .global FtlLoadFactoryBbt
40905127 .type FtlLoadFactoryBbt, %function
40915128 FtlLoadFactoryBbt:
5129
+ hint 34 // bti c
5130
+ .section __patchable_function_entries
5131
+ .align 3
5132
+ .8byte .LPFE72
5133
+ .text
5134
+.LPFE72:
5135
+ nop
5136
+ nop
5137
+ hint 25 // paciasp
40925138 stp x29, x30, [sp, -80]!
4093
- adrp x0, .LANCHOR0
4094
- add x0, x0, :lo12:.LANCHOR0
4095
- add x29, sp, 0
4096
- stp x21, x22, [sp, 32]
4097
- add x22, x0, 372
4098
- stp x25, x26, [sp, 64]
4099
- mov w21, 0
5139
+ mov x29, sp
41005140 stp x19, x20, [sp, 16]
4101
- mov x19, x0
5141
+ adrp x20, .LANCHOR0
5142
+ add x20, x20, :lo12:.LANCHOR0
5143
+ stp x21, x22, [sp, 32]
5144
+ add x21, x20, 3712
5145
+ mov w22, 0
41025146 stp x23, x24, [sp, 48]
4103
- add x23, x0, 3720
4104
- mov x25, x23
5147
+ add x23, x20, 360
5148
+ stp x25, x26, [sp, 64]
5149
+ mov w25, -1
41055150 mov w26, 61664
4106
- ldr x1, [x0, 3456]
4107
- ldr x24, [x0, 3520]
4108
- stp x1, x24, [x23, 8]
4109
-.L570:
4110
- ldrh w0, [x19, 258]
4111
- cmp w21, w0
4112
- bcc .L575
5151
+ ldr x0, [x20, 3448]
5152
+ ldr x24, [x20, 3512]
5153
+ stp x0, x24, [x21, 8]
5154
+.L617:
5155
+ ldrh w0, [x20, 258]
5156
+ cmp w0, w22
5157
+ bhi .L622
41135158 mov w0, 0
41145159 ldp x19, x20, [sp, 16]
41155160 ldp x21, x22, [sp, 32]
41165161 ldp x23, x24, [sp, 48]
41175162 ldp x25, x26, [sp, 64]
41185163 ldp x29, x30, [sp], 80
5164
+ hint 29 // autiasp
41195165 ret
4120
-.L575:
4121
- ldrh w20, [x19, 302]
4122
- mov w0, -1
4123
- strh w0, [x22]
4124
-.L572:
4125
- ldrh w0, [x19, 302]
4126
- sub w20, w20, #1
4127
- and w20, w20, 65535
5166
+.L622:
5167
+ ldrh w19, [x20, 302]
5168
+ strh w25, [x23, 12]
5169
+.L619:
5170
+ ldrh w0, [x20, 302]
5171
+ sub w19, w19, #1
5172
+ and w19, w19, 65535
41285173 sub w1, w0, #16
4129
- cmp w20, w1
4130
- ble .L573
4131
- madd w0, w0, w21, w20
5174
+ cmp w19, w1
5175
+ ble .L620
5176
+ madd w0, w0, w22, w19
41325177 mov w2, 1
41335178 mov w1, w2
41345179 lsl w0, w0, 10
4135
- str w0, [x25, 4]
4136
- mov x0, x23
5180
+ str w0, [x21, 4]
5181
+ mov x0, x21
41375182 bl FlashReadPages
4138
- ldr w0, [x25]
5183
+ ldr w0, [x21]
41395184 cmn w0, #1
4140
- beq .L572
5185
+ beq .L619
41415186 ldrh w0, [x24]
41425187 cmp w0, w26
4143
- bne .L572
4144
- strh w20, [x22]
4145
-.L573:
4146
- add w21, w21, 1
4147
- add x22, x22, 2
4148
- b .L570
5188
+ bne .L619
5189
+ strh w19, [x23, 12]
5190
+.L620:
5191
+ add w22, w22, 1
5192
+ add x23, x23, 2
5193
+ b .L617
41495194 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
41505195 .align 2
41515196 .global FtlGetLastWrittenPage
41525197 .type FtlGetLastWrittenPage, %function
41535198 FtlGetLastWrittenPage:
4154
- stp x29, x30, [sp, -192]!
4155
- add x29, sp, 0
4156
- stp x21, x22, [sp, 32]
4157
- adrp x21, __stack_chk_guard
4158
- stp x23, x24, [sp, 48]
4159
- mov w24, w1
5199
+ hint 34 // bti c
5200
+ .section __patchable_function_entries
5201
+ .align 3
5202
+ .8byte .LPFE73
5203
+ .text
5204
+.LPFE73:
5205
+ nop
5206
+ nop
5207
+ hint 25 // paciasp
5208
+ stp x29, x30, [sp, -176]!
5209
+ mov x29, sp
41605210 stp x19, x20, [sp, 16]
4161
- add x1, x21, :lo12:__stack_chk_guard
4162
- str x25, [sp, 64]
4163
- cmp w24, 1
4164
- ldr x2, [x1]
4165
- str x2, [x29, 184]
4166
- mov x2,0
5211
+ stp x21, x22, [sp, 32]
5212
+ mov w22, w1
5213
+ mrs x1, sp_el0
5214
+ stp x23, x24, [sp, 48]
5215
+ cmp w22, 1
5216
+ ldr x2, [x1, 1376]
5217
+ str x2, [sp, 168]
5218
+ mov x2, 0
41675219 adrp x1, .LANCHOR0
4168
- add x2, x1, :lo12:.LANCHOR0
4169
- bne .L581
4170
- ldrh w19, [x2, 308]
4171
-.L582:
41725220 add x1, x1, :lo12:.LANCHOR0
5221
+ bne .L628
5222
+ ldrh w19, [x1, 308]
5223
+.L629:
41735224 sub w19, w19, #1
5225
+ lsl w21, w0, 10
5226
+ ldr x1, [x1, 3496]
41745227 sxth w19, w19
4175
- lsl w22, w0, 10
4176
- orr w0, w19, w22
4177
- mov w2, w24
4178
- ldr x1, [x1, 3504]
4179
- str x1, [x29, 96]
4180
- add x1, x29, 120
4181
- str w0, [x29, 92]
4182
- add x0, x29, 88
4183
- str x1, [x29, 104]
5228
+ orr w0, w19, w0, lsl 10
5229
+ str x1, [sp, 80]
5230
+ add x1, sp, 104
5231
+ mov w2, w22
5232
+ str w0, [sp, 76]
5233
+ add x0, sp, 72
5234
+ str x1, [sp, 88]
41845235 mov w1, 1
41855236 bl FlashReadPages
4186
- ldr w0, [x29, 120]
5237
+ ldr w0, [sp, 104]
41875238 cmn w0, #1
4188
- bne .L583
5239
+ bne .L631
41895240 mov w23, 0
4190
- mov w25, 2
4191
-.L584:
4192
- cmp w23, w19
4193
- ble .L587
4194
-.L583:
4195
- add x21, x21, :lo12:__stack_chk_guard
4196
- mov w0, w19
4197
- ldr x2, [x29, 184]
4198
- ldr x1, [x21]
4199
- eor x1, x2, x1
4200
- cbz x1, .L588
4201
- bl __stack_chk_fail
4202
-.L581:
4203
- ldrh w19, [x2, 306]
4204
- b .L582
4205
-.L587:
4206
- add w20, w23, w19
4207
- mov w2, w24
5241
+ mov w24, 2
5242
+ b .L630
5243
+.L628:
5244
+ ldrh w19, [x1, 306]
5245
+ b .L629
5246
+.L634:
5247
+ add w0, w23, w19
42085248 mov w1, 1
4209
- sdiv w20, w20, w25
4210
- sxth w0, w20
4211
- orr w0, w0, w22
4212
- str w0, [x29, 92]
4213
- add x0, x29, 88
5249
+ mov w2, w22
5250
+ sdiv w0, w0, w24
5251
+ sxth w20, w0
5252
+ orr w0, w0, w21
5253
+ str w0, [sp, 76]
5254
+ add x0, sp, 72
42145255 bl FlashReadPages
4215
- ldr w0, [x29, 120]
5256
+ ldp w0, w1, [sp, 104]
5257
+ and w0, w0, w1
42165258 cmn w0, #1
4217
- bne .L585
4218
- ldr w0, [x29, 124]
5259
+ bne .L632
5260
+ ldr w0, [sp, 72]
42195261 cmn w0, #1
4220
- bne .L585
4221
- ldr w0, [x29, 88]
4222
- cmn w0, #1
4223
- beq .L585
5262
+ beq .L632
42245263 sub w19, w20, #1
42255264 sxth w19, w19
4226
- b .L584
4227
-.L585:
5265
+.L630:
5266
+ cmp w23, w19
5267
+ ble .L634
5268
+.L631:
5269
+ mrs x0, sp_el0
5270
+ ldr x1, [sp, 168]
5271
+ ldr x2, [x0, 1376]
5272
+ subs x1, x1, x2
5273
+ mov x2, 0
5274
+ beq .L635
5275
+ bl __stack_chk_fail
5276
+.L632:
42285277 add w20, w20, 1
42295278 sxth w23, w20
4230
- b .L584
4231
-.L588:
5279
+ b .L630
5280
+.L635:
5281
+ mov w0, w19
42325282 ldp x19, x20, [sp, 16]
42335283 ldp x21, x22, [sp, 32]
42345284 ldp x23, x24, [sp, 48]
4235
- ldr x25, [sp, 64]
4236
- ldp x29, x30, [sp], 192
5285
+ ldp x29, x30, [sp], 176
5286
+ hint 29 // autiasp
42375287 ret
42385288 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
42395289 .align 2
42405290 .global FtlScanSysBlk
42415291 .type FtlScanSysBlk, %function
42425292 FtlScanSysBlk:
4243
- stp x29, x30, [sp, -112]!
5293
+ hint 34 // bti c
5294
+ .section __patchable_function_entries
5295
+ .align 3
5296
+ .8byte .LPFE74
5297
+ .text
5298
+.LPFE74:
5299
+ nop
5300
+ nop
5301
+ hint 25 // paciasp
5302
+ stp x29, x30, [sp, -96]!
42445303 mov w1, 0
4245
- add x29, sp, 0
5304
+ mov x29, sp
42465305 stp x19, x20, [sp, 16]
5306
+ adrp x19, .LANCHOR0
5307
+ add x19, x19, :lo12:.LANCHOR0
42475308 stp x21, x22, [sp, 32]
4248
- adrp x21, .LANCHOR0
4249
- add x19, x21, :lo12:.LANCHOR0
5309
+ ldr x0, [x19, 3608]
42505310 stp x23, x24, [sp, 48]
4251
- stp x25, x26, [sp, 64]
4252
- adrp x25, .LANCHOR1
4253
- stp x27, x28, [sp, 80]
4254
- add x25, x25, :lo12:.LANCHOR1
4255
- ldr x0, [x19, 3616]
4256
- add x25, x25, 288
42575311 ldr w2, [x19, 332]
4258
- strh wzr, [x19, 3704]
4259
- strh wzr, [x19, 348]
5312
+ stp x25, x26, [sp, 64]
5313
+ adrp x24, .LANCHOR1
5314
+ add x24, x24, :lo12:.LANCHOR1
42605315 lsl w2, w2, 2
5316
+ stp x27, x28, [sp, 80]
5317
+ add x24, x24, 231
5318
+ strh wzr, [x19, 348]
5319
+ strh wzr, [x19, 3696]
42615320 bl ftl_memset
4262
- ldr x0, [x19, 3568]
5321
+ ldr x0, [x19, 3560]
42635322 mov w1, 0
42645323 ldr w2, [x19, 332]
42655324 lsl w2, w2, 1
42665325 bl ftl_memset
4267
- ldr x0, [x19, 3592]
5326
+ ldr x0, [x19, 3584]
42685327 mov w1, 0
42695328 ldrh w2, [x19, 324]
42705329 lsl w2, w2, 2
....@@ -4274,760 +5333,779 @@
42745333 ldrh w2, [x19, 324]
42755334 lsl w2, w2, 1
42765335 bl ftl_memset
5336
+ add x0, x19, 2696
42775337 mov w2, 16
42785338 mov w1, 255
4279
- add x0, x19, 2696
42805339 bl ftl_memset
4281
- ldrh w24, [x19, 244]
4282
-.L594:
5340
+ ldrh w23, [x19, 244]
5341
+.L642:
42835342 ldrh w0, [x19, 246]
4284
- cmp w0, w24
4285
- bls .L634
4286
- ldrh w9, [x19, 236]
4287
- mov x5, 0
4288
- ldrh w8, [x19, 316]
4289
- mov w20, 0
4290
- add x7, x19, 264
4291
- mov w6, 4
4292
- b .L635
4293
-.L596:
4294
- ldrb w0, [x7, x5]
4295
- mov w1, w24
5343
+ cmp w0, w23
5344
+ bls .L681
5345
+ ldrh w28, [x19, 236]
5346
+ add x26, x19, 264
5347
+ ldrh w27, [x19, 316]
5348
+ mov x21, 0
5349
+ mov w22, 0
5350
+ mov w25, 4
5351
+ b .L682
5352
+.L644:
5353
+ ldrb w0, [x26, x21]
5354
+ mov w1, w23
42965355 bl V2P_block
4297
- and w4, w0, 65535
5356
+ and w20, w0, 65535
42985357 bl FtlBbmIsBadBlock
4299
- cbnz w0, .L595
4300
- ldr x0, [x19, 3432]
4301
- ubfiz x2, x20, 5, 16
4302
- lsl w4, w4, 10
5358
+ cbnz w0, .L643
5359
+ ldr x0, [x19, 3424]
5360
+ ubfiz x2, x22, 5, 16
5361
+ lsl w20, w20, 10
43035362 add x0, x0, x2
4304
- str w4, [x0, 4]
4305
- ldr x1, [x19, 3432]
5363
+ str w20, [x0, 4]
5364
+ ldr x1, [x19, 3424]
43065365 ldr x0, [x19, 3256]
43075366 add x1, x1, x2
43085367 ldr x2, [x19, 3264]
43095368 str x0, [x1, 8]
4310
- mul w0, w20, w8
4311
- add w20, w20, 1
4312
- and w20, w20, 65535
4313
- sdiv w0, w0, w6
4314
- add x0, x2, x0, sxtw 2
5369
+ mul w0, w22, w27
5370
+ add w22, w22, 1
5371
+ and w22, w22, 65535
5372
+ sdiv w0, w0, w25
5373
+ add x0, x2, w0, sxtw 2
43155374 str x0, [x1, 16]
4316
-.L595:
4317
- add x5, x5, 1
4318
-.L635:
4319
- cmp w9, w5, uxth
4320
- bhi .L596
4321
- cbnz w20, .L597
4322
-.L633:
4323
- add w24, w24, 1
4324
- and w24, w24, 65535
4325
- b .L594
4326
-.L597:
4327
- ldr x0, [x19, 3432]
4328
- mov w1, w20
5375
+.L643:
5376
+ add x21, x21, 1
5377
+.L682:
5378
+ cmp w28, w21, uxth
5379
+ bhi .L644
5380
+ cbnz w22, .L645
5381
+.L680:
5382
+ add w23, w23, 1
5383
+ and w23, w23, 65535
5384
+ b .L642
5385
+.L645:
5386
+ ldr x0, [x19, 3424]
5387
+ adrp x26, .LC9
5388
+ mov w1, w22
5389
+ add x26, x26, :lo12:.LC9
43295390 mov w2, 1
4330
- ubfiz x20, x20, 5, 16
4331
- mov x23, 0
4332
- add x27, x19, 2696
5391
+ mov x25, 0
43335392 bl FlashReadPages
4334
-.L632:
4335
- ldr x0, [x19, 3432]
4336
- add x1, x0, x23
4337
- ldr w0, [x0, x23]
4338
- ldr w22, [x1, 4]
5393
+.L679:
5394
+ ldr x0, [x19, 3424]
5395
+ lsl x27, x25, 5
5396
+ add x1, x0, x25, lsl 5
5397
+ ldr w0, [x0, x27]
5398
+ ldr w20, [x1, 4]
5399
+ ldr x21, [x1, 16]
5400
+ ubfx x20, x20, 10, 16
43395401 cmn w0, #1
4340
- ldr x26, [x1, 16]
4341
- ubfx x22, x22, 10, 16
4342
- bne .L600
5402
+ bne .L648
43435403 mov w28, 16
4344
- mov w3, 65535
4345
-.L602:
4346
- ldr x0, [x19, 3432]
5404
+.L650:
5405
+ ldr x0, [x19, 3424]
43475406 mov w2, 1
4348
- str w3, [x29, 108]
4349
- add x0, x0, x23
5407
+ add x0, x0, x27
43505408 ldr w1, [x0, 4]
43515409 add w1, w1, 1
43525410 str w1, [x0, 4]
43535411 mov w1, w2
4354
- ldr x0, [x19, 3432]
4355
- add x0, x0, x23
5412
+ ldr x0, [x19, 3424]
5413
+ add x0, x0, x27
43565414 bl FlashReadPages
4357
- ldrh w0, [x26]
4358
- ldr w3, [x29, 108]
5415
+ ldrh w0, [x21]
5416
+ mov w3, 65535
43595417 cmp w0, w3
4360
- ldr x0, [x19, 3432]
4361
- bne .L599
5418
+ ldr x0, [x19, 3424]
5419
+ bne .L647
43625420 mov w1, -1
4363
- str w1, [x0, x23]
4364
- ldr x0, [x19, 3432]
4365
- ldr w0, [x0, x23]
5421
+ str w1, [x0, x27]
5422
+ ldr x0, [x19, 3424]
5423
+ ldr w0, [x0, x27]
43665424 cmp w0, w1
4367
- bne .L600
4368
-.L601:
4369
- mov w1, 1
4370
- b .L672
4371
-.L599:
4372
- ldr w0, [x0, x23]
4373
- cmn w0, #1
4374
- bne .L600
4375
- sub w28, w28, #1
4376
- ands w28, w28, 65535
4377
- bne .L602
4378
- b .L601
4379
-.L600:
5425
+ beq .L649
5426
+.L648:
43805427 ldr w1, [x19, 2660]
4381
- ldr w0, [x26, 4]
5428
+ ldr w0, [x21, 4]
43825429 cmn w1, #1
4383
- beq .L603
5430
+ beq .L697
43845431 cmp w1, w0
4385
- bhi .L604
4386
-.L603:
5432
+ bhi .L651
5433
+.L697:
43875434 cmn w0, #1
4388
- beq .L604
5435
+ beq .L651
43895436 add w1, w0, 1
43905437 str w1, [x19, 2660]
4391
-.L604:
4392
- ldrh w1, [x26]
5438
+.L651:
5439
+ ldrh w1, [x21]
5440
+ mov w2, 61634
5441
+ cmp w1, w2
5442
+ beq .L652
5443
+ bhi .L653
5444
+ mov w2, 61574
5445
+ cmp w1, w2
5446
+ beq .L654
43935447 mov w2, 61604
43945448 cmp w1, w2
4395
- beq .L606
4396
- bhi .L607
4397
- mov w0, 61574
4398
- cmp w1, w0
4399
- beq .L608
4400
-.L605:
4401
- add x23, x23, 32
4402
- cmp x20, x23
4403
- bne .L632
4404
- b .L633
4405
-.L607:
4406
- mov w0, 61634
4407
- cmp w1, w0
4408
- beq .L609
5449
+ beq .L655
5450
+.L656:
5451
+ add x25, x25, 1
5452
+ cmp w22, w25, uxth
5453
+ bhi .L679
5454
+ b .L680
5455
+.L647:
5456
+ ldr w0, [x0, x27]
5457
+ cmn w0, #1
5458
+ bne .L648
5459
+ sub w28, w28, #1
5460
+ ands w28, w28, 65535
5461
+ bne .L650
5462
+.L649:
5463
+ mov w1, 1
5464
+ b .L721
5465
+.L653:
44095466 mov w0, 65535
44105467 cmp w1, w0
4411
- bne .L605
5468
+ bne .L656
44125469 mov w1, 0
4413
-.L672:
4414
- mov w0, w22
5470
+.L721:
5471
+ mov w0, w20
44155472 bl FtlFreeSysBlkQueueIn
4416
- b .L605
4417
-.L609:
4418
- ldrh w1, [x19, 3704]
5473
+ b .L656
5474
+.L652:
5475
+ ldrh w1, [x19, 3696]
44195476 ldr w0, [x19, 332]
44205477 cmp w1, w0
4421
- bls .L611
4422
- adrp x0, .LC8
5478
+ bls .L658
5479
+ mov x1, x24
5480
+ mov x0, x26
44235481 mov w2, 1232
4424
- mov x1, x25
4425
- add x0, x0, :lo12:.LC8
44265482 bl sftl_printk
4427
-.L611:
4428
- ldr w3, [x19, 332]
4429
- ldrh w1, [x19, 3704]
4430
- and w2, w3, 65535
4431
- ldr x4, [x19, 3616]
4432
- sub w0, w2, #1
4433
- sub w2, w2, w1
4434
- sub w2, w2, #1
4435
- sxth x0, w0
4436
- sxth w2, w2
4437
-.L612:
4438
- cmp w0, w2
4439
- bgt .L618
4440
- tbz w0, #31, .L652
4441
- b .L605
4442
-.L618:
4443
- sxtw x5, w0
4444
- ldr w8, [x26, 4]
4445
- lsl x6, x5, 2
4446
- ldr w7, [x4, x6]
4447
- cmp w8, w7
4448
- bls .L613
4449
- ldr w2, [x4]
4450
- cbnz w2, .L614
4451
- cmp w3, w1
4452
- beq .L614
4453
- add w1, w1, 1
4454
- strh w1, [x19, 3704]
4455
-.L614:
4456
- mov w1, 0
4457
-.L615:
4458
- cmp w1, w0
4459
- bne .L616
4460
- ldr x1, [x19, 3616]
4461
- ldr w2, [x26, 4]
4462
- str w2, [x1, x6]
4463
- ldr x1, [x19, 3568]
4464
- strh w22, [x1, x5, lsl 1]
4465
- tbnz w0, #31, .L605
4466
- ldrh w1, [x19, 3704]
4467
- ldr w2, [x19, 332]
4468
- sub w2, w2, w1
4469
- sub w2, w2, #1
4470
- cmp w0, w2, sxth
4471
- bgt .L605
4472
-.L652:
4473
- add w1, w1, 1
4474
- strh w1, [x19, 3704]
4475
- ldr x1, [x19, 3616]
4476
- ldr w2, [x26, 4]
4477
- str w2, [x1, x0, lsl 2]
4478
- ldr x1, [x19, 3568]
4479
-.L670:
4480
- strh w22, [x1, x0, lsl 1]
4481
- b .L605
4482
-.L616:
4483
- ldr x4, [x19, 3616]
4484
- sxtw x2, w1
4485
- lsl x3, x2, 2
4486
- lsl x2, x2, 1
4487
- add x7, x4, x3
4488
- add w1, w1, 1
4489
- sxth w1, w1
4490
- ldr w7, [x7, 4]
4491
- str w7, [x4, x3]
4492
- ldr x3, [x19, 3568]
4493
- add x4, x3, x2
4494
- ldrh w4, [x4, 2]
4495
- strh w4, [x3, x2]
4496
- b .L615
4497
-.L613:
5483
+.L658:
5484
+ ldr w4, [x19, 332]
5485
+ ldrh w3, [x19, 3696]
5486
+ and w0, w4, 65535
5487
+ sub w1, w0, #1
5488
+ sub w0, w0, w3
5489
+ ldr x5, [x19, 3608]
44985490 sub w0, w0, #1
4499
- sxth x0, w0
4500
- b .L612
4501
-.L608:
5491
+ sxth w2, w1
5492
+ sxth x1, w1
5493
+ sxth w0, w0
5494
+ add x7, x5, 4
5495
+.L659:
5496
+ cmp w0, w2
5497
+ bge .L664
5498
+ sub x6, x1, #1
5499
+ ldr w10, [x21, 4]
5500
+ lsl x8, x1, 2
5501
+ ldr w9, [x7, x6, lsl 2]
5502
+ cmp w10, w9
5503
+ bls .L660
5504
+ ldr w0, [x5]
5505
+ cbnz w0, .L661
5506
+ cmp w4, w3
5507
+ beq .L661
5508
+ add w3, w3, 1
5509
+ strh w3, [x19, 3696]
5510
+.L661:
5511
+ mov w0, 0
5512
+.L662:
5513
+ ldr x3, [x19, 3608]
5514
+ cmp w0, w2
5515
+ bne .L663
5516
+ ldr w0, [x21, 4]
5517
+ str w0, [x3, x8]
5518
+ ldr x0, [x19, 3560]
5519
+ strh w20, [x0, x1, lsl 1]
5520
+.L664:
5521
+ tbnz w2, #31, .L656
5522
+ ldrh w1, [x19, 3696]
5523
+ ldr w0, [x19, 332]
5524
+ sub w0, w0, w1
5525
+ sub w0, w0, #1
5526
+ cmp w2, w0, sxth
5527
+ bgt .L656
5528
+ ldr x0, [x19, 3608]
5529
+ add w1, w1, 1
5530
+ strh w1, [x19, 3696]
5531
+ ldr w1, [x21, 4]
5532
+ str w1, [x0, w2, sxtw 2]
5533
+ ldr x0, [x19, 3560]
5534
+.L720:
5535
+ strh w20, [x0, w2, sxtw 1]
5536
+ b .L656
5537
+.L663:
5538
+ add w4, w0, 1
5539
+ ldr w5, [x3, w4, sxtw 2]
5540
+ str w5, [x3, w0, sxtw 2]
5541
+ ldr x3, [x19, 3560]
5542
+ ldrh w5, [x3, w4, sxtw 1]
5543
+ strh w5, [x3, w0, sxtw 1]
5544
+ sxth w0, w4
5545
+ b .L662
5546
+.L660:
5547
+ sub w2, w2, #1
5548
+ mov x1, x6
5549
+ sxth w2, w2
5550
+ b .L659
5551
+.L654:
45025552 ldrh w1, [x19, 348]
45035553 ldrh w0, [x19, 324]
45045554 cmp w1, w0
4505
- bls .L621
4506
- adrp x0, .LC8
4507
- mov w2, 1273
4508
- mov x1, x25
4509
- add x0, x0, :lo12:.LC8
4510
- bl sftl_printk
4511
-.L621:
4512
- ldrh w3, [x19, 324]
4513
- ldrh w1, [x19, 348]
4514
- sub w2, w3, #1
4515
- ldr x4, [x19, 3592]
4516
- sxth x0, w2
4517
- sub w2, w2, w1
4518
-.L622:
4519
- cmp w0, w2
4520
- ble .L627
4521
- sxtw x5, w0
4522
- ldr w8, [x26, 4]
4523
- lsl x6, x5, 2
4524
- ldr w7, [x4, x6]
4525
- cmp w8, w7
4526
- bls .L623
4527
- ldr w2, [x4]
4528
- cbnz w2, .L624
4529
- cmp w3, w1
4530
- beq .L624
4531
- add w1, w1, 1
4532
- strh w1, [x19, 348]
4533
-.L624:
4534
- mov w1, 0
4535
-.L625:
4536
- cmp w1, w0
4537
- bne .L626
4538
- ldr x1, [x19, 3592]
4539
- ldr w2, [x26, 4]
4540
- str w2, [x1, x6]
4541
- ldr x1, [x19, 352]
4542
- strh w22, [x1, x5, lsl 1]
4543
-.L627:
4544
- tbnz w0, #31, .L605
4545
- ldrh w1, [x19, 324]
4546
- ldrh w2, [x19, 348]
4547
- sub w1, w1, #1
4548
- sub w1, w1, w2
4549
- cmp w0, w1, sxth
4550
- bgt .L605
4551
- ldr x1, [x19, 3592]
4552
- add w2, w2, 1
4553
- strh w2, [x19, 348]
4554
- ldr w2, [x26, 4]
4555
- str w2, [x1, x0, lsl 2]
4556
- ldr x1, [x19, 352]
4557
- b .L670
4558
-.L626:
4559
- ldr x4, [x19, 3592]
4560
- sxtw x2, w1
4561
- lsl x3, x2, 2
4562
- lsl x2, x2, 1
4563
- add x7, x4, x3
4564
- add w1, w1, 1
4565
- sxth w1, w1
4566
- ldr w7, [x7, 4]
4567
- str w7, [x4, x3]
4568
- ldr x3, [x19, 352]
4569
- add x4, x3, x2
4570
- ldrh w4, [x4, 2]
4571
- strh w4, [x3, x2]
4572
- b .L625
4573
-.L623:
4574
- sub w0, w0, #1
4575
- sxth x0, w0
4576
- b .L622
4577
-.L606:
4578
- ldrh w2, [x27]
4579
- mov w1, 65535
4580
- cmp w2, w1
4581
- bne .L629
4582
- strh w22, [x27]
4583
-.L671:
4584
- str w0, [x27, 8]
4585
- b .L605
4586
-.L629:
4587
- ldrh w0, [x27, 4]
4588
- cmp w0, w1
4589
- beq .L630
4590
- mov w1, 1
4591
- bl FtlFreeSysBlkQueueIn
4592
-.L630:
4593
- ldr w0, [x26, 4]
4594
- ldr w1, [x27, 8]
4595
- cmp w1, w0
4596
- bcs .L631
4597
- ldrh w0, [x27]
4598
- strh w0, [x27, 4]
4599
- strh w22, [x27]
4600
- ldr w0, [x26, 4]
4601
- b .L671
4602
-.L631:
4603
- strh w22, [x27, 4]
4604
- b .L605
4605
-.L634:
4606
- ldr x1, [x19, 3568]
4607
- ldrh w0, [x1]
4608
- cbz w0, .L636
4609
-.L639:
4610
- add x0, x21, :lo12:.LANCHOR0
4611
- ldr x1, [x0, 352]
4612
- ldrh w2, [x1]
4613
- cbz w2, .L637
4614
-.L638:
4615
- add x21, x21, :lo12:.LANCHOR0
4616
- ldrh w1, [x21, 3704]
4617
- ldr w0, [x21, 332]
4618
- cmp w1, w0
46195555 bls .L668
4620
- adrp x1, .LANCHOR1
4621
- add x1, x1, :lo12:.LANCHOR1
4622
- adrp x0, .LC8
4623
- mov w2, 1398
4624
- add x1, x1, 288
4625
- add x0, x0, :lo12:.LC8
5556
+ mov x1, x24
5557
+ mov x0, x26
5558
+ mov w2, 1273
46265559 bl sftl_printk
46275560 .L668:
4628
- ldp x19, x20, [sp, 16]
5561
+ ldrh w3, [x19, 324]
5562
+ ldrh w0, [x19, 348]
5563
+ sub w1, w3, #1
5564
+ ldr x4, [x19, 3584]
5565
+ sxth w2, w1
5566
+ sub w1, w1, w0
5567
+.L669:
5568
+ cmp w2, w1
5569
+ ble .L674
5570
+ sbfiz x5, x2, 2, 32
5571
+ ldr w8, [x21, 4]
5572
+ sxtw x6, w2
5573
+ ldr w7, [x4, x5]
5574
+ cmp w8, w7
5575
+ bls .L670
5576
+ ldr w1, [x4]
5577
+ cbnz w1, .L671
5578
+ cmp w3, w0
5579
+ beq .L671
5580
+ add w0, w0, 1
5581
+ strh w0, [x19, 348]
5582
+.L671:
46295583 mov w0, 0
5584
+.L672:
5585
+ ldr x1, [x19, 3584]
5586
+ cmp w0, w2
5587
+ bne .L673
5588
+ ldr w0, [x21, 4]
5589
+ str w0, [x1, x5]
5590
+ ldr x0, [x19, 352]
5591
+ strh w20, [x0, x6, lsl 1]
5592
+.L674:
5593
+ tbnz w2, #31, .L656
5594
+ ldrh w0, [x19, 324]
5595
+ ldrh w1, [x19, 348]
5596
+ sub w0, w0, #1
5597
+ sub w0, w0, w1
5598
+ cmp w2, w0, sxth
5599
+ bgt .L656
5600
+ ldr x0, [x19, 3584]
5601
+ add w1, w1, 1
5602
+ strh w1, [x19, 348]
5603
+ ldr w1, [x21, 4]
5604
+ str w1, [x0, w2, sxtw 2]
5605
+ ldr x0, [x19, 352]
5606
+ b .L720
5607
+.L673:
5608
+ add w3, w0, 1
5609
+ ldr w4, [x1, w3, sxtw 2]
5610
+ str w4, [x1, w0, sxtw 2]
5611
+ ldr x1, [x19, 352]
5612
+ ldrh w4, [x1, w3, sxtw 1]
5613
+ strh w4, [x1, w0, sxtw 1]
5614
+ sxth w0, w3
5615
+ b .L672
5616
+.L670:
5617
+ sub w2, w2, #1
5618
+ sxth w2, w2
5619
+ b .L669
5620
+.L655:
5621
+ ldrh w3, [x19, 2696]
5622
+ add x1, x19, 2560
5623
+ mov w2, 65535
5624
+ cmp w3, w2
5625
+ bne .L676
5626
+ strh w20, [x1, 136]
5627
+ str w0, [x1, 144]
5628
+ b .L656
5629
+.L676:
5630
+ ldrh w0, [x1, 140]
5631
+ cmp w0, w2
5632
+ beq .L677
5633
+ mov w1, 1
5634
+ bl FtlFreeSysBlkQueueIn
5635
+.L677:
5636
+ ldr w1, [x21, 4]
5637
+ add x0, x19, 2560
5638
+ ldr w2, [x0, 144]
5639
+ cmp w2, w1
5640
+ bcs .L678
5641
+ ldrh w1, [x0, 136]
5642
+ strh w1, [x0, 140]
5643
+ strh w20, [x0, 136]
5644
+ ldr w1, [x21, 4]
5645
+ str w1, [x0, 144]
5646
+ b .L656
5647
+.L678:
5648
+ strh w20, [x0, 140]
5649
+ b .L656
5650
+.L681:
5651
+ ldr x2, [x19, 3560]
5652
+ ldrh w0, [x2]
5653
+ cbz w0, .L683
5654
+.L686:
5655
+ ldr x1, [x19, 352]
5656
+ ldrh w0, [x1]
5657
+ cbz w0, .L684
5658
+.L685:
5659
+ ldrh w1, [x19, 3696]
5660
+ ldr w0, [x19, 332]
5661
+ cmp w1, w0
5662
+ bls .L716
5663
+ adrp x1, .LANCHOR1
5664
+ add x1, x1, :lo12:.LANCHOR1
5665
+ adrp x0, .LC9
5666
+ add x1, x1, 231
5667
+ add x0, x0, :lo12:.LC9
5668
+ mov w2, 1398
5669
+ bl sftl_printk
5670
+.L716:
5671
+ mov w0, 0
5672
+ ldp x19, x20, [sp, 16]
46305673 ldp x21, x22, [sp, 32]
46315674 ldp x23, x24, [sp, 48]
46325675 ldp x25, x26, [sp, 64]
46335676 ldp x27, x28, [sp, 80]
4634
- ldp x29, x30, [sp], 112
5677
+ ldp x29, x30, [sp], 96
5678
+ hint 29 // autiasp
46355679 ret
4636
-.L636:
4637
- ldrh w0, [x19, 3704]
4638
- cbz w0, .L639
4639
- ldr w2, [x19, 332]
5680
+.L683:
5681
+ ldrh w0, [x19, 3696]
5682
+ cbz w0, .L686
5683
+ ldr w3, [x19, 332]
46405684 mov w0, 0
4641
-.L640:
4642
- cmp w0, w2
4643
- bcs .L639
4644
- ldrh w3, [x1, w0, sxtw 1]
4645
- cbz w3, .L641
4646
- mov w1, w0
4647
- add x2, x21, :lo12:.LANCHOR0
4648
-.L642:
4649
- ldr w3, [x2, 332]
4650
- cmp w1, w3
4651
- bcs .L639
4652
- ldr x5, [x2, 3568]
4653
- sxtw x6, w1
4654
- lsl x4, x6, 1
4655
- sub w3, w1, w0
4656
- sxtw x3, w3
4657
- add w1, w1, 1
5685
+.L687:
5686
+ cmp w0, w3
5687
+ bcs .L686
5688
+ ldrh w4, [x2, w0, sxtw 1]
5689
+ add w1, w0, 1
46585690 sxth w1, w1
4659
- ldrh w7, [x5, x4]
4660
- strh w7, [x5, x3, lsl 1]
4661
- ldr x5, [x2, 3616]
4662
- ldr w6, [x5, x6, lsl 2]
4663
- str w6, [x5, x3, lsl 2]
4664
- ldr x3, [x2, 3568]
4665
- strh wzr, [x3, x4]
4666
- b .L642
4667
-.L641:
4668
- add w0, w0, 1
4669
- sxth w0, w0
4670
- b .L640
4671
-.L637:
4672
- ldrh w2, [x0, 348]
4673
- cbz w2, .L638
4674
- ldrh w2, [x0, 324]
5691
+ cbz w4, .L699
5692
+ mov w1, w0
5693
+.L688:
5694
+ ldr x2, [x19, 3560]
5695
+ sub w3, w1, w0
5696
+ ldrh w4, [x2, w1, sxtw 1]
5697
+ strh w4, [x2, w3, sxtw 1]
5698
+ ldr x2, [x19, 3608]
5699
+ ldr w4, [x2, w1, sxtw 2]
5700
+ str w4, [x2, w3, sxtw 2]
5701
+ ldr x2, [x19, 3560]
5702
+ strh wzr, [x2, w1, sxtw 1]
5703
+ add w2, w1, 1
5704
+ ldr w3, [x19, 332]
5705
+ sxth w1, w2
5706
+ cmp w3, w2, sxth
5707
+ bhi .L688
5708
+ b .L686
5709
+.L699:
5710
+ mov w0, w1
5711
+ b .L687
5712
+.L684:
5713
+ ldrh w0, [x19, 348]
5714
+ cbz w0, .L685
5715
+ ldrh w2, [x19, 324]
46755716 mov w0, 0
4676
-.L647:
4677
- mov w6, w0
5717
+.L692:
5718
+ mov w3, w0
46785719 cmp w0, w2
4679
- bge .L638
4680
- ldrh w3, [x1, w0, sxtw 1]
4681
- cbz w3, .L648
4682
- add x1, x21, :lo12:.LANCHOR0
4683
-.L649:
4684
- ldrh w2, [x1, 324]
4685
- cmp w0, w2
4686
- bge .L638
4687
- ldr x4, [x1, 352]
4688
- sxtw x5, w0
4689
- lsl x3, x5, 1
4690
- sub w2, w0, w6
4691
- sxtw x2, w2
5720
+ bge .L685
5721
+ ldrh w4, [x1, w0, sxtw 1]
5722
+ cbz w4, .L717
5723
+.L693:
5724
+ ldrh w1, [x19, 324]
5725
+ cmp w0, w1
5726
+ bge .L685
5727
+ ldr x1, [x19, 352]
5728
+ sub w2, w0, w3
5729
+ ldrh w4, [x1, w0, sxtw 1]
5730
+ strh w4, [x1, w2, sxtw 1]
5731
+ ldr x1, [x19, 3584]
5732
+ ldr w4, [x1, w0, sxtw 2]
5733
+ str w4, [x1, w2, sxtw 2]
5734
+ ldr x1, [x19, 352]
5735
+ strh wzr, [x1, w0, sxtw 1]
46925736 add w0, w0, 1
46935737 sxth w0, w0
4694
- ldrh w7, [x4, x3]
4695
- strh w7, [x4, x2, lsl 1]
4696
- ldr x4, [x1, 3592]
4697
- ldr w5, [x4, x5, lsl 2]
4698
- str w5, [x4, x2, lsl 2]
4699
- ldr x2, [x1, 352]
4700
- strh wzr, [x2, x3]
4701
- b .L649
4702
-.L648:
5738
+ b .L693
5739
+.L717:
47035740 add w0, w0, 1
47045741 sxth w0, w0
4705
- b .L647
5742
+ b .L692
47065743 .size FtlScanSysBlk, .-FtlScanSysBlk
47075744 .align 2
47085745 .global FtlLoadBbt
47095746 .type FtlLoadBbt, %function
47105747 FtlLoadBbt:
4711
- stp x29, x30, [sp, -64]!
4712
- add x29, sp, 0
5748
+ hint 34 // bti c
5749
+ .section __patchable_function_entries
5750
+ .align 3
5751
+ .8byte .LPFE75
5752
+ .text
5753
+.LPFE75:
5754
+ nop
5755
+ nop
5756
+ hint 25 // paciasp
5757
+ stp x29, x30, [sp, -80]!
5758
+ mov x29, sp
47135759 stp x19, x20, [sp, 16]
47145760 adrp x19, .LANCHOR0
4715
- stp x23, x24, [sp, 48]
4716
- add x23, x19, :lo12:.LANCHOR0
5761
+ add x19, x19, :lo12:.LANCHOR0
47175762 stp x21, x22, [sp, 32]
4718
- add x21, x23, 3720
4719
- mov w24, 61649
4720
- ldr x0, [x23, 3456]
4721
- ldr x22, [x23, 3520]
4722
- stp x0, x22, [x21, 8]
5763
+ add x22, x19, 3712
5764
+ ldr x0, [x19, 3448]
5765
+ stp x23, x24, [sp, 48]
5766
+ mov w23, 61649
5767
+ str x25, [sp, 64]
5768
+ ldr x21, [x19, 3512]
5769
+ stp x0, x21, [x22, 8]
47235770 bl FtlBbtMemInit
4724
- ldrh w20, [x23, 302]
5771
+ ldrh w20, [x19, 302]
47255772 sub w20, w20, #1
47265773 and w20, w20, 65535
4727
-.L674:
4728
- ldrh w0, [x23, 302]
5774
+.L723:
5775
+ ldrh w0, [x19, 302]
47295776 sub w0, w0, #16
47305777 cmp w20, w0
4731
- ble .L677
5778
+ ble .L728
47325779 lsl w0, w20, 10
47335780 mov w2, 1
4734
- str w0, [x21, 4]
47355781 mov w1, w2
4736
- mov x0, x21
5782
+ str w0, [x22, 4]
5783
+ mov x0, x22
47375784 bl FlashReadPages
4738
- ldr w0, [x21]
5785
+ ldr w0, [x22]
47395786 cmn w0, #1
4740
- bne .L675
4741
- ldr w0, [x21, 4]
4742
- mov w2, 1
4743
- mov w1, w2
4744
- add w0, w0, 1
4745
- str w0, [x21, 4]
4746
- mov x0, x21
4747
- bl FlashReadPages
4748
-.L675:
4749
- ldr w0, [x21]
4750
- cmn w0, #1
4751
- beq .L676
4752
- ldrh w0, [x22]
4753
- cmp w0, w24
4754
- bne .L676
4755
- ldr w1, [x22, 4]
4756
- str w1, [x23, 368]
4757
- strh w20, [x23, 360]
4758
- ldrh w1, [x22, 8]
4759
- strh w1, [x23, 364]
4760
-.L677:
4761
- add x21, x19, :lo12:.LANCHOR0
5787
+ beq .L724
5788
+.L727:
5789
+ ldrh w0, [x21]
5790
+ cmp w0, w23
5791
+ bne .L726
5792
+ ldr w1, [x21, 4]
5793
+ str w1, [x19, 368]
5794
+ strh w20, [x19, 360]
5795
+ ldrh w1, [x21, 8]
5796
+ strh w1, [x19, 364]
5797
+.L728:
5798
+ ldrh w1, [x19, 360]
47625799 mov w0, 65535
4763
- ldrh w1, [x21, 360]
47645800 cmp w1, w0
4765
- beq .L691
4766
- ldrh w1, [x21, 364]
5801
+ beq .L742
5802
+ ldrh w1, [x19, 364]
47675803 cmp w1, w0
4768
- beq .L681
4769
- add x0, x21, 3720
5804
+ beq .L732
5805
+ add x0, x19, 3712
47705806 lsl w1, w1, 10
47715807 mov w2, 1
47725808 str w1, [x0, 4]
47735809 mov w1, w2
47745810 bl FlashReadPages
4775
- ldr w0, [x21, 3720]
5811
+ ldr w0, [x19, 3712]
47765812 cmn w0, #1
4777
- beq .L681
4778
- ldrh w1, [x22]
5813
+ beq .L732
5814
+ ldrh w1, [x21]
47795815 mov w0, 61649
47805816 cmp w1, w0
4781
- bne .L681
4782
- ldr w1, [x21, 368]
4783
- ldr w0, [x22, 4]
5817
+ bne .L732
5818
+ ldr w1, [x19, 368]
5819
+ ldr w0, [x21, 4]
47845820 cmp w0, w1
4785
- bls .L681
4786
- str w0, [x21, 368]
4787
- ldrh w1, [x21, 364]
4788
- ldrh w0, [x22, 8]
4789
- strh w1, [x21, 360]
4790
- strh w0, [x21, 364]
4791
-.L681:
4792
- add x20, x19, :lo12:.LANCHOR0
5821
+ bls .L732
5822
+ str w0, [x19, 368]
5823
+ ldrh w1, [x19, 364]
5824
+ ldrh w0, [x21, 8]
5825
+ strh w1, [x19, 360]
5826
+ strh w0, [x19, 364]
5827
+.L732:
5828
+ ldrh w0, [x19, 360]
47935829 mov w1, 1
4794
- add x23, x20, 3720
4795
- mov w24, 61649
4796
- ldrh w0, [x20, 360]
5830
+ add x23, x19, 3712
5831
+ mov w20, 0
5832
+ mov w25, 61649
47975833 bl FtlGetLastWrittenPage
4798
- sxth w21, w0
4799
- add w0, w0, 1
4800
- strh w0, [x20, 362]
4801
-.L683:
4802
- tbz w21, #31, .L686
5834
+ sxth w24, w0
5835
+ mov w22, w0
5836
+ add w0, w24, 1
5837
+ strh w0, [x19, 362]
5838
+.L734:
5839
+ sub w0, w22, w20
5840
+ tbz x0, 15, .L737
48035841 adrp x1, .LANCHOR1
48045842 add x1, x1, :lo12:.LANCHOR1
4805
- adrp x0, .LC8
5843
+ adrp x0, .LC9
5844
+ add x1, x1, 245
5845
+ add x0, x0, :lo12:.LC9
48065846 mov w2, 251
4807
- add x1, x1, 304
4808
- add x0, x0, :lo12:.LC8
48095847 bl sftl_printk
4810
-.L685:
4811
- add x1, x19, :lo12:.LANCHOR0
4812
- ldrh w0, [x22, 10]
4813
- mov w2, 65535
4814
- strh w0, [x1, 366]
4815
- ldrh w0, [x22, 12]
5848
+.L736:
5849
+ ldrh w0, [x21, 10]
5850
+ mov w1, 65535
5851
+ strh w0, [x19, 366]
5852
+ ldrh w0, [x21, 12]
5853
+ cmp w0, w1
5854
+ beq .L739
5855
+ ldr w2, [x19, 232]
48165856 cmp w0, w2
4817
- beq .L688
4818
- ldr w2, [x1, 232]
4819
- cmp w0, w2
4820
- beq .L688
4821
- ldrh w1, [x1, 246]
5857
+ beq .L739
5858
+ ldrh w1, [x19, 246]
48225859 lsr w1, w1, 2
48235860 cmp w2, w1
4824
- bcs .L688
5861
+ bcs .L739
48255862 cmp w0, w1
4826
- bcs .L688
5863
+ bcs .L739
48275864 bl FtlSysBlkNumInit
4828
-.L688:
4829
- add x19, x19, :lo12:.LANCHOR0
4830
- mov w20, 0
4831
- add x21, x19, 392
4832
-.L689:
5865
+.L739:
5866
+ add x21, x19, 360
5867
+ mov x20, 0
5868
+.L740:
48335869 ldrh w0, [x19, 258]
4834
- cmp w20, w0
4835
- bcc .L690
5870
+ cmp w0, w20
5871
+ bhi .L741
48365872 mov w0, 0
4837
-.L673:
5873
+.L722:
48385874 ldp x19, x20, [sp, 16]
48395875 ldp x21, x22, [sp, 32]
48405876 ldp x23, x24, [sp, 48]
4841
- ldp x29, x30, [sp], 64
5877
+ ldr x25, [sp, 64]
5878
+ ldp x29, x30, [sp], 80
5879
+ hint 29 // autiasp
48425880 ret
4843
-.L676:
4844
- sub w20, w20, #1
4845
- and w20, w20, 65535
4846
- b .L674
4847
-.L686:
4848
- ldrh w0, [x20, 360]
5881
+.L724:
5882
+ ldr w0, [x22, 4]
48495883 mov w2, 1
48505884 mov w1, w2
4851
- orr w0, w21, w0, lsl 10
5885
+ add w0, w0, 1
5886
+ str w0, [x22, 4]
5887
+ mov x0, x22
5888
+ bl FlashReadPages
5889
+ ldr w0, [x22]
5890
+ cmn w0, #1
5891
+ bne .L727
5892
+.L726:
5893
+ sub w20, w20, #1
5894
+ and w20, w20, 65535
5895
+ b .L723
5896
+.L737:
5897
+ ldrh w0, [x19, 360]
5898
+ sub w1, w24, w20
5899
+ mov w2, 1
5900
+ orr w0, w1, w0, lsl 10
48525901 str w0, [x23, 4]
4853
- ldr x0, [x20, 3456]
5902
+ ldr x0, [x19, 3448]
5903
+ mov w1, w2
48545904 str x0, [x23, 8]
48555905 mov x0, x23
48565906 bl FlashReadPages
48575907 ldr w0, [x23]
48585908 cmn w0, #1
4859
- beq .L684
4860
- ldrh w0, [x22]
4861
- cmp w0, w24
4862
- beq .L685
4863
-.L684:
4864
- sub w21, w21, #1
4865
- sxth w21, w21
4866
- b .L683
4867
-.L690:
4868
- ldrh w2, [x19, 3632]
4869
- ldr x0, [x19, 3728]
4870
- mul w1, w2, w20
4871
- lsl w2, w2, 2
5909
+ beq .L735
5910
+ ldrh w0, [x21]
5911
+ cmp w0, w25
5912
+ beq .L736
5913
+.L735:
48725914 add w20, w20, 1
4873
- add x1, x0, x1, lsl 2
4874
- ldr x0, [x21], 8
5915
+ b .L734
5916
+.L741:
5917
+ ldrh w2, [x19, 3624]
5918
+ add x0, x21, x20, lsl 3
5919
+ ldr x1, [x19, 3720]
5920
+ ldr x0, [x0, 32]
5921
+ mul w3, w2, w20
5922
+ lsl w2, w2, 2
5923
+ add x20, x20, 1
5924
+ add x1, x1, x3, lsl 2
48755925 bl ftl_memcpy
4876
- b .L689
4877
-.L691:
5926
+ b .L740
5927
+.L742:
48785928 mov w0, -1
4879
- b .L673
5929
+ b .L722
48805930 .size FtlLoadBbt, .-FtlLoadBbt
5931
+ .section .rodata.str1.1
5932
+.LC96:
5933
+ .string "prog read error: = %x\n"
5934
+.LC97:
5935
+ .string "prog read REFRESH: = %x\n"
5936
+.LC98:
5937
+ .string "prog read s error: = %x %x %x %x %x\n"
5938
+.LC99:
5939
+ .string "prog read d error: = %x %x %x %x %x\n"
5940
+ .text
48815941 .align 2
48825942 .global FlashProgPages
48835943 .type FlashProgPages, %function
48845944 FlashProgPages:
5945
+ hint 34 // bti c
5946
+ .section __patchable_function_entries
5947
+ .align 3
5948
+ .8byte .LPFE76
5949
+ .text
5950
+.LPFE76:
5951
+ nop
5952
+ nop
5953
+ hint 25 // paciasp
48855954 stp x29, x30, [sp, -160]!
4886
- ubfiz x1, x1, 5, 32
4887
- add x29, sp, 0
5955
+ mov x29, sp
48885956 stp x19, x20, [sp, 16]
4889
- mov x19, x0
5957
+ adrp x20, .LANCHOR0
5958
+ add x20, x20, :lo12:.LANCHOR0
48905959 stp x21, x22, [sp, 32]
4891
- adrp x22, __stack_chk_guard
5960
+ mov x19, x0
5961
+ mov w0, 32
48925962 stp x23, x24, [sp, 48]
4893
- adrp x21, .LANCHOR0
5963
+ adrp x23, .LANCHOR1
5964
+ umaddl x22, w1, w0, x19
48945965 stp x25, x26, [sp, 64]
4895
- adrp x24, .LANCHOR1
5966
+ add x23, x23, :lo12:.LANCHOR1
5967
+ mov w25, w2
48965968 stp x27, x28, [sp, 80]
4897
- add x24, x24, :lo12:.LANCHOR1
4898
- str w2, [x29, 108]
4899
- add x2, x22, :lo12:__stack_chk_guard
4900
- ldr x3, [x2]
4901
- str x3, [x29, 152]
4902
- mov x3,0
4903
- add x2, x21, :lo12:.LANCHOR0
4904
- adrp x25, .LC8
4905
- add x23, x0, x1
4906
- mov x20, x0
4907
- add x24, x24, 320
4908
- ldrh w26, [x2, 12]
4909
- add x25, x25, :lo12:.LC8
4910
- lsl w28, w26, 3
4911
-.L704:
4912
- cmp x20, x23
4913
- bne .L718
4914
- adrp x20, .LC95
4915
- adrp x24, .LC96
4916
- add x20, x20, :lo12:.LC95
4917
- add x24, x24, :lo12:.LC96
4918
-.L719:
4919
- cmp x19, x23
4920
- beq .L712
4921
- add x0, x21, :lo12:.LANCHOR0
4922
- ldr w2, [x29, 108]
4923
- ldr x1, [x0, 3496]
4924
- str wzr, [x1]
4925
- ldr x1, [x0, 3512]
4926
- str wzr, [x1]
4927
- ldr w1, [x19, 4]
4928
- str w1, [x29, 124]
4929
- ldr x1, [x0, 3496]
4930
- ldr x0, [x0, 3512]
4931
- stp x1, x0, [x29, 128]
5969
+ mrs x2, sp_el0
5970
+ adrp x26, .LC9
5971
+ ldrh w27, [x20, 12]
5972
+ ldr x3, [x2, 1376]
5973
+ str x3, [sp, 152]
5974
+ mov x3, 0
5975
+ mov x21, x19
5976
+ add x23, x23, 256
5977
+ add x26, x26, :lo12:.LC9
5978
+ lsl w28, w27, 3
5979
+.L755:
5980
+ cmp x21, x22
5981
+ bne .L769
5982
+ adrp x21, .LC96
5983
+ adrp x23, .LC97
5984
+ add x21, x21, :lo12:.LC96
5985
+ add x23, x23, :lo12:.LC97
5986
+.L770:
5987
+ cmp x19, x22
5988
+ beq .L763
5989
+ ldr x0, [x20, 3488]
5990
+ mov w2, w25
49325991 mov w1, 1
4933
- add x0, x29, 120
5992
+ str wzr, [x0]
5993
+ ldr x0, [x20, 3504]
5994
+ str wzr, [x0]
5995
+ ldr w0, [x19, 4]
5996
+ str w0, [sp, 124]
5997
+ ldr x0, [x20, 3488]
5998
+ str x0, [sp, 128]
5999
+ ldr x0, [x20, 3504]
6000
+ str x0, [sp, 136]
6001
+ add x0, sp, 120
49346002 bl FlashReadPages
4935
- ldr w25, [x29, 120]
4936
- cmn w25, #1
4937
- bne .L720
6003
+ ldr w24, [sp, 120]
6004
+ cmn w24, #1
6005
+ bne .L771
49386006 ldr w1, [x19, 4]
4939
- mov x0, x20
6007
+ mov x0, x21
49406008 bl sftl_printk
4941
- str w25, [x19]
4942
-.L720:
4943
- ldr w25, [x29, 120]
4944
- cmp w25, 256
4945
- bne .L721
6009
+ str w24, [x19]
6010
+.L771:
6011
+ ldr w24, [sp, 120]
6012
+ cmp w24, 256
6013
+ bne .L772
49466014 ldr w1, [x19, 4]
4947
- mov x0, x24
6015
+ mov x0, x23
49486016 bl sftl_printk
4949
- str w25, [x19]
4950
-.L721:
4951
- ldr x0, [x19, 16]
4952
- cbz x0, .L722
4953
- add x1, x21, :lo12:.LANCHOR0
4954
- ldr w2, [x0]
4955
- ldr x1, [x1, 3512]
4956
- ldr w4, [x1]
6017
+ str w24, [x19]
6018
+.L772:
6019
+ ldr x1, [x19, 16]
6020
+ cbz x1, .L773
6021
+ ldr x0, [x20, 3504]
6022
+ ldr w2, [x1]
6023
+ ldr w4, [x0]
49576024 cmp w2, w4
4958
- bne .L723
4959
- ldr w5, [x0, 8]
4960
- ldr w3, [x1, 8]
6025
+ bne .L774
6026
+ ldr w3, [x0, 8]
6027
+ ldr w5, [x1, 8]
49616028 cmp w5, w3
4962
- beq .L722
4963
-.L723:
4964
- ldr w3, [x0, 4]
4965
- adrp x0, .LC97
4966
- ldr w5, [x1, 4]
4967
- add x0, x0, :lo12:.LC97
4968
- ldr w1, [x19, 4]
4969
- bl sftl_printk
4970
- mov w0, -1
4971
- str w0, [x19]
4972
-.L722:
4973
- ldr x0, [x19, 8]
4974
- cbz x0, .L724
4975
- add x1, x21, :lo12:.LANCHOR0
4976
- ldr w2, [x0]
4977
- ldr x1, [x1, 3496]
4978
- ldr w4, [x1]
4979
- cmp w2, w4
4980
- bne .L725
4981
- ldr w5, [x0, 2048]
4982
- ldr w3, [x1, 2048]
4983
- cmp w5, w3
4984
- beq .L724
4985
-.L725:
4986
- ldr w3, [x0, 4]
6029
+ beq .L773
6030
+.L774:
6031
+ ldr w5, [x0, 4]
49876032 adrp x0, .LC98
4988
- ldr w5, [x1, 4]
6033
+ ldr w3, [x1, 4]
49896034 add x0, x0, :lo12:.LC98
49906035 ldr w1, [x19, 4]
49916036 bl sftl_printk
49926037 mov w0, -1
49936038 str w0, [x19]
4994
-.L724:
4995
- add x19, x19, 32
4996
- b .L719
4997
-.L718:
4998
- ldr x0, [x20, 8]
4999
- cbz x0, .L705
5000
- ldr x0, [x20, 16]
5001
- cbnz x0, .L706
5002
-.L705:
5003
- mov w2, 148
5004
- mov x1, x24
5005
- mov x0, x25
6039
+.L773:
6040
+ ldr x1, [x19, 8]
6041
+ cbz x1, .L775
6042
+ ldr x0, [x20, 3488]
6043
+ ldr w2, [x1]
6044
+ ldr w4, [x0]
6045
+ cmp w2, w4
6046
+ bne .L776
6047
+ ldr w3, [x0, 2048]
6048
+ ldr w5, [x1, 2048]
6049
+ cmp w5, w3
6050
+ beq .L775
6051
+.L776:
6052
+ ldr w5, [x0, 4]
6053
+ adrp x0, .LC99
6054
+ ldr w3, [x1, 4]
6055
+ add x0, x0, :lo12:.LC99
6056
+ ldr w1, [x19, 4]
50066057 bl sftl_printk
5007
-.L706:
5008
- ldr w0, [x20, 4]
5009
- add x2, x29, 112
5010
- add x1, x29, 116
5011
- bl l2p_addr_tran.isra.0
5012
- ldr w0, [x29, 112]
5013
- cmp w0, 3
5014
- bls .L707
5015
-.L743:
50166058 mov w0, -1
5017
- str w0, [x20]
5018
- b .L708
5019
-.L707:
5020
- cbnz w0, .L709
5021
- ldr w0, [x29, 116]
6059
+ str w0, [x19]
6060
+.L775:
6061
+ add x19, x19, 32
6062
+ b .L770
6063
+.L769:
6064
+ ldr x0, [x21, 8]
6065
+ cbz x0, .L756
6066
+ ldr x0, [x21, 16]
6067
+ cbnz x0, .L757
6068
+.L756:
6069
+ mov x1, x23
6070
+ mov x0, x26
6071
+ mov w2, 148
6072
+ bl sftl_printk
6073
+.L757:
6074
+ ldr w0, [x21, 4]
6075
+ add x2, sp, 112
6076
+ add x1, sp, 116
6077
+ bl l2p_addr_tran.isra.0
6078
+ ldr w0, [sp, 112]
6079
+ cmp w0, 3
6080
+ bls .L758
6081
+ mov w0, -1
6082
+ str w0, [x21]
6083
+.L759:
6084
+ add x21, x21, 32
6085
+ b .L755
6086
+.L758:
6087
+ cbnz w0, .L760
6088
+ ldr w0, [sp, 116]
50226089 cmp w28, w0
5023
- bls .L709
6090
+ bls .L760
50246091 adrp x20, .LANCHOR1
50256092 add x20, x20, :lo12:.LANCHOR1
5026
- adrp x21, .LC86
5027
- add x20, x20, 320
5028
- add x21, x21, :lo12:.LC86
5029
- b .L741
5030
-.L711:
6093
+ adrp x21, .LC87
6094
+ add x20, x20, 256
6095
+ add x21, x21, :lo12:.LC87
6096
+.L761:
6097
+ cmp x19, x22
6098
+ bne .L762
6099
+ bl dump_stack
6100
+.L763:
6101
+ mrs x0, sp_el0
6102
+ ldr x1, [sp, 152]
6103
+ ldr x2, [x0, 1376]
6104
+ subs x1, x1, x2
6105
+ mov x2, 0
6106
+ beq .L778
6107
+ bl __stack_chk_fail
6108
+.L762:
50316109 ldr w2, [x19, 4]
50326110 mov w0, -1
50336111 str w0, [x19]
....@@ -5038,198 +6116,189 @@
50386116 ldr x1, [x19, -24]
50396117 mov w3, 16
50406118 mov w2, 4
5041
- adrp x0, .LC87
5042
- add x0, x0, :lo12:.LC87
6119
+ adrp x0, .LC88
6120
+ add x0, x0, :lo12:.LC88
50436121 bl rknand_print_hex
50446122 ldr x1, [x19, -16]
50456123 mov w3, 4
5046
- adrp x0, .LC88
6124
+ adrp x0, .LC89
50476125 mov w2, w3
5048
- add x0, x0, :lo12:.LC88
6126
+ add x0, x0, :lo12:.LC89
50496127 bl rknand_print_hex
5050
-.L741:
5051
- cmp x19, x23
5052
- bne .L711
5053
- bl dump_stack
5054
-.L712:
5055
- add x22, x22, :lo12:__stack_chk_guard
5056
- mov w0, 0
5057
- ldr x2, [x29, 152]
5058
- ldr x1, [x22]
5059
- eor x1, x2, x1
5060
- cbz x1, .L727
5061
- bl __stack_chk_fail
5062
-.L709:
5063
- ldr x1, [x20, 8]
6128
+ b .L761
6129
+.L760:
6130
+ ldr x1, [x21, 8]
50646131 tst x1, 63
5065
- beq .L728
5066
- add x0, x21, :lo12:.LANCHOR0
5067
- ldr x27, [x0, 3496]
5068
- cmp x1, x27
5069
- beq .L713
5070
- ldrh w2, [x0, 262]
5071
- mov x0, x27
6132
+ beq .L779
6133
+ ldr x24, [x20, 3488]
6134
+ cmp x24, x1
6135
+ beq .L764
6136
+ ldrh w2, [x20, 262]
6137
+ mov x0, x24
50726138 lsl w2, w2, 9
50736139 bl ftl_memcpy
5074
-.L713:
5075
- add x0, x21, :lo12:.LANCHOR0
5076
- ldr w1, [x29, 116]
5077
- ldr x3, [x20, 16]
5078
- mov x2, x27
5079
- ldr x5, [x0, 3376]
5080
- ldrb w0, [x29, 112]
5081
- blr x5
5082
- cbnz w0, .L714
5083
- str wzr, [x20]
5084
-.L715:
5085
- add x0, x21, :lo12:.LANCHOR0
5086
- ldrh w1, [x0, 14]
5087
- cmp w1, 4
5088
- bne .L708
5089
- ldr x5, [x0, 3376]
5090
- add x2, x27, 2048
5091
- ldrb w0, [x29, 112]
5092
- ldr w1, [x29, 116]
5093
- ldr x3, [x20, 16]
5094
- add w1, w26, w1
6140
+.L764:
6141
+ ldrb w0, [sp, 112]
6142
+ add x5, x20, 3352
6143
+ ldr w1, [sp, 116]
6144
+ mov x2, x24
6145
+ ldr x3, [x21, 16]
6146
+ str x5, [sp, 104]
6147
+ ldr x4, [x20, 3368]
6148
+ blr x4
6149
+ cmp w0, 0
6150
+ mov w4, -1
6151
+ csel w0, wzr, w4, eq
6152
+ str w0, [x21]
6153
+ ldr x5, [sp, 104]
6154
+ ldrh w0, [x20, 14]
6155
+ cmp w0, 4
6156
+ bne .L759
6157
+ ldrb w0, [sp, 112]
6158
+ add x2, x24, 2048
6159
+ ldr x5, [x5, 16]
6160
+ ldr x3, [x21, 16]
6161
+ ldr w1, [sp, 116]
50956162 add x3, x3, 8
6163
+ add w1, w27, w1
50966164 blr x5
5097
- cbnz w0, .L743
5098
-.L708:
5099
- add x20, x20, 32
5100
- b .L704
5101
-.L728:
5102
- mov x27, x1
5103
- b .L713
5104
-.L714:
5105
- mov w0, -1
5106
- str w0, [x20]
5107
- b .L715
5108
-.L727:
6165
+ cbz w0, .L759
6166
+ mov w4, -1
6167
+ str w4, [x21]
6168
+ b .L759
6169
+.L779:
6170
+ mov x24, x1
6171
+ b .L764
6172
+.L778:
6173
+ mov w0, 0
51096174 ldp x19, x20, [sp, 16]
51106175 ldp x21, x22, [sp, 32]
51116176 ldp x23, x24, [sp, 48]
51126177 ldp x25, x26, [sp, 64]
51136178 ldp x27, x28, [sp, 80]
51146179 ldp x29, x30, [sp], 160
6180
+ hint 29 // autiasp
51156181 ret
51166182 .size FlashProgPages, .-FlashProgPages
51176183 .align 2
51186184 .global FtlLowFormatEraseBlock
51196185 .type FtlLowFormatEraseBlock, %function
51206186 FtlLowFormatEraseBlock:
6187
+ hint 34 // bti c
6188
+ .section __patchable_function_entries
6189
+ .align 3
6190
+ .8byte .LPFE77
6191
+ .text
6192
+.LPFE77:
6193
+ nop
6194
+ nop
6195
+ hint 25 // paciasp
51216196 stp x29, x30, [sp, -112]!
5122
- mov w10, 0
5123
- mov w9, 4
5124
- add x29, sp, 0
5125
- stp x21, x22, [sp, 32]
5126
- adrp x21, .LANCHOR0
5127
- add x5, x21, :lo12:.LANCHOR0
5128
- stp x19, x20, [sp, 16]
5129
- stp x23, x24, [sp, 48]
5130
- and w22, w1, 255
5131
- stp x25, x26, [sp, 64]
5132
- add x8, x5, 264
6197
+ adrp x4, .LANCHOR0
6198
+ mov x29, sp
51336199 stp x27, x28, [sp, 80]
5134
- and w23, w0, 65535
6200
+ add x28, x4, :lo12:.LANCHOR0
6201
+ stp x21, x22, [sp, 32]
6202
+ and w21, w1, 255
6203
+ and w22, w0, 65535
6204
+ stp x23, x24, [sp, 48]
6205
+ add x24, x28, 264
6206
+ mov w23, 0
6207
+ stp x19, x20, [sp, 16]
51356208 mov w20, 0
51366209 mov w19, 0
5137
- str w23, [x5, 3428]
5138
-.L745:
5139
- ldrh w0, [x5, 236]
5140
- cmp w0, w10
5141
- bhi .L749
5142
- cbz w20, .L744
5143
- ldr x0, [x5, 3408]
6210
+ stp x25, x26, [sp, 64]
6211
+ mov w25, 4
6212
+ str w22, [x28, 3420]
6213
+.L795:
6214
+ ldrh w0, [x28, 236]
6215
+ cmp w0, w23
6216
+ bhi .L799
6217
+ cbz w20, .L794
6218
+ ldr x0, [x28, 3400]
51446219 mov w2, w20
51456220 mov w1, 0
5146
- ubfiz x20, x20, 5, 16
5147
- mov x24, 0
5148
- add x25, x21, :lo12:.LANCHOR0
6221
+ mov x23, 0
51496222 bl FlashEraseBlocks
5150
-.L753:
5151
- ldr x0, [x25, 3408]
5152
- add x1, x0, x24
5153
- ldr w0, [x0, x24]
6223
+.L803:
6224
+ ldr x1, [x28, 3400]
6225
+ lsl x0, x23, 5
6226
+ ldr w0, [x1, x0]
6227
+ add x2, x1, x23, lsl 5
51546228 cmn w0, #1
5155
- bne .L752
5156
- ldr w0, [x1, 4]
6229
+ bne .L802
6230
+ ldr w0, [x2, 4]
51576231 add w19, w19, 1
51586232 and w19, w19, 65535
5159
- lsr w0, w0, 10
6233
+ ubfx x0, x0, 10, 16
51606234 bl FtlBbmMapBadBlock
5161
-.L752:
5162
- add x24, x24, 32
5163
- cmp x24, x20
5164
- bne .L753
5165
- cbz w22, .L766
5166
- add x0, x21, :lo12:.LANCHOR0
5167
- mov w25, 1
5168
- ldrh w26, [x0, 308]
5169
-.L754:
5170
- add x28, x21, :lo12:.LANCHOR0
5171
- mov w24, 0
6235
+.L802:
6236
+ add x23, x23, 1
6237
+ cmp w20, w23, uxth
6238
+ bhi .L803
6239
+ cbz w21, .L816
6240
+ ldrh w26, [x28, 308]
6241
+ mov w24, 1
6242
+.L804:
51726243 add x0, x28, 264
5173
- str x0, [x29, 104]
5174
-.L762:
5175
- mov w5, 0
6244
+ mov w23, 0
6245
+ str x0, [sp, 96]
6246
+.L812:
6247
+ mov w27, 0
51766248 mov w20, 0
5177
-.L755:
6249
+.L805:
51786250 ldrh w0, [x28, 236]
5179
- cmp w0, w5
5180
- bhi .L758
5181
- cbz w20, .L744
5182
- ldr x0, [x28, 3408]
6251
+ cmp w0, w27
6252
+ bhi .L808
6253
+ cbz w20, .L794
6254
+ ldr x0, [x28, 3400]
6255
+ mov w2, w24
51836256 mov w1, w20
51846257 mov w3, 1
5185
- mov w2, w25
5186
- mov x27, 0
6258
+ mov x25, 0
51876259 bl FlashProgPages
5188
- ubfiz x1, x20, 5, 16
5189
-.L761:
5190
- ldr x0, [x28, 3408]
5191
- add x3, x0, x27
5192
- ldr w0, [x0, x27]
5193
- cbz w0, .L760
5194
- ldr w0, [x3, 4]
6260
+.L811:
6261
+ ldr x1, [x28, 3400]
6262
+ lsl x0, x25, 5
6263
+ ldr w0, [x1, x0]
6264
+ add x2, x1, x25, lsl 5
6265
+ cbz w0, .L810
6266
+ ldr w0, [x2, 4]
51956267 add w19, w19, 1
5196
- str x1, [x29, 96]
51976268 and w19, w19, 65535
5198
- lsr w0, w0, 10
6269
+ ubfx x0, x0, 10, 16
51996270 bl FtlBbmMapBadBlock
5200
- ldr x1, [x29, 96]
5201
-.L760:
5202
- add x27, x27, 32
5203
- cmp x1, x27
5204
- bne .L761
5205
- add w24, w24, 1
5206
- cmp w26, w24, uxth
5207
- bhi .L762
5208
- add x26, x21, :lo12:.LANCHOR0
5209
- mov x24, 0
5210
-.L764:
5211
- cbz w22, .L763
5212
- ldr x0, [x26, 3408]
5213
- add x1, x0, x24
5214
- ldr w0, [x0, x24]
5215
- cbnz w0, .L763
5216
- ldr w0, [x1, 4]
6271
+.L810:
6272
+ add x25, x25, 1
6273
+ cmp w20, w25, uxth
6274
+ bhi .L811
6275
+ add w23, w23, 1
6276
+ cmp w26, w23, uxth
6277
+ bhi .L812
6278
+ mov x23, 0
6279
+.L814:
6280
+ cbz w21, .L813
6281
+ ldr x1, [x28, 3400]
6282
+ lsl x0, x23, 5
6283
+ ldr w0, [x1, x0]
6284
+ add x2, x1, x23, lsl 5
6285
+ cbnz w0, .L813
6286
+ ldr w0, [x2, 4]
52176287 mov w1, 1
5218
- lsr w0, w0, 10
6288
+ ubfx x0, x0, 10, 16
52196289 bl FtlFreeSysBlkQueueIn
5220
-.L763:
5221
- add x24, x24, 32
5222
- cmp x24, x27
5223
- bne .L764
5224
- cmp w23, 63
5225
- ccmp w22, 0, 0, hi
5226
- beq .L744
5227
- add x21, x21, :lo12:.LANCHOR0
6290
+.L813:
6291
+ add x23, x23, 1
6292
+ cmp w20, w23, uxth
6293
+ bhi .L814
6294
+ cmp w22, 63
6295
+ ccmp w21, 0, 0, hi
6296
+ beq .L794
6297
+ ldr x0, [x28, 3400]
52286298 mov w2, w20
5229
- mov w1, w25
5230
- ldr x0, [x21, 3408]
6299
+ mov w1, w24
52316300 bl FlashEraseBlocks
5232
-.L744:
6301
+.L794:
52336302 mov w0, w19
52346303 ldp x19, x20, [sp, 16]
52356304 ldp x21, x22, [sp, 32]
....@@ -5237,731 +6306,763 @@
52376306 ldp x25, x26, [sp, 64]
52386307 ldp x27, x28, [sp, 80]
52396308 ldp x29, x30, [sp], 112
6309
+ hint 29 // autiasp
52406310 ret
5241
-.L749:
5242
- ldr x1, [x5, 3408]
5243
- ubfiz x0, x10, 5, 16
6311
+.L799:
6312
+ ldr x1, [x28, 3400]
6313
+ ubfiz x0, x23, 5, 16
52446314 str wzr, [x1, x0]
5245
- mov w1, w23
5246
- ldrb w0, [x8, w10, sxtw]
6315
+ mov w1, w22
6316
+ ldrb w0, [x24, w23, sxtw]
52476317 bl V2P_block
5248
- and w6, w0, 65535
5249
- mov w7, w6
5250
- cbz w22, .L746
6318
+ and w27, w0, 65535
6319
+ mov w26, w27
6320
+ cbz w21, .L796
52516321 bl IsBlkInVendorPart
5252
- cbnz w0, .L747
5253
-.L746:
5254
- mov w0, w7
6322
+ cbnz w0, .L797
6323
+.L796:
6324
+ mov w0, w26
52556325 bl FtlBbmIsBadBlock
5256
- cbnz w0, .L748
5257
- ldr x0, [x5, 3408]
6326
+ cbnz w0, .L798
6327
+ ldr x0, [x28, 3400]
52586328 ubfiz x2, x20, 5, 16
5259
- lsl w6, w6, 10
6329
+ lsl w27, w27, 10
52606330 add x0, x0, x2
5261
- str w6, [x0, 4]
5262
- ldr x1, [x5, 3408]
5263
- ldr x0, [x5, 3488]
6331
+ str w27, [x0, 4]
6332
+ ldr x1, [x28, 3400]
6333
+ ldr x0, [x28, 3480]
52646334 add x1, x1, x2
5265
- ldr x2, [x5, 3528]
6335
+ ldr x2, [x28, 3520]
52666336 str x0, [x1, 8]
5267
- ldrh w0, [x5, 316]
6337
+ ldrh w0, [x28, 316]
52686338 mul w0, w0, w20
52696339 add w20, w20, 1
52706340 and w20, w20, 65535
5271
- sdiv w0, w0, w9
5272
- add x0, x2, x0, sxtw 2
6341
+ sdiv w0, w0, w25
6342
+ add x0, x2, w0, sxtw 2
52736343 str x0, [x1, 16]
5274
-.L747:
5275
- add w10, w10, 1
5276
- and w10, w10, 65535
5277
- b .L745
5278
-.L748:
6344
+.L797:
6345
+ add w23, w23, 1
6346
+ and w23, w23, 65535
6347
+ b .L795
6348
+.L798:
52796349 add w19, w19, 1
52806350 and w19, w19, 65535
5281
- b .L747
5282
-.L766:
5283
- mov w25, 0
6351
+ b .L797
6352
+.L816:
6353
+ mov w24, 0
52846354 mov w26, 2
5285
- b .L754
5286
-.L758:
5287
- ldr x1, [x28, 3408]
5288
- ubfiz x0, x5, 5, 16
6355
+ b .L804
6356
+.L808:
6357
+ ldr x1, [x28, 3400]
6358
+ ubfiz x0, x27, 5, 16
52896359 str wzr, [x1, x0]
5290
- mov w1, w23
5291
- ldr x0, [x29, 104]
5292
- ldrb w0, [x0, w5, sxtw]
6360
+ mov w1, w22
6361
+ ldr x0, [sp, 96]
6362
+ ldrb w0, [x0, w27, sxtw]
52936363 bl V2P_block
5294
- and w6, w0, 65535
5295
- mov w7, w6
5296
- cbz w22, .L756
6364
+ and w25, w0, 65535
6365
+ mov w1, w25
6366
+ cbz w21, .L806
6367
+ str w25, [sp, 108]
52976368 bl IsBlkInVendorPart
5298
- cbnz w0, .L757
5299
-.L756:
5300
- mov w0, w7
6369
+ ldr w1, [sp, 108]
6370
+ cbnz w0, .L807
6371
+.L806:
6372
+ mov w0, w1
53016373 bl FtlBbmIsBadBlock
5302
- cbnz w0, .L757
5303
- ldr x0, [x28, 3408]
5304
- ubfiz x2, x20, 5, 16
5305
- add w6, w24, w6, lsl 10
5306
- add x0, x0, x2
5307
- str w6, [x0, 4]
5308
- ldr x1, [x28, 3408]
5309
- ldr x0, [x28, 3480]
5310
- add x1, x1, x2
6374
+ cbnz w0, .L807
6375
+ ldr x0, [x28, 3400]
6376
+ ubfiz x3, x20, 5, 16
6377
+ add w25, w23, w25, lsl 10
53116378 mov w2, 4
6379
+ add x0, x0, x3
6380
+ str w25, [x0, 4]
6381
+ ldr x1, [x28, 3400]
6382
+ ldr x0, [x28, 3472]
6383
+ add x1, x1, x3
6384
+ ldr x3, [x28, 3480]
53126385 str x0, [x1, 8]
53136386 ldrh w0, [x28, 316]
53146387 mul w0, w0, w20
53156388 add w20, w20, 1
53166389 and w20, w20, 65535
53176390 sdiv w0, w0, w2
5318
- ldr x2, [x28, 3488]
5319
- add x0, x2, x0, sxtw 2
6391
+ add x0, x3, w0, sxtw 2
53206392 str x0, [x1, 16]
5321
-.L757:
5322
- add w5, w5, 1
5323
- and w5, w5, 65535
5324
- b .L755
6393
+.L807:
6394
+ add w2, w27, 1
6395
+ and w27, w2, 65535
6396
+ b .L805
53256397 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
53266398 .align 2
53276399 .global FlashTestBlk
53286400 .type FlashTestBlk, %function
53296401 FlashTestBlk:
5330
- stp x29, x30, [sp, -160]!
5331
- adrp x1, __stack_chk_guard
5332
- add x29, sp, 0
6402
+ hint 34 // bti c
6403
+ .section __patchable_function_entries
6404
+ .align 3
6405
+ .8byte .LPFE78
6406
+ .text
6407
+.LPFE78:
6408
+ nop
6409
+ nop
6410
+ hint 25 // paciasp
6411
+ stp x29, x30, [sp, -144]!
6412
+ mov x29, sp
53336413 stp x19, x20, [sp, 16]
53346414 and w19, w0, 65535
5335
- str x21, [sp, 32]
5336
- add x0, x1, :lo12:__stack_chk_guard
6415
+ mrs x0, sp_el0
6416
+ ldr x1, [x0, 1376]
6417
+ str x1, [sp, 136]
6418
+ mov x1, 0
53376419 cmp w19, 11
5338
- mov x21, x1
5339
- ldr x2, [x0]
5340
- str x2, [x29, 152]
5341
- mov x2,0
5342
- bls .L791
6420
+ bls .L841
53436421 adrp x20, .LANCHOR0
53446422 add x20, x20, :lo12:.LANCHOR0
53456423 mov w2, 32
53466424 mov w1, 165
53476425 lsl w19, w19, 10
5348
- ldr x0, [x20, 3504]
5349
- str x0, [x29, 64]
5350
- add x0, x29, 88
5351
- str x0, [x29, 72]
6426
+ ldr x0, [x20, 3496]
6427
+ str x0, [sp, 48]
6428
+ add x0, sp, 72
6429
+ str x0, [sp, 56]
53526430 bl ftl_memset
5353
- ldr x0, [x20, 3504]
6431
+ ldr x0, [x20, 3496]
53546432 mov w2, 8
53556433 mov w1, 90
53566434 bl ftl_memset
5357
- str w19, [x29, 60]
6435
+ add x0, sp, 40
53586436 mov w2, 1
5359
- add x0, x29, 56
53606437 mov w1, w2
6438
+ str w19, [sp, 44]
53616439 bl FlashEraseBlocks
53626440 mov w3, 1
5363
- add x0, x29, 56
6441
+ add x0, sp, 40
53646442 mov w2, w3
53656443 mov w1, w3
53666444 bl FlashProgPages
5367
- ldr w0, [x29, 56]
5368
- cbnz w0, .L792
6445
+ ldr w0, [sp, 40]
6446
+ cbnz w0, .L842
53696447 add w0, w19, 1
53706448 mov w3, 1
5371
- str w0, [x29, 60]
53726449 mov w2, w3
53736450 mov w1, w3
5374
- add x0, x29, 56
6451
+ str w0, [sp, 44]
6452
+ add x0, sp, 40
53756453 bl FlashProgPages
5376
- ldr w0, [x29, 56]
6454
+ ldr w0, [sp, 40]
53776455 cmp w0, 0
53786456 csetm w20, ne
5379
-.L789:
6457
+.L839:
6458
+ add x0, sp, 40
53806459 mov w2, 1
53816460 mov w1, 0
5382
- add x0, x29, 56
5383
- str w19, [x29, 60]
6461
+ str w19, [sp, 44]
53846462 bl FlashEraseBlocks
5385
-.L787:
5386
- add x1, x21, :lo12:__stack_chk_guard
5387
- mov w0, w20
5388
- ldr x2, [x29, 152]
5389
- ldr x1, [x1]
5390
- eor x1, x2, x1
5391
- cbz x1, .L790
6463
+.L837:
6464
+ mrs x0, sp_el0
6465
+ ldr x1, [sp, 136]
6466
+ ldr x2, [x0, 1376]
6467
+ subs x1, x1, x2
6468
+ mov x2, 0
6469
+ beq .L840
53926470 bl __stack_chk_fail
5393
-.L792:
6471
+.L842:
53946472 mov w20, -1
5395
- b .L789
5396
-.L791:
6473
+ b .L839
6474
+.L841:
53976475 mov w20, 0
5398
- b .L787
5399
-.L790:
6476
+ b .L837
6477
+.L840:
6478
+ mov w0, w20
54006479 ldp x19, x20, [sp, 16]
5401
- ldr x21, [sp, 32]
5402
- ldp x29, x30, [sp], 160
6480
+ ldp x29, x30, [sp], 144
6481
+ hint 29 // autiasp
54036482 ret
54046483 .size FlashTestBlk, .-FlashTestBlk
6484
+ .section .rodata.str1.1
6485
+.LC100:
6486
+ .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n"
6487
+.LC101:
6488
+ .string "FtlBbmTblFlush error:%x\n"
6489
+.LC102:
6490
+ .string "FtlBbmTblFlush error = %x error count = %d\n"
6491
+ .text
54056492 .align 2
54066493 .global FtlBbmTblFlush
54076494 .type FtlBbmTblFlush, %function
54086495 FtlBbmTblFlush:
6496
+ hint 34 // bti c
6497
+ .section __patchable_function_entries
6498
+ .align 3
6499
+ .8byte .LPFE79
6500
+ .text
6501
+.LPFE79:
6502
+ nop
6503
+ nop
6504
+ hint 25 // paciasp
54096505 stp x29, x30, [sp, -80]!
54106506 mov w1, 0
5411
- add x29, sp, 0
6507
+ mov x29, sp
54126508 stp x19, x20, [sp, 16]
5413
- mov w19, 0
5414
- stp x25, x26, [sp, 64]
5415
- adrp x25, .LANCHOR0
5416
- add x20, x25, :lo12:.LANCHOR0
6509
+ adrp x19, .LANCHOR0
6510
+ add x19, x19, :lo12:.LANCHOR0
6511
+ mov x20, 0
54176512 stp x21, x22, [sp, 32]
6513
+ add x22, x19, 360
6514
+ ldr x2, [x19, 3512]
6515
+ str x2, [x19, 3728]
6516
+ ldrh w2, [x19, 314]
6517
+ ldr x0, [x19, 3448]
54186518 stp x23, x24, [sp, 48]
5419
- add x21, x20, 392
5420
- ldr x2, [x20, 3520]
5421
- ldr x0, [x20, 3456]
5422
- str x2, [x20, 3736]
5423
- ldrh w2, [x20, 314]
5424
- str x0, [x20, 3728]
6519
+ stp x25, x26, [sp, 64]
6520
+ str x0, [x19, 3720]
54256521 bl ftl_memset
5426
-.L795:
5427
- ldrh w0, [x20, 258]
5428
- add x1, x20, 3720
5429
- cmp w19, w0
5430
- blt .L796
5431
- ldr x26, [x1, 16]
5432
- add x19, x20, 360
6522
+.L845:
6523
+ ldrh w0, [x19, 258]
6524
+ add x1, x19, 3712
6525
+ cmp w0, w20
6526
+ bgt .L846
6527
+ ldr x21, [x1, 16]
54336528 mov w2, 16
54346529 mov w1, 255
5435
- mov x0, x26
6530
+ adrp x25, .LC100
6531
+ mov x0, x21
54366532 bl ftl_memset
54376533 mov w0, -3887
5438
- adrp x23, .LC99
5439
- strh w0, [x26]
5440
- add x25, x25, :lo12:.LANCHOR0
5441
- add x23, x23, :lo12:.LC99
5442
- mov w21, 0
5443
- ldr w0, [x19, 8]
6534
+ strh w0, [x21]
6535
+ adrp x26, .LC101
6536
+ add x20, x19, 360
6537
+ ldr w0, [x22, 8]
6538
+ add x25, x25, :lo12:.LC100
6539
+ str w0, [x21, 4]
6540
+ add x26, x26, :lo12:.LC101
6541
+ ldrh w0, [x19, 360]
6542
+ mov w24, 0
6543
+ strh w0, [x21, 2]
6544
+ ldr w0, [x22, 4]
54446545 mov w22, 0
5445
- str w0, [x26, 4]
5446
- adrp x24, .LC100
5447
- ldrh w0, [x20, 360]
5448
- strh w0, [x26, 2]
5449
- ldrh w0, [x19, 4]
5450
- strh w0, [x26, 8]
5451
- ldrh w0, [x19, 6]
5452
- strh w0, [x26, 10]
5453
- ldr w0, [x20, 232]
5454
- strh w0, [x26, 12]
5455
- ldr w0, [x20, 2676]
5456
- strh w0, [x26, 14]
5457
-.L797:
5458
- ldr x0, [x25, 3456]
5459
- str x0, [x25, 3728]
5460
- ldr x0, [x25, 3520]
5461
- str x0, [x25, 3736]
5462
- ldrh w1, [x19]
5463
- ldrh w2, [x19, 2]
5464
- ldrh w3, [x19, 4]
5465
- ldrh w4, [x26, 10]
6546
+ str w0, [x21, 8]
6547
+ ldr w0, [x19, 232]
6548
+ strh w0, [x21, 12]
6549
+ ldr w0, [x19, 2676]
6550
+ strh w0, [x21, 14]
6551
+.L847:
6552
+ ldr x0, [x19, 3448]
6553
+ str x0, [x19, 3720]
6554
+ ldr x0, [x19, 3512]
6555
+ str x0, [x19, 3728]
6556
+ ldrh w1, [x20]
6557
+ ldrh w2, [x20, 2]
6558
+ ldrh w3, [x20, 4]
6559
+ ldrh w4, [x21, 10]
54666560 orr w0, w2, w1, lsl 10
5467
- str wzr, [x25, 3720]
5468
- str w0, [x25, 3724]
5469
- mov x0, x23
6561
+ str wzr, [x19, 3712]
6562
+ str w0, [x19, 3716]
6563
+ mov x0, x25
54706564 bl sftl_printk
5471
- ldrh w0, [x25, 308]
5472
- ldrh w1, [x19, 2]
6565
+ ldrh w0, [x19, 308]
6566
+ ldrh w1, [x20, 2]
54736567 sub w0, w0, #1
54746568 cmp w1, w0
5475
- blt .L798
5476
- ldr w0, [x19, 8]
6569
+ blt .L848
6570
+ ldr w0, [x20, 8]
54776571 mov w2, 1
5478
- ldrh w1, [x19]
6572
+ strh wzr, [x20, 2]
54796573 add w0, w0, 1
5480
- str w0, [x19, 8]
5481
- str w0, [x26, 4]
5482
- strh w1, [x26, 8]
5483
- ldrh w0, [x19, 4]
5484
- strh w1, [x19, 4]
5485
- ldr x1, [x25, 3408]
5486
- strh w0, [x19]
5487
- lsl w0, w0, 10
5488
- str w0, [x25, 3724]
5489
- strh wzr, [x19, 2]
5490
- str w0, [x1, 4]
6574
+ str w0, [x20, 8]
6575
+ str w0, [x21, 4]
6576
+ ldrh w0, [x20]
6577
+ ldrh w1, [x20, 4]
6578
+ strh w0, [x20, 4]
6579
+ strh w0, [x21, 8]
6580
+ ldr x0, [x19, 3400]
6581
+ strh w1, [x20]
6582
+ lsl w1, w1, 10
6583
+ str w1, [x19, 3716]
6584
+ str w1, [x0, 4]
54916585 mov w1, w2
5492
- ldr x0, [x25, 3408]
6586
+ ldr x0, [x19, 3400]
54936587 bl FlashEraseBlocks
5494
-.L798:
5495
- add x20, x25, 3720
6588
+.L848:
6589
+ add x23, x19, 3712
54966590 mov w3, 1
5497
- mov x0, x20
6591
+ mov x0, x23
54986592 mov w2, w3
54996593 mov w1, w3
55006594 bl FlashProgPages
5501
- ldrh w0, [x19, 2]
6595
+ ldrh w0, [x20, 2]
55026596 add w0, w0, 1
5503
- strh w0, [x19, 2]
5504
- ldr w0, [x25, 3720]
6597
+ strh w0, [x20, 2]
6598
+ ldr w0, [x19, 3712]
55056599 cmn w0, #1
5506
- bne .L799
5507
- ldr w1, [x25, 3724]
5508
- add w21, w21, 1
5509
- add x0, x24, :lo12:.LC100
5510
- and w21, w21, 65535
5511
- bl sftl_printk
5512
- cmp w21, 3
5513
- bls .L797
5514
- ldr w1, [x25, 3724]
5515
- adrp x0, .LC101
5516
- mov w2, w21
5517
- add x0, x0, :lo12:.LC101
5518
- bl sftl_printk
5519
-.L801:
5520
- b .L801
5521
-.L796:
5522
- ldrh w2, [x20, 3632]
5523
- ldr x0, [x1, 8]
5524
- ldr x1, [x21], 8
5525
- mul w3, w19, w2
5526
- lsl w2, w2, 2
5527
- add w19, w19, 1
5528
- add x0, x0, x3, sxtw 2
5529
- bl ftl_memcpy
5530
- b .L795
5531
-.L802:
5532
- mov w22, 1
5533
- b .L797
5534
-.L799:
6600
+ bne .L849
6601
+ ldr w1, [x19, 3716]
55356602 add w22, w22, 1
5536
- cmp w22, 1
5537
- ble .L802
6603
+ and w22, w22, 65535
6604
+ mov x0, x26
6605
+ bl sftl_printk
6606
+ cmp w22, 3
6607
+ bls .L847
6608
+ ldr w1, [x19, 3716]
6609
+ adrp x0, .LC102
6610
+ mov w2, w22
6611
+ add x0, x0, :lo12:.LC102
6612
+ bl sftl_printk
6613
+.L851:
6614
+ b .L851
6615
+.L846:
6616
+ ldrh w2, [x19, 3624]
6617
+ add x4, x22, x20, lsl 3
6618
+ ldr x0, [x1, 8]
6619
+ ldr x1, [x4, 32]
6620
+ mul w3, w2, w20
6621
+ lsl w2, w2, 2
6622
+ add x20, x20, 1
6623
+ add x0, x0, w3, sxtw 2
6624
+ bl ftl_memcpy
6625
+ b .L845
6626
+.L849:
6627
+ add w24, w24, 1
6628
+ cmp w24, 1
6629
+ ble .L847
55386630 cmp w0, 256
5539
- beq .L797
6631
+ beq .L847
55406632 mov w0, 0
55416633 ldp x19, x20, [sp, 16]
55426634 ldp x21, x22, [sp, 32]
55436635 ldp x23, x24, [sp, 48]
55446636 ldp x25, x26, [sp, 64]
55456637 ldp x29, x30, [sp], 80
6638
+ hint 29 // autiasp
55466639 ret
55476640 .size FtlBbmTblFlush, .-FtlBbmTblFlush
55486641 .align 2
55496642 .global allocate_data_superblock
55506643 .type allocate_data_superblock, %function
55516644 allocate_data_superblock:
6645
+ hint 34 // bti c
6646
+ .section __patchable_function_entries
6647
+ .align 3
6648
+ .8byte .LPFE80
6649
+ .text
6650
+.LPFE80:
6651
+ nop
6652
+ nop
6653
+ hint 25 // paciasp
55526654 stp x29, x30, [sp, -112]!
5553
- add x29, sp, 0
5554
- stp x21, x22, [sp, 32]
5555
- adrp x21, .LANCHOR0
5556
- add x22, x21, :lo12:.LANCHOR0
6655
+ mov x29, sp
55576656 stp x19, x20, [sp, 16]
5558
- stp x23, x24, [sp, 48]
6657
+ adrp x19, .LANCHOR0
6658
+ add x19, x19, :lo12:.LANCHOR0
55596659 mov x20, x0
5560
- mov x19, x22
5561
- add x23, x22, 128
6660
+ stp x23, x24, [sp, 48]
6661
+ adrp x23, .LANCHOR1
6662
+ add x23, x23, :lo12:.LANCHOR1
55626663 stp x25, x26, [sp, 64]
6664
+ add x25, x19, 128
6665
+ stp x21, x22, [sp, 32]
55636666 stp x27, x28, [sp, 80]
5564
-.L808:
5565
- ldrh w1, [x22, 2584]
5566
- ldrh w0, [x22, 228]
5567
- add w0, w0, w1
5568
- ldrh w1, [x22, 244]
5569
- cmp w0, w1
5570
- ble .L809
5571
- adrp x1, .LANCHOR1
5572
- add x1, x1, :lo12:.LANCHOR1
5573
- adrp x0, .LC8
5574
- mov w2, 2667
5575
- add x1, x1, 336
5576
- add x0, x0, :lo12:.LC8
5577
- bl sftl_printk
5578
-.L809:
5579
- cmp x20, x23
5580
- bne .L835
6667
+.L857:
6668
+ ldrh w1, [x19, 2584]
55816669 ldrh w0, [x19, 228]
5582
- ldr w1, [x19, 3236]
5583
- mul w1, w0, w1
5584
- lsr w0, w0, 1
5585
- add w0, w0, 1
5586
- add w1, w0, w1, lsr 2
5587
- ands w1, w1, 65535
5588
- beq .L810
5589
- sub w1, w1, #1
5590
- and w1, w1, 65535
5591
-.L810:
6670
+ add w0, w0, w1
6671
+ ldrh w1, [x19, 244]
6672
+ cmp w0, w1
6673
+ ble .L858
6674
+ adrp x0, .LC9
6675
+ add x1, x23, 271
6676
+ add x0, x0, :lo12:.LC9
6677
+ mov w2, 2667
6678
+ bl sftl_printk
6679
+.L858:
6680
+ cmp x20, x25
6681
+ bne .L883
6682
+ ldrh w1, [x19, 228]
6683
+ mov w2, 65535
6684
+ ldr w0, [x19, 3236]
6685
+ mul w0, w1, w0
6686
+ lsr w1, w1, 1
6687
+ add w0, w1, w0, lsr 2
6688
+ and w1, w0, 65535
6689
+ cmp w2, w0, uxth
6690
+ csel w1, w1, wzr, ne
6691
+.L859:
55926692 add x0, x19, 2592
55936693 bl List_pop_index_node
5594
- and w26, w0, 65535
6694
+ and w22, w0, 65535
55956695 ldrh w0, [x19, 228]
5596
- cbnz w0, .L811
5597
- adrp x1, .LANCHOR1
5598
- add x1, x1, :lo12:.LANCHOR1
5599
- adrp x0, .LC8
6696
+ cbnz w0, .L860
6697
+ adrp x0, .LC9
6698
+ add x1, x23, 271
6699
+ add x0, x0, :lo12:.LC9
56006700 mov w2, 2676
5601
- add x1, x1, 336
5602
- add x0, x0, :lo12:.LC8
56036701 bl sftl_printk
5604
-.L811:
6702
+.L860:
56056703 ldrh w0, [x19, 228]
56066704 sub w0, w0, #1
56076705 strh w0, [x19, 228]
56086706 ldrh w0, [x19, 244]
5609
- cmp w0, w26
5610
- bls .L808
6707
+ cmp w0, w22
6708
+ bls .L857
56116709 ldr x0, [x19, 72]
5612
- ubfiz x25, x26, 1, 16
5613
- ldrh w24, [x0, x25]
5614
- cbnz w24, .L808
5615
- strh w26, [x20]
6710
+ ubfiz x24, x22, 1, 16
6711
+ ldrh w21, [x0, x24]
6712
+ cbnz w21, .L857
6713
+ strh w22, [x20]
56166714 mov x0, x20
56176715 bl make_superblock
56186716 ldrb w0, [x20, 7]
5619
- cbnz w0, .L813
6717
+ cbnz w0, .L862
56206718 ldr x0, [x19, 72]
56216719 mov w1, -1
5622
- strh w1, [x0, x25]
5623
- mov w0, w26
6720
+ strh w1, [x0, x24]
6721
+ mov w0, w22
56246722 bl INSERT_DATA_LIST
56256723 ldrh w1, [x19, 2584]
56266724 ldrh w0, [x19, 228]
56276725 add w0, w0, w1
56286726 ldrh w1, [x19, 244]
56296727 cmp w0, w1
5630
- ble .L808
5631
- adrp x1, .LANCHOR1
5632
- add x1, x1, :lo12:.LANCHOR1
6728
+ ble .L857
6729
+ add x1, x23, 271
56336730 mov w2, 2690
5634
- add x1, x1, 336
5635
- adrp x0, .LC8
5636
- add x0, x0, :lo12:.LC8
6731
+ adrp x0, .LC9
6732
+ add x0, x0, :lo12:.LC9
56376733 bl sftl_printk
5638
- b .L808
5639
-.L835:
6734
+ b .L857
6735
+.L883:
56406736 mov w1, 0
5641
- b .L810
5642
-.L813:
6737
+ b .L859
6738
+.L862:
56436739 ldrh w1, [x19, 2584]
56446740 ldrh w0, [x19, 228]
56456741 add w0, w0, w1
56466742 ldrh w1, [x19, 244]
56476743 cmp w0, w1
5648
- ble .L815
5649
- adrp x1, .LANCHOR1
5650
- add x1, x1, :lo12:.LANCHOR1
5651
- adrp x0, .LC8
6744
+ ble .L864
6745
+ adrp x0, .LC9
6746
+ add x1, x23, 271
6747
+ add x0, x0, :lo12:.LC9
56526748 mov w2, 2693
5653
- add x1, x1, 336
5654
- add x0, x0, :lo12:.LC8
56556749 bl sftl_printk
5656
-.L815:
5657
- add x27, x20, 16
5658
- ldrh w4, [x19, 236]
5659
- mov x3, x27
6750
+.L864:
6751
+ ldrh w3, [x19, 236]
6752
+ add x4, x20, 16
56606753 mov x0, 0
56616754 mov w5, 65535
5662
-.L816:
5663
- cmp w4, w0, uxth
5664
- bhi .L818
5665
- cbnz w24, .L819
5666
- adrp x1, .LANCHOR1
5667
- add x1, x1, :lo12:.LANCHOR1
5668
- adrp x0, .LC8
6755
+.L865:
6756
+ cmp w3, w0, uxth
6757
+ bhi .L867
6758
+ cbnz w21, .L868
6759
+ adrp x0, .LC9
6760
+ add x1, x23, 271
6761
+ add x0, x0, :lo12:.LC9
56696762 mov w2, 2704
5670
- add x1, x1, 336
5671
- add x0, x0, :lo12:.LC8
56726763 bl sftl_printk
5673
-.L819:
6764
+.L868:
56746765 ldrh w0, [x19, 176]
5675
- cmp w0, w26
5676
- bne .L820
5677
- adrp x1, .LANCHOR1
5678
- add x1, x1, :lo12:.LANCHOR1
5679
- adrp x0, .LC8
6766
+ cmp w0, w22
6767
+ bne .L869
6768
+ adrp x0, .LC9
6769
+ add x1, x23, 271
6770
+ add x0, x0, :lo12:.LC9
56806771 mov w2, 2706
5681
- add x1, x1, 336
5682
- add x0, x0, :lo12:.LC8
56836772 bl sftl_printk
5684
-.L820:
5685
- ldrb w0, [x20, 8]
5686
- ldr x1, [x19, 2600]
5687
- cbnz w0, .L821
5688
- ldrh w0, [x1, x25]
5689
- cbz w0, .L822
6773
+.L869:
6774
+ ldrb w2, [x20, 8]
6775
+ ldr x0, [x19, 2600]
6776
+ ldrh w1, [x0, x24]
6777
+ cbnz w2, .L870
6778
+ cbz w1, .L884
56906779 ldrh w2, [x19, 296]
5691
- add w0, w0, w2
5692
-.L843:
5693
- strh w0, [x1, x25]
6780
+ add w1, w1, w2
6781
+ and w1, w1, 65535
6782
+.L871:
6783
+ strh w1, [x0, x24]
56946784 ldr w0, [x19, 2668]
56956785 add w0, w0, 1
56966786 str w0, [x19, 2668]
5697
-.L824:
6787
+.L872:
56986788 ldr x0, [x19, 2600]
56996789 ldr w1, [x19, 2684]
5700
- ldrh w0, [x0, x25]
6790
+ ldrh w0, [x0, x24]
57016791 cmp w0, w1
5702
- bls .L825
6792
+ bls .L873
57036793 str w0, [x19, 2684]
5704
-.L825:
6794
+.L873:
57056795 ldr w1, [x19, 2672]
5706
- ubfiz x3, x24, 5, 16
57076796 ldrh w0, [x19, 296]
57086797 ldr w2, [x19, 2668]
57096798 madd w0, w0, w2, w1
57106799 ldrh w1, [x19, 244]
57116800 udiv w0, w0, w1
5712
- ldr x1, [x19, 3552]
6801
+ ldr x1, [x19, 3544]
57136802 str w0, [x19, 2676]
57146803 ldr w0, [x1, 16]
57156804 add w0, w0, 1
57166805 str w0, [x1, 16]
5717
- mov x0, 0
5718
-.L826:
5719
- cmp x3, x0
5720
- bne .L827
6806
+ mov x1, 0
6807
+.L874:
6808
+ ldr x0, [x19, 3400]
6809
+ cmp w21, w1, uxth
6810
+ bhi .L875
57216811 ldrb w1, [x20, 8]
5722
- mov w2, w24
5723
- ldr x0, [x19, 3408]
5724
- mov x28, 0
6812
+ mov w2, w21
6813
+ mov x26, 0
6814
+ mov w27, 0
57256815 bl FlashEraseBlocks
5726
- mov w1, 0
5727
-.L828:
5728
- cmp w24, w28, uxth
5729
- bhi .L830
5730
- cmp w1, 0
5731
- ble .L831
5732
- mov w0, w26
6816
+ add x2, x20, 16
6817
+.L876:
6818
+ cmp w21, w26, uxth
6819
+ bhi .L878
6820
+ cmp w27, 0
6821
+ ble .L879
6822
+ mov w0, w22
57336823 bl update_multiplier_value
57346824 bl FtlBbmTblFlush
5735
-.L831:
6825
+.L879:
57366826 ldrb w0, [x20, 7]
5737
- cbnz w0, .L832
6827
+ cbnz w0, .L880
57386828 ldr x0, [x19, 72]
57396829 mov w1, -1
5740
- strh w1, [x0, x25]
5741
- b .L808
5742
-.L818:
5743
- ldr x1, [x19, 3408]
6830
+ strh w1, [x0, x24]
6831
+ b .L857
6832
+.L867:
6833
+ ldr x1, [x19, 3400]
57446834 add x2, x1, x0, lsl 5
57456835 stp xzr, xzr, [x2, 8]
5746
- ldrh w2, [x3]
6836
+ ldrh w2, [x4, x0, lsl 1]
57476837 cmp w2, w5
5748
- beq .L817
5749
- ubfiz x6, x24, 5, 16
5750
- add w24, w24, 1
6838
+ beq .L866
6839
+ ubfiz x6, x21, 5, 16
6840
+ add w21, w21, 1
57516841 add x1, x1, x6
5752
- and w24, w24, 65535
6842
+ and w21, w21, 65535
57536843 lsl w2, w2, 10
57546844 str w2, [x1, 4]
5755
-.L817:
6845
+.L866:
57566846 add x0, x0, 1
5757
- add x3, x3, 2
5758
- b .L816
5759
-.L822:
5760
- mov w0, 2
5761
- b .L843
5762
-.L821:
5763
- ldrh w0, [x1, x25]
5764
- add w0, w0, 1
5765
- strh w0, [x1, x25]
6847
+ b .L865
6848
+.L884:
6849
+ mov w1, 2
6850
+ b .L871
6851
+.L870:
6852
+ add w1, w1, 1
6853
+ strh w1, [x0, x24]
57666854 ldr w0, [x19, 2672]
57676855 add w0, w0, 1
57686856 str w0, [x19, 2672]
5769
- b .L824
5770
-.L827:
5771
- ldr x1, [x19, 3408]
5772
- add x1, x1, x0
5773
- add x0, x0, 32
5774
- ldr w2, [x1, 4]
6857
+ b .L872
6858
+.L875:
6859
+ add x0, x0, x1, lsl 5
6860
+ add x1, x1, 1
6861
+ ldr w2, [x0, 4]
57756862 and w2, w2, -1024
5776
- str w2, [x1, 4]
5777
- b .L826
5778
-.L830:
5779
- ldr x2, [x19, 3408]
5780
- lsl x0, x28, 5
5781
- add x3, x2, x0
5782
- ldr w2, [x2, x0]
5783
- cmn w2, #1
5784
- bne .L829
5785
- add w1, w1, 1
6863
+ str w2, [x0, 4]
6864
+ b .L874
6865
+.L878:
6866
+ ldr x1, [x19, 3400]
6867
+ lsl x0, x26, 5
6868
+ ldr w28, [x1, x0]
6869
+ add x3, x1, x26, lsl 5
6870
+ cmn w28, #1
6871
+ bne .L877
57866872 ldr w0, [x3, 4]
5787
- stp w2, w1, [x29, 104]
5788
- lsr w0, w0, 10
6873
+ add w27, w27, 1
6874
+ str x2, [sp, 104]
6875
+ ubfx x0, x0, 10, 16
57896876 bl FtlBbmMapBadBlock
5790
- ldp w2, w1, [x29, 104]
5791
- strh w2, [x27]
6877
+ ldr x2, [sp, 104]
6878
+ strh w28, [x2, x26, lsl 1]
57926879 ldrb w0, [x20, 7]
57936880 sub w0, w0, #1
57946881 strb w0, [x20, 7]
5795
-.L829:
5796
- add x28, x28, 1
5797
- add x27, x27, 2
5798
- b .L828
5799
-.L832:
5800
- add x21, x21, :lo12:.LANCHOR0
6882
+.L877:
6883
+ add x26, x26, 1
6884
+ b .L876
6885
+.L880:
6886
+ ldrh w1, [x19, 306]
6887
+ strh w22, [x20]
58016888 strh wzr, [x20, 2]
58026889 strb wzr, [x20, 6]
5803
- ldrh w1, [x21, 306]
5804
- strh w26, [x20]
58056890 mul w0, w0, w1
5806
- ldr w1, [x21, 2660]
6891
+ ldr w1, [x19, 2660]
58076892 str w1, [x20, 12]
58086893 and w0, w0, 65535
58096894 add w1, w1, 1
58106895 strh w0, [x20, 4]
5811
- str w1, [x21, 2660]
5812
- ldr x1, [x21, 72]
6896
+ str w1, [x19, 2660]
6897
+ ldr x1, [x19, 72]
58136898 ldrh w2, [x20]
58146899 strh w0, [x1, x2, lsl 1]
58156900 ldrh w0, [x20, 4]
5816
- cbz w0, .L833
6901
+ cbz w0, .L881
58176902 ldrb w0, [x20, 7]
5818
- cbnz w0, .L834
5819
-.L833:
6903
+ cbnz w0, .L882
6904
+.L881:
58206905 adrp x1, .LANCHOR1
58216906 add x1, x1, :lo12:.LANCHOR1
5822
- adrp x0, .LC8
6907
+ adrp x0, .LC9
6908
+ add x1, x1, 271
6909
+ add x0, x0, :lo12:.LC9
58236910 mov w2, 2759
5824
- add x1, x1, 336
5825
- add x0, x0, :lo12:.LC8
58266911 bl sftl_printk
5827
-.L834:
5828
- ldp x19, x20, [sp, 16]
6912
+.L882:
58296913 mov w0, 0
6914
+ ldp x19, x20, [sp, 16]
58306915 ldp x21, x22, [sp, 32]
58316916 ldp x23, x24, [sp, 48]
58326917 ldp x25, x26, [sp, 64]
58336918 ldp x27, x28, [sp, 80]
58346919 ldp x29, x30, [sp], 112
6920
+ hint 29 // autiasp
58356921 ret
58366922 .size allocate_data_superblock, .-allocate_data_superblock
6923
+ .section .rodata.str1.1
6924
+.LC103:
6925
+ .string "FtlGcFreeBadSuperBlk 0x%x\n"
6926
+ .text
58376927 .align 2
58386928 .global FtlGcFreeBadSuperBlk
58396929 .type FtlGcFreeBadSuperBlk, %function
58406930 FtlGcFreeBadSuperBlk:
6931
+ hint 34 // bti c
6932
+ .section __patchable_function_entries
6933
+ .align 3
6934
+ .8byte .LPFE81
6935
+ .text
6936
+.LPFE81:
6937
+ nop
6938
+ nop
6939
+ hint 25 // paciasp
58416940 stp x29, x30, [sp, -96]!
5842
- add x29, sp, 0
6941
+ mov x29, sp
58436942 stp x19, x20, [sp, 16]
58446943 adrp x19, .LANCHOR0
58456944 add x19, x19, :lo12:.LANCHOR0
5846
- stp x21, x22, [sp, 32]
5847
- and w22, w0, 65535
5848
- stp x23, x24, [sp, 48]
58496945 stp x25, x26, [sp, 64]
6946
+ and w25, w0, 65535
58506947 ldrh w0, [x19, 3312]
6948
+ stp x21, x22, [sp, 32]
6949
+ stp x23, x24, [sp, 48]
58516950 str x27, [sp, 80]
5852
- cbz w0, .L845
5853
- add x23, x19, 264
5854
- add x24, x19, 3320
5855
- mov w21, 0
5856
-.L846:
5857
- ldrh w0, [x19, 236]
5858
- cmp w0, w21
5859
- bhi .L852
5860
- bl FtlGcReFreshBadBlk
5861
-.L845:
6951
+ cbnz w0, .L896
6952
+.L891:
58626953 mov w0, 0
5863
- ldr x27, [sp, 80]
58646954 ldp x19, x20, [sp, 16]
58656955 ldp x21, x22, [sp, 32]
58666956 ldp x23, x24, [sp, 48]
58676957 ldp x25, x26, [sp, 64]
6958
+ ldr x27, [sp, 80]
58686959 ldp x29, x30, [sp], 96
6960
+ hint 29 // autiasp
58696961 ret
5870
-.L852:
5871
- ldrb w0, [x23, w21, sxtw]
5872
- mov w1, w22
5873
- adrp x26, .LC102
5874
- add x26, x26, :lo12:.LC102
6962
+.L895:
6963
+ add x0, x19, 264
6964
+ mov w1, w25
58756965 mov w20, 0
6966
+ ldrb w0, [x0, w21, sxtw]
58766967 bl V2P_block
5877
- and w25, w0, 65535
5878
-.L847:
6968
+ and w22, w0, 65535
6969
+.L892:
58796970 ldrh w0, [x19, 3312]
58806971 cmp w0, w20
5881
- bhi .L851
6972
+ bhi .L894
58826973 add w21, w21, 1
58836974 and w21, w21, 65535
5884
- b .L846
5885
-.L851:
6975
+.L890:
6976
+ ldrh w0, [x19, 236]
6977
+ cmp w0, w21
6978
+ bhi .L895
6979
+ bl FtlGcReFreshBadBlk
6980
+ b .L891
6981
+.L894:
58866982 ldrh w0, [x24, w20, sxtw 1]
58876983 add w27, w20, 1
5888
- cmp w0, w25
5889
- bne .L848
5890
- mov w1, w25
6984
+ cmp w0, w22
6985
+ bne .L893
6986
+ mov w1, w22
58916987 mov x0, x26
58926988 bl sftl_printk
5893
- mov w0, w25
6989
+ mov w0, w22
58946990 bl FtlBbmMapBadBlock
58956991 bl FtlBbmTblFlush
5896
- ldrh w0, [x19, 3312]
5897
- mov w1, w27
5898
-.L849:
5899
- cmp w20, w0
5900
- bcc .L850
5901
- sub w0, w0, #1
5902
- strh w0, [x19, 3312]
5903
-.L848:
6992
+ ldrh w23, [x19, 3312]
6993
+ add x1, x24, w27, sxtw 1
6994
+ add x0, x24, w20, uxth 1
6995
+ cmp w20, w23
6996
+ sub w2, w23, w20
6997
+ sub w23, w23, #1
6998
+ ubfiz x2, x2, 1, 16
6999
+ csel x2, x2, xzr, ls
7000
+ bl memmove
7001
+ strh w23, [x19, 3312]
7002
+.L893:
59047003 and w20, w27, 65535
5905
- b .L847
5906
-.L850:
5907
- sub w2, w1, #1
5908
- ldrh w3, [x24, w1, sxtw 1]
5909
- add w20, w20, 1
5910
- add w1, w1, 1
5911
- and w20, w20, 65535
5912
- strh w3, [x24, w2, sxtw 1]
5913
- b .L849
7004
+ b .L892
7005
+.L896:
7006
+ adrp x26, .LC103
7007
+ add x24, x19, 3314
7008
+ add x26, x26, :lo12:.LC103
7009
+ mov w21, 0
7010
+ b .L890
59147011 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
59157012 .align 2
59167013 .global update_vpc_list
59177014 .type update_vpc_list, %function
59187015 update_vpc_list:
5919
- stp x29, x30, [sp, -48]!
5920
- add x29, sp, 0
7016
+ hint 34 // bti c
7017
+ .section __patchable_function_entries
7018
+ .align 3
7019
+ .8byte .LPFE82
7020
+ .text
7021
+.LPFE82:
7022
+ nop
7023
+ nop
7024
+ hint 25 // paciasp
7025
+ stp x29, x30, [sp, -32]!
7026
+ mov x29, sp
59217027 stp x19, x20, [sp, 16]
5922
- and w20, w0, 65535
59237028 adrp x19, .LANCHOR0
5924
- add x0, x19, :lo12:.LANCHOR0
5925
- str x21, [sp, 32]
5926
- ubfiz x1, x20, 1, 16
5927
- ldr x2, [x0, 72]
5928
- ldrh w1, [x2, x1]
5929
- cbnz w1, .L858
5930
- ldrh w1, [x0, 226]
5931
- cmp w1, w20
5932
- bne .L859
5933
- mov w1, -1
5934
- strh w1, [x0, 226]
5935
-.L859:
5936
- add x0, x19, :lo12:.LANCHOR0
5937
- ldrh w1, [x0, 224]
5938
- cmp w1, w20
5939
- bne .L860
5940
- mov w1, -1
5941
- strh w1, [x0, 224]
5942
-.L860:
5943
- add x0, x19, :lo12:.LANCHOR0
5944
- ldrh w1, [x0, 176]
5945
- cmp w1, w20
5946
- bne .L861
5947
- mov w1, -1
5948
- strh w1, [x0, 176]
5949
-.L862:
5950
- add x21, x19, :lo12:.LANCHOR0
7029
+ add x19, x19, :lo12:.LANCHOR0
7030
+ and w20, w0, 65535
7031
+ ubfiz x0, x0, 1, 16
7032
+ ldr x1, [x19, 72]
7033
+ ldrh w0, [x1, x0]
7034
+ cbnz w0, .L899
7035
+ ldrh w0, [x19, 226]
7036
+ cmp w0, w20
7037
+ bne .L900
7038
+ mov w0, -1
7039
+ strh w0, [x19, 226]
7040
+.L900:
7041
+ ldrh w0, [x19, 224]
7042
+ cmp w0, w20
7043
+ bne .L901
7044
+ mov w0, -1
7045
+ strh w0, [x19, 224]
7046
+.L901:
7047
+ ldrh w0, [x19, 176]
7048
+ cmp w0, w20
7049
+ bne .L902
7050
+ mov w0, -1
7051
+ strh w0, [x19, 176]
7052
+.L903:
59517053 mov w1, w20
5952
- add x0, x21, 2568
7054
+ add x0, x19, 2568
59537055 bl List_remove_node
5954
- ldrh w0, [x21, 2584]
5955
- cbnz w0, .L864
7056
+ ldrh w0, [x19, 2584]
7057
+ cbnz w0, .L905
59567058 adrp x1, .LANCHOR1
59577059 add x1, x1, :lo12:.LANCHOR1
5958
- adrp x0, .LC8
7060
+ adrp x0, .LC9
7061
+ add x1, x1, 296
7062
+ add x0, x0, :lo12:.LC9
59597063 mov w2, 2835
5960
- add x1, x1, 368
5961
- add x0, x0, :lo12:.LC8
59627064 bl sftl_printk
5963
-.L864:
5964
- add x19, x19, :lo12:.LANCHOR0
7065
+.L905:
59657066 ldrh w0, [x19, 2584]
59667067 sub w0, w0, #1
59677068 strh w0, [x19, 2584]
....@@ -5974,333 +7075,356 @@
59747075 add w0, w0, w1
59757076 ldrh w1, [x19, 244]
59767077 cmp w0, w1
5977
- ble .L868
7078
+ ble .L909
59787079 adrp x1, .LANCHOR1
59797080 add x1, x1, :lo12:.LANCHOR1
5980
- adrp x0, .LC8
7081
+ adrp x0, .LC9
7082
+ add x1, x1, 296
7083
+ add x0, x0, :lo12:.LC9
59817084 mov w2, 2838
5982
- add x1, x1, 368
5983
- add x0, x0, :lo12:.LC8
59847085 bl sftl_printk
5985
-.L868:
7086
+.L909:
59867087 mov w0, 1
5987
- b .L857
5988
-.L861:
5989
- ldrh w1, [x0, 24]
5990
- cmp w1, w20
5991
- beq .L867
5992
- ldrh w1, [x0, 80]
5993
- cmp w1, w20
5994
- beq .L867
5995
- ldrh w0, [x0, 128]
7088
+ b .L898
7089
+.L902:
7090
+ ldrh w0, [x19, 24]
59967091 cmp w0, w20
5997
- bne .L862
5998
-.L867:
7092
+ beq .L908
7093
+ ldrh w0, [x19, 80]
7094
+ cmp w0, w20
7095
+ beq .L908
7096
+ ldrh w0, [x19, 128]
7097
+ cmp w0, w20
7098
+ bne .L903
7099
+.L908:
59997100 mov w0, 0
6000
-.L857:
7101
+.L898:
60017102 ldp x19, x20, [sp, 16]
6002
- ldr x21, [sp, 32]
6003
- ldp x29, x30, [sp], 48
7103
+ ldp x29, x30, [sp], 32
7104
+ hint 29 // autiasp
60047105 ret
6005
-.L858:
7106
+.L899:
60067107 mov w0, w20
60077108 bl List_update_data_list
6008
- b .L867
7109
+ b .L908
60097110 .size update_vpc_list, .-update_vpc_list
7111
+ .section .rodata.str1.1
7112
+.LC104:
7113
+ .string "decrement_vpc_count %x = %d\n"
7114
+ .text
60107115 .align 2
60117116 .global decrement_vpc_count
60127117 .type decrement_vpc_count, %function
60137118 decrement_vpc_count:
7119
+ hint 34 // bti c
7120
+ .section __patchable_function_entries
7121
+ .align 3
7122
+ .8byte .LPFE83
7123
+ .text
7124
+.LPFE83:
7125
+ nop
7126
+ nop
7127
+ hint 25 // paciasp
60147128 stp x29, x30, [sp, -48]!
6015
- add x29, sp, 0
7129
+ mov w1, 65535
7130
+ mov x29, sp
60167131 stp x19, x20, [sp, 16]
6017
- and w20, w0, 65535
6018
- stp x21, x22, [sp, 32]
6019
- mov w0, 65535
7132
+ cmp w1, w0, uxth
60207133 adrp x19, .LANCHOR0
6021
- cmp w20, w0
6022
- beq .L871
6023
- add x22, x19, :lo12:.LANCHOR0
7134
+ str x21, [sp, 32]
7135
+ and w20, w0, 65535
7136
+ add x19, x19, :lo12:.LANCHOR0
7137
+ beq .L912
7138
+ ldr x1, [x19, 72]
60247139 ubfiz x21, x20, 1, 16
6025
- ldr x1, [x22, 72]
60267140 ldrh w0, [x1, x21]
6027
- cbnz w0, .L872
6028
- mov w2, 0
7141
+ cbnz w0, .L913
60297142 mov w1, w20
6030
- adrp x0, .LC103
6031
- add x0, x0, :lo12:.LC103
7143
+ mov w2, 0
7144
+ adrp x0, .LC104
7145
+ add x0, x0, :lo12:.LC104
60327146 bl sftl_printk
6033
- ldr x0, [x22, 72]
7147
+ ldr x0, [x19, 72]
60347148 ldrh w0, [x0, x21]
6035
- cbz w0, .L873
6036
-.L878:
7149
+ cbz w0, .L914
7150
+.L919:
60377151 mov w21, 0
6038
-.L870:
7152
+.L911:
60397153 mov w0, w21
60407154 ldp x19, x20, [sp, 16]
6041
- ldp x21, x22, [sp, 32]
7155
+ ldr x21, [sp, 32]
60427156 ldp x29, x30, [sp], 48
7157
+ hint 29 // autiasp
60437158 ret
6044
-.L873:
7159
+.L914:
60457160 adrp x1, .LANCHOR1
60467161 add x1, x1, :lo12:.LANCHOR1
7162
+ add x1, x1, 312
60477163 mov w2, 2853
6048
- add x1, x1, 384
6049
- adrp x0, .LC8
6050
- add x0, x0, :lo12:.LC8
7164
+ adrp x0, .LC9
7165
+ add x0, x0, :lo12:.LC9
60517166 bl sftl_printk
6052
- b .L878
6053
-.L872:
7167
+ b .L919
7168
+.L913:
60547169 sub w0, w0, #1
60557170 strh w0, [x1, x21]
6056
-.L871:
6057
- add x19, x19, :lo12:.LANCHOR0
7171
+.L912:
7172
+ ldrh w0, [x19, 3698]
60587173 mov w1, 65535
6059
- ldrh w0, [x19, 3706]
60607174 cmp w0, w1
6061
- bne .L875
6062
- strh w20, [x19, 3706]
6063
- b .L878
6064
-.L875:
6065
- cmp w20, w0
6066
- beq .L878
7175
+ bne .L916
7176
+ strh w20, [x19, 3698]
7177
+ b .L919
7178
+.L916:
7179
+ cmp w0, w20
7180
+ beq .L919
60677181 bl update_vpc_list
60687182 cmp w0, 0
60697183 ldr x1, [x19, 2560]
6070
- cset w21, ne
7184
+ strh w20, [x19, 3698]
60717185 ldr x0, [x19, 2568]
6072
- strh w20, [x19, 3706]
7186
+ cset w21, ne
60737187 sub x0, x0, x1
60747188 mov x1, -6148914691236517206
6075
- asr x0, x0, 1
60767189 movk x1, 0xaaab, lsl 0
7190
+ asr x0, x0, 1
60777191 mul x0, x0, x1
60787192 ldr x1, [x19, 72]
60797193 and x2, x0, 65535
60807194 ldrh w1, [x1, x2, lsl 1]
6081
- cbnz w1, .L870
7195
+ cbnz w1, .L911
60827196 cmp w20, w0, uxth
6083
- beq .L870
7197
+ beq .L911
60847198 adrp x1, .LANCHOR1
60857199 add x1, x1, :lo12:.LANCHOR1
7200
+ add x1, x1, 312
60867201 mov w2, 2869
6087
- add x1, x1, 384
6088
- adrp x0, .LC8
6089
- add x0, x0, :lo12:.LC8
7202
+ adrp x0, .LC9
7203
+ add x0, x0, :lo12:.LC9
60907204 bl sftl_printk
6091
- b .L870
7205
+ b .L911
60927206 .size decrement_vpc_count, .-decrement_vpc_count
60937207 .align 2
60947208 .global FtlSuperblockPowerLostFix
60957209 .type FtlSuperblockPowerLostFix, %function
60967210 FtlSuperblockPowerLostFix:
6097
- stp x29, x30, [sp, -112]!
6098
- mov w2, 61589
6099
- add x29, sp, 0
7211
+ hint 34 // bti c
7212
+ .section __patchable_function_entries
7213
+ .align 3
7214
+ .8byte .LPFE84
7215
+ .text
7216
+.LPFE84:
7217
+ nop
7218
+ nop
7219
+ hint 25 // paciasp
7220
+ stp x29, x30, [sp, -96]!
7221
+ mov x29, sp
61007222 stp x19, x20, [sp, 16]
6101
- mov x19, x0
7223
+ adrp x20, .LANCHOR0
7224
+ add x20, x20, :lo12:.LANCHOR0
61027225 stp x21, x22, [sp, 32]
6103
- adrp x21, .LANCHOR0
6104
- stp x23, x24, [sp, 48]
6105
- adrp x23, __stack_chk_guard
6106
- add x0, x23, :lo12:__stack_chk_guard
6107
- ldr x1, [x0]
6108
- str x1, [x29, 104]
6109
- mov x1,0
7226
+ mov x19, x0
7227
+ mrs x0, sp_el0
7228
+ ldr x1, [x0, 1376]
7229
+ str x1, [sp, 88]
7230
+ mov x1, 0
61107231 mov w0, -1
6111
- str w0, [x29, 96]
6112
- add x0, x21, :lo12:.LANCHOR0
6113
- mov x20, x0
6114
- ldr x24, [x0, 3520]
6115
- ldr x1, [x0, 3456]
6116
- stp x1, x24, [x29, 80]
6117
- mov w1, -3
6118
- str w1, [x24, 8]
6119
- mov w1, -2
6120
- str w1, [x24, 12]
6121
- ldrh w1, [x19]
6122
- strh w1, [x24, 2]
6123
- strh wzr, [x24]
6124
- ldr x1, [x0, 3456]
6125
- str w2, [x1]
6126
- mov w2, 22136
6127
- movk w2, 0x1234, lsl 16
6128
- ldr x1, [x0, 3456]
6129
- str w2, [x1, 4]
6130
- ldrh w22, [x19, 4]
6131
- and w22, w22, 1
6132
- add w22, w22, 6
6133
-.L885:
6134
- ldrh w0, [x19, 4]
6135
- cbnz w0, .L881
6136
-.L882:
6137
- add x21, x21, :lo12:.LANCHOR0
7232
+ ldr x22, [x20, 3512]
7233
+ str w0, [sp, 80]
7234
+ ldr x0, [x20, 3448]
7235
+ str x0, [sp, 64]
7236
+ mov x0, -3
7237
+ str x22, [sp, 72]
7238
+ movk x0, 0xfffe, lsl 32
7239
+ str x0, [x22, 8]
7240
+ mov w1, 61589
61387241 ldrh w0, [x19]
6139
- ldrh w3, [x19, 4]
6140
- add x23, x23, :lo12:__stack_chk_guard
6141
- ldr x2, [x21, 72]
7242
+ strh wzr, [x22]
7243
+ strh w0, [x22, 2]
7244
+ ldr x0, [x20, 3448]
7245
+ str w1, [x0]
7246
+ mov w1, 22136
7247
+ movk w1, 0x1234, lsl 16
7248
+ ldr x0, [x20, 3448]
7249
+ str w1, [x0, 4]
7250
+ ldrh w21, [x19, 4]
7251
+ and w21, w21, 1
7252
+ add w21, w21, 6
7253
+.L921:
7254
+ ldrh w0, [x19, 4]
7255
+ cbz w21, .L923
7256
+ cbnz w0, .L922
7257
+.L923:
7258
+ ldrh w0, [x19]
7259
+ ldr x2, [x20, 72]
61427260 lsl x0, x0, 1
7261
+ ldrh w3, [x19, 4]
61437262 ldrh w1, [x2, x0]
61447263 sub w1, w1, w3
61457264 strh w1, [x2, x0]
6146
- strb wzr, [x19, 6]
6147
- ldrh w0, [x21, 306]
6148
- strh w0, [x19, 2]
61497265 strh wzr, [x19, 4]
6150
- ldr x1, [x29, 104]
6151
- ldr x0, [x23]
6152
- eor x0, x1, x0
6153
- cbz x0, .L886
7266
+ ldrh w0, [x20, 306]
7267
+ strh w0, [x19, 2]
7268
+ mrs x0, sp_el0
7269
+ strb wzr, [x19, 6]
7270
+ ldr x1, [sp, 88]
7271
+ ldr x2, [x0, 1376]
7272
+ subs x1, x1, x2
7273
+ mov x2, 0
7274
+ beq .L927
61547275 bl __stack_chk_fail
6155
-.L881:
7276
+.L922:
61567277 mov x0, x19
61577278 bl get_new_active_ppa
6158
- str w0, [x29, 76]
7279
+ str w0, [sp, 60]
61597280 cmn w0, #1
6160
- beq .L882
7281
+ beq .L923
61617282 ldr w0, [x20, 2664]
61627283 mov w3, 0
6163
- str w0, [x24, 4]
7284
+ str w0, [x22, 4]
61647285 mov w2, 0
6165
- add w0, w0, 1
7286
+ cmn w0, #2
61667287 mov w1, 1
6167
- cmn w0, #1
6168
- csel w0, w0, wzr, ne
7288
+ csinc w0, wzr, w0, eq
61697289 str w0, [x20, 2664]
6170
- add x0, x29, 72
7290
+ add x0, sp, 56
7291
+ sub w21, w21, #1
61717292 bl FlashProgPages
61727293 ldrh w0, [x19]
61737294 bl decrement_vpc_count
6174
- subs w22, w22, #1
6175
- bne .L885
6176
- b .L882
6177
-.L886:
7295
+ b .L921
7296
+.L927:
61787297 ldp x19, x20, [sp, 16]
61797298 ldp x21, x22, [sp, 32]
6180
- ldp x23, x24, [sp, 48]
6181
- ldp x29, x30, [sp], 112
7299
+ ldp x29, x30, [sp], 96
7300
+ hint 29 // autiasp
61827301 ret
61837302 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
61847303 .align 2
61857304 .global FtlMakeBbt
61867305 .type FtlMakeBbt, %function
61877306 FtlMakeBbt:
7307
+ hint 34 // bti c
7308
+ .section __patchable_function_entries
7309
+ .align 3
7310
+ .8byte .LPFE85
7311
+ .text
7312
+.LPFE85:
7313
+ nop
7314
+ nop
7315
+ hint 25 // paciasp
61887316 stp x29, x30, [sp, -96]!
6189
- add x29, sp, 0
7317
+ mov x29, sp
61907318 stp x19, x20, [sp, 16]
61917319 adrp x19, .LANCHOR0
6192
- stp x25, x26, [sp, 64]
6193
- stp x21, x22, [sp, 32]
6194
- mov x21, x19
7320
+ add x19, x19, :lo12:.LANCHOR0
61957321 stp x23, x24, [sp, 48]
6196
- mov w24, 0
7322
+ add x24, x19, 360
7323
+ add x20, x19, 3712
7324
+ stp x25, x26, [sp, 64]
7325
+ mov x25, x24
7326
+ mov w23, 0
61977327 stp x27, x28, [sp, 80]
7328
+ mov w27, 65535
7329
+ mov w28, -3872
7330
+ stp x21, x22, [sp, 32]
61987331 bl FtlBbtMemInit
61997332 bl FtlLoadFactoryBbt
6200
- mov w28, -3872
6201
- add x0, x19, :lo12:.LANCHOR0
6202
- add x26, x0, 392
6203
- add x25, x0, 372
6204
- mov x19, x0
6205
- add x20, x0, 3720
6206
-.L895:
7333
+.L934:
62077334 ldrh w0, [x19, 258]
6208
- cmp w24, w0
6209
- bcc .L901
6210
- add x20, x21, :lo12:.LANCHOR0
6211
- mov w19, 0
6212
-.L902:
6213
- ldrh w0, [x20, 318]
6214
- cmp w0, w19
6215
- bhi .L903
6216
- add x20, x20, 360
6217
- ldrh w19, [x20, 12]
7335
+ cmp w0, w23
7336
+ bhi .L940
7337
+ mov w20, 0
7338
+.L941:
7339
+ ldrh w0, [x19, 318]
7340
+ cmp w0, w20
7341
+ bhi .L942
7342
+ ldrh w20, [x19, 372]
7343
+ add x21, x19, 360
62187344 mov w22, 65535
6219
- sub w19, w19, #1
6220
- and w19, w19, 65535
6221
-.L904:
6222
- ldrh w0, [x20, 12]
7345
+ sub w20, w20, #1
7346
+ and w20, w20, 65535
7347
+.L943:
7348
+ ldrh w0, [x21, 12]
62237349 sub w0, w0, #48
6224
- cmp w19, w0
6225
- ble .L908
6226
- mov w0, w19
7350
+ cmp w20, w0
7351
+ ble .L947
7352
+ mov w0, w20
62277353 bl FtlBbmIsBadBlock
62287354 cmp w0, 1
6229
- beq .L905
6230
- mov w0, w19
7355
+ beq .L944
7356
+ mov w0, w20
62317357 bl FlashTestBlk
6232
- cbz w0, .L906
6233
- mov w0, w19
7358
+ cbz w0, .L945
7359
+ mov w0, w20
62347360 bl FtlBbmMapBadBlock
6235
-.L905:
6236
- sub w19, w19, #1
6237
- and w19, w19, 65535
6238
- b .L904
6239
-.L901:
6240
- ldr x0, [x19, 3456]
6241
- mov w2, 65535
6242
- ldr x27, [x19, 3520]
6243
- ldrh w1, [x25]
6244
- stp x0, x27, [x20, 8]
6245
- cmp w1, w2
6246
- beq .L896
6247
- ldrh w23, [x19, 302]
7361
+.L944:
7362
+ sub w20, w20, #1
7363
+ and w20, w20, 65535
7364
+ b .L943
7365
+.L940:
7366
+ ldrh w1, [x25, 12]
7367
+ ldr x0, [x19, 3448]
7368
+ ldr x26, [x19, 3512]
7369
+ stp x0, x26, [x20, 8]
7370
+ cmp w1, w27
7371
+ beq .L935
7372
+ ldrh w22, [x19, 302]
62487373 mov w2, 1
6249
- madd w23, w23, w24, w1
7374
+ madd w22, w22, w23, w1
62507375 mov w1, w2
6251
- lsl w0, w23, 10
7376
+ lsl w0, w22, 10
62527377 str w0, [x20, 4]
62537378 mov x0, x20
62547379 bl FlashReadPages
6255
- ldr x1, [x20, 8]
6256
- ldr x0, [x26]
62577380 ldrh w2, [x19, 302]
7381
+ ldr x1, [x20, 8]
62587382 add w2, w2, 7
7383
+ ldr x0, [x24, 32]
62597384 lsr w2, w2, 3
62607385 bl ftl_memcpy
6261
-.L897:
6262
- mov w0, w23
6263
- add w24, w24, 1
6264
- bl FtlBbmMapBadBlock
6265
- add x26, x26, 8
7386
+.L936:
7387
+ mov w0, w22
7388
+ add w23, w23, 1
7389
+ add x24, x24, 8
62667390 add x25, x25, 2
6267
- b .L895
6268
-.L896:
6269
- mov w1, w24
7391
+ bl FtlBbmMapBadBlock
7392
+ b .L934
7393
+.L935:
7394
+ mov w1, w23
62707395 bl FlashGetBadBlockList
62717396 ldr x0, [x20, 8]
6272
- ldr x1, [x26]
7397
+ ldr x1, [x24, 32]
62737398 bl FtlBbt2Bitmap
6274
- ldrh w22, [x19, 302]
6275
-.L899:
6276
- sub w22, w22, #1
6277
- and w22, w22, 65535
6278
-.L898:
7399
+ ldrh w21, [x19, 302]
7400
+.L938:
7401
+ sub w21, w21, #1
7402
+ and w21, w21, 65535
7403
+.L937:
62797404 ldrh w0, [x19, 302]
6280
- madd w0, w24, w0, w22
7405
+ madd w0, w23, w0, w21
62817406 bl FtlBbmIsBadBlock
62827407 cmp w0, 1
6283
- beq .L899
6284
- ldr x0, [x19, 3520]
7408
+ beq .L938
7409
+ ldr x0, [x19, 3512]
7410
+ strh w21, [x25, 12]
62857411 mov w2, 16
6286
- strh w22, [x25]
62877412 mov w1, 0
62887413 bl ftl_memset
6289
- ldr x0, [x19, 3456]
7414
+ ldr x0, [x19, 3448]
62907415 mov w2, 4096
62917416 mov w1, 0
62927417 bl ftl_memset
6293
- strh w28, [x27]
6294
- str wzr, [x27, 4]
6295
- ldrh w23, [x19, 302]
6296
- ldrh w0, [x25]
6297
- strh w0, [x27, 2]
6298
- ldrh w2, [x19, 3632]
6299
- ldrh w0, [x25]
6300
- ldr x1, [x26]
7418
+ strh w28, [x26]
7419
+ str wzr, [x26, 4]
7420
+ ldrh w22, [x19, 302]
7421
+ ldrh w0, [x25, 12]
7422
+ strh w0, [x26, 2]
7423
+ ldrh w2, [x19, 3624]
7424
+ ldr x1, [x24, 32]
7425
+ madd w22, w22, w23, w0
63017426 lsl w2, w2, 2
6302
- madd w23, w23, w24, w0
6303
- lsl w0, w23, 10
7427
+ lsl w0, w22, 10
63047428 str w0, [x20, 4]
63057429 ldr x0, [x20, 8]
63067430 bl ftl_memcpy
....@@ -6310,57 +7434,56 @@
63107434 bl FlashEraseBlocks
63117435 mov w3, 1
63127436 mov x0, x20
6313
- mov w2, w3
63147437 mov w1, w3
7438
+ mov w2, w3
63157439 bl FlashProgPages
6316
- ldr w0, [x20]
6317
- cmn w0, #1
6318
- bne .L897
6319
- mov w0, w23
7440
+ ldr w1, [x20]
7441
+ and w0, w22, 65535
7442
+ cmn w1, #1
7443
+ bne .L936
63207444 bl FtlBbmMapBadBlock
6321
- b .L898
6322
-.L903:
6323
- mov w0, w19
6324
- add w19, w19, 1
7445
+ b .L937
7446
+.L942:
7447
+ mov w0, w20
7448
+ add w20, w20, 1
7449
+ and w20, w20, 65535
63257450 bl FtlBbmMapBadBlock
6326
- and w19, w19, 65535
6327
- b .L902
6328
-.L906:
6329
- ldrh w0, [x20]
7451
+ b .L941
7452
+.L945:
7453
+ ldrh w0, [x21]
63307454 cmp w0, w22
6331
- bne .L907
6332
- strh w19, [x20]
6333
- b .L905
6334
-.L907:
6335
- strh w19, [x20, 4]
6336
-.L908:
6337
- add x21, x21, :lo12:.LANCHOR0
7455
+ bne .L946
7456
+ strh w20, [x21]
7457
+ b .L944
7458
+.L946:
7459
+ strh w20, [x21, 4]
7460
+.L947:
7461
+ ldr x1, [x19, 3400]
7462
+ str wzr, [x19, 368]
7463
+ ldrh w0, [x19, 360]
63387464 mov w2, 2
6339
- ldr x1, [x21, 3408]
6340
- ldrh w0, [x21, 360]
6341
- str wzr, [x21, 368]
6342
- strh wzr, [x21, 362]
7465
+ strh wzr, [x19, 362]
63437466 lsl w0, w0, 10
63447467 str w0, [x1, 4]
6345
- ldr x0, [x21, 3408]
6346
- ldrh w1, [x21, 364]
7468
+ ldr x0, [x19, 3400]
7469
+ ldrh w1, [x19, 364]
63477470 lsl w1, w1, 10
63487471 str w1, [x0, 36]
63497472 mov w1, 1
63507473 bl FlashEraseBlocks
6351
- ldrh w0, [x21, 360]
7474
+ ldrh w0, [x19, 360]
63527475 bl FtlBbmMapBadBlock
6353
- ldrh w0, [x21, 364]
7476
+ ldrh w0, [x19, 364]
63547477 bl FtlBbmMapBadBlock
63557478 bl FtlBbmTblFlush
6356
- strh wzr, [x21, 362]
6357
- ldr w0, [x21, 368]
6358
- ldrh w1, [x21, 364]
7479
+ strh wzr, [x19, 362]
7480
+ ldr w0, [x19, 368]
7481
+ ldrh w1, [x19, 364]
63597482 add w0, w0, 1
6360
- str w0, [x21, 368]
6361
- ldrh w0, [x21, 360]
6362
- strh w0, [x21, 364]
6363
- strh w1, [x21, 360]
7483
+ str w0, [x19, 368]
7484
+ ldrh w0, [x19, 360]
7485
+ strh w1, [x19, 360]
7486
+ strh w0, [x19, 364]
63647487 bl FtlBbmTblFlush
63657488 mov w0, 0
63667489 ldp x19, x20, [sp, 16]
....@@ -6369,490 +7492,219 @@
63697492 ldp x25, x26, [sp, 64]
63707493 ldp x27, x28, [sp, 80]
63717494 ldp x29, x30, [sp], 96
7495
+ hint 29 // autiasp
63727496 ret
63737497 .size FtlMakeBbt, .-FtlMakeBbt
63747498 .align 2
63757499 .global ftl_memcmp
63767500 .type ftl_memcmp, %function
63777501 ftl_memcmp:
7502
+ hint 34 // bti c
7503
+ .section __patchable_function_entries
7504
+ .align 3
7505
+ .8byte .LPFE86
7506
+ .text
7507
+.LPFE86:
7508
+ nop
7509
+ nop
7510
+ hint 25 // paciasp
63787511 stp x29, x30, [sp, -16]!
63797512 uxtw x2, w2
6380
- add x29, sp, 0
7513
+ mov x29, sp
63817514 bl memcmp
63827515 ldp x29, x30, [sp], 16
7516
+ hint 29 // autiasp
63837517 ret
63847518 .size ftl_memcmp, .-ftl_memcmp
63857519 .align 2
63867520 .global js_hash
63877521 .type js_hash, %function
63887522 js_hash:
7523
+ hint 34 // bti c
7524
+ .section __patchable_function_entries
7525
+ .align 3
7526
+ .8byte .LPFE87
7527
+ .text
7528
+.LPFE87:
7529
+ nop
7530
+ nop
63897531 mov x4, x0
63907532 mov w0, 42982
63917533 mov x3, 0
63927534 movk w0, 0x47c6, lsl 16
6393
-.L917:
7535
+ hint 25 // paciasp
7536
+.L956:
63947537 cmp w1, w3
6395
- bhi .L918
7538
+ bhi .L957
7539
+ hint 29 // autiasp
63967540 ret
6397
-.L918:
6398
- lsr w2, w0, 2
7541
+.L957:
63997542 ldrb w5, [x4, x3]
7543
+ lsr w2, w0, 2
64007544 add w2, w2, w0, lsl 5
64017545 add x3, x3, 1
64027546 add w2, w2, w5
64037547 eor w0, w0, w2
6404
- b .L917
7548
+ b .L956
64057549 .size js_hash, .-js_hash
6406
- .align 2
6407
- .global Ftl_write_map_blk_to_last_page
6408
- .type Ftl_write_map_blk_to_last_page, %function
6409
-Ftl_write_map_blk_to_last_page:
6410
- stp x29, x30, [sp, -64]!
6411
- mov w1, 65535
6412
- add x29, sp, 0
6413
- stp x19, x20, [sp, 16]
6414
- mov x19, x0
6415
- stp x21, x22, [sp, 32]
6416
- stp x23, x24, [sp, 48]
6417
- ldr x20, [x0, 16]
6418
- ldrh w0, [x0]
6419
- cmp w0, w1
6420
- bne .L920
6421
- ldrh w0, [x19, 8]
6422
- cbz w0, .L921
6423
- adrp x1, .LANCHOR1
6424
- add x1, x1, :lo12:.LANCHOR1
6425
- adrp x0, .LC8
6426
- mov w2, 641
6427
- add x1, x1, 408
6428
- add x0, x0, :lo12:.LC8
6429
- bl sftl_printk
6430
-.L921:
6431
- ldrh w0, [x19, 8]
6432
- add w0, w0, 1
6433
- strh w0, [x19, 8]
6434
- bl FtlFreeSysBlkQueueOut
6435
- strh w0, [x20]
6436
- strh wzr, [x19, 2]
6437
- ldr w0, [x19, 48]
6438
- strh wzr, [x19]
6439
- add w0, w0, 1
6440
- str w0, [x19, 48]
6441
-.L922:
6442
- mov w0, 0
6443
- ldp x19, x20, [sp, 16]
6444
- ldp x21, x22, [sp, 32]
6445
- ldp x23, x24, [sp, 48]
6446
- ldp x29, x30, [sp], 64
6447
- ret
6448
-.L920:
6449
- ubfiz x0, x0, 1, 16
6450
- adrp x21, .LANCHOR0
6451
- ldrh w1, [x19, 2]
6452
- ldr x24, [x19, 40]
6453
- ldrh w23, [x20, x0]
6454
- add x20, x21, :lo12:.LANCHOR0
6455
- ldr w0, [x19, 48]
6456
- ldr x22, [x20, 3520]
6457
- orr w1, w1, w23, lsl 10
6458
- str w1, [x20, 3724]
6459
- ldr x1, [x20, 3456]
6460
- str x1, [x20, 3728]
6461
- str x22, [x20, 3736]
6462
- mov w1, 255
6463
- str w0, [x22, 4]
6464
- mov w0, -1291
6465
- strh w0, [x22, 8]
6466
- ldrh w0, [x19, 4]
6467
- strh w0, [x22]
6468
- strh w23, [x22, 2]
6469
- ldrh w2, [x20, 308]
6470
- ldr x0, [x20, 3456]
6471
- lsl w2, w2, 3
6472
- bl ftl_memset
6473
- mov w1, 0
6474
- mov w0, 0
6475
-.L923:
6476
- ldrh w2, [x19, 6]
6477
- cmp w2, w0
6478
- bhi .L925
6479
- add x21, x21, :lo12:.LANCHOR0
6480
- add x6, x21, 3720
6481
- ldrh w1, [x21, 314]
6482
- ldr x0, [x21, 3728]
6483
- bl js_hash
6484
- str w0, [x22, 12]
6485
- mov w2, 1
6486
- mov w3, 0
6487
- mov w1, w2
6488
- mov x0, x6
6489
- bl FlashProgPages
6490
- ldrh w0, [x19, 2]
6491
- add w0, w0, 1
6492
- strh w0, [x19, 2]
6493
- mov x0, x19
6494
- bl ftl_map_blk_gc
6495
- b .L922
6496
-.L925:
6497
- ubfiz x2, x0, 2, 16
6498
- ldr w3, [x24, x2]
6499
- cmp w23, w3, lsr 10
6500
- bne .L924
6501
- add w1, w1, 1
6502
- ldr x4, [x20, 3456]
6503
- and w1, w1, 65535
6504
- ubfiz x3, x1, 3, 16
6505
- str w0, [x4, x3]
6506
- ldr w4, [x24, x2]
6507
- ldr x2, [x20, 3456]
6508
- add x2, x2, x3
6509
- str w4, [x2, 4]
6510
-.L924:
6511
- add w0, w0, 1
6512
- and w0, w0, 65535
6513
- b .L923
6514
- .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
7550
+ .section .rodata.str1.1
7551
+.LC105:
7552
+ .string "FtlMapWritePage error = %x \n"
7553
+.LC106:
7554
+ .string "FtlMapWritePage error = %x error count = %d\n"
7555
+ .text
65157556 .align 2
65167557 .global FtlMapWritePage
65177558 .type FtlMapWritePage, %function
65187559 FtlMapWritePage:
6519
- stp x29, x30, [sp, -112]!
6520
- add x29, sp, 0
6521
- stp x21, x22, [sp, 32]
6522
- mov w21, 0
7560
+ hint 34 // bti c
7561
+ .section __patchable_function_entries
7562
+ .align 3
7563
+ .8byte .LPFE88
7564
+ .text
7565
+.LPFE88:
7566
+ nop
7567
+ nop
7568
+ hint 25 // paciasp
7569
+ stp x29, x30, [sp, -96]!
7570
+ mov x29, sp
65237571 stp x23, x24, [sp, 48]
6524
- adrp x24, .LANCHOR0
6525
- stp x25, x26, [sp, 64]
6526
- add x22, x24, :lo12:.LANCHOR0
6527
- mov w26, w1
7572
+ mov w24, w1
65287573 stp x19, x20, [sp, 16]
6529
- stp x27, x28, [sp, 80]
6530
- adrp x23, .LANCHOR1
7574
+ adrp x20, .LANCHOR0
7575
+ add x20, x20, :lo12:.LANCHOR0
65317576 mov x19, x0
6532
- mov x28, x2
6533
- ubfiz x27, x26, 2, 32
6534
- mov x25, x24
6535
- add x23, x23, :lo12:.LANCHOR1
6536
- add x20, x22, 3720
6537
-.L931:
6538
- add x0, x24, :lo12:.LANCHOR0
6539
- ldr w1, [x0, 2644]
6540
- add w1, w1, 1
6541
- str w1, [x0, 2644]
6542
- ldrh w0, [x0, 308]
7577
+ stp x21, x22, [sp, 32]
7578
+ add x21, x20, 3712
7579
+ stp x25, x26, [sp, 64]
7580
+ adrp x25, .LANCHOR1
7581
+ mov x26, x2
7582
+ add x25, x25, :lo12:.LANCHOR1
7583
+ stp x27, x28, [sp, 80]
7584
+ ubfiz x27, x24, 2, 32
7585
+ mov w22, 0
7586
+.L960:
7587
+ ldr w0, [x20, 2644]
7588
+ add w0, w0, 1
7589
+ str w0, [x20, 2644]
7590
+ ldrh w0, [x20, 308]
65437591 ldrh w1, [x19, 2]
65447592 sub w0, w0, #1
65457593 cmp w1, w0
6546
- bge .L932
7594
+ bge .L961
65477595 ldrh w1, [x19]
65487596 mov w0, 65535
65497597 cmp w1, w0
6550
- bne .L933
6551
-.L932:
7598
+ bne .L962
7599
+.L961:
65527600 mov x0, x19
65537601 bl Ftl_write_map_blk_to_last_page
6554
-.L933:
7602
+.L962:
65557603 ldrh w1, [x19]
65567604 ldr x0, [x19, 16]
65577605 ldrh w0, [x0, x1, lsl 1]
6558
- cbnz w0, .L934
6559
- adrp x0, .LC8
7606
+ cbnz w0, .L963
7607
+ adrp x0, .LC9
7608
+ add x1, x25, 332
7609
+ add x0, x0, :lo12:.LC9
65607610 mov w2, 700
6561
- add x1, x23, 440
6562
- add x0, x0, :lo12:.LC8
65637611 bl sftl_printk
6564
-.L934:
7612
+.L963:
65657613 ldrh w1, [x19]
65667614 ldrh w0, [x19, 10]
65677615 cmp w1, w0
6568
- bcc .L935
6569
- adrp x0, .LC8
7616
+ bcc .L964
7617
+ adrp x0, .LC9
7618
+ add x1, x25, 332
7619
+ add x0, x0, :lo12:.LC9
65707620 mov w2, 701
6571
- add x1, x23, 440
6572
- add x0, x0, :lo12:.LC8
65737621 bl sftl_printk
6574
-.L935:
7622
+.L964:
65757623 ldrh w1, [x19]
65767624 mov w2, 16
65777625 ldr x0, [x19, 16]
6578
- ldrh w3, [x0, x1, lsl 1]
7626
+ ldrh w28, [x0, x1, lsl 1]
65797627 mov w1, 0
65807628 ldrh w0, [x19, 2]
6581
- str w3, [x29, 108]
6582
- str x28, [x20, 8]
6583
- orr w0, w0, w3, lsl 10
6584
- str w0, [x20, 4]
6585
- ldr x0, [x22, 3520]
6586
- str x0, [x20, 16]
7629
+ str x26, [x21, 8]
7630
+ orr w0, w0, w28, lsl 10
7631
+ str w0, [x21, 4]
7632
+ ldr x0, [x20, 3512]
7633
+ str x0, [x21, 16]
65877634 bl ftl_memset
6588
- ldr x6, [x20, 16]
7635
+ ldr x23, [x21, 16]
65897636 ldr w0, [x19, 48]
6590
- ldr w3, [x29, 108]
6591
- strh w26, [x6, 8]
6592
- str w0, [x6, 4]
7637
+ str w0, [x23, 4]
7638
+ strh w24, [x23, 8]
65937639 ldrh w0, [x19, 4]
6594
- strh w0, [x6]
6595
- strh w3, [x6, 2]
6596
- ldrh w1, [x22, 314]
6597
- ldr x0, [x20, 8]
7640
+ strh w0, [x23]
7641
+ strh w28, [x23, 2]
7642
+ ldrh w1, [x20, 314]
7643
+ ldr x0, [x21, 8]
65987644 bl js_hash
6599
- str w0, [x6, 12]
7645
+ str w0, [x23, 12]
66007646 mov w3, 1
6601
- mov x0, x20
7647
+ mov x0, x21
66027648 mov w1, w3
66037649 mov w2, w3
66047650 bl FlashProgPages
66057651 ldrh w0, [x19, 2]
66067652 add w0, w0, 1
66077653 strh w0, [x19, 2]
6608
- ldp w0, w1, [x20]
7654
+ ldp w0, w1, [x21]
66097655 cmn w0, #1
6610
- bne .L936
6611
- adrp x0, .LC104
6612
- add x0, x0, :lo12:.LC104
7656
+ bne .L965
7657
+ adrp x0, .LC105
7658
+ add x0, x0, :lo12:.LC105
66137659 bl sftl_printk
6614
- add w21, w21, 1
7660
+ add w22, w22, 1
66157661 ldrh w0, [x19, 2]
6616
- and w21, w21, 65535
7662
+ and w22, w22, 65535
66177663 cmp w0, 2
6618
- bhi .L937
6619
- ldrh w0, [x22, 308]
7664
+ bhi .L966
7665
+ ldrh w0, [x20, 308]
66207666 sub w0, w0, #1
66217667 strh w0, [x19, 2]
6622
-.L937:
6623
- cmp w21, 3
6624
- bls .L938
6625
- add x25, x25, :lo12:.LANCHOR0
6626
- adrp x0, .LC105
6627
- mov w2, w21
6628
- add x0, x0, :lo12:.LC105
6629
- ldr w1, [x25, 3724]
7668
+.L966:
7669
+ cmp w22, 3
7670
+ bls .L967
7671
+ ldr w1, [x20, 3716]
7672
+ adrp x0, .LC106
7673
+ mov w2, w22
7674
+ add x0, x0, :lo12:.LC106
66307675 bl sftl_printk
6631
-.L939:
6632
- b .L939
6633
-.L938:
7676
+.L968:
7677
+ b .L968
7678
+.L967:
66347679 ldr w0, [x19, 52]
6635
- cbz w0, .L931
6636
-.L954:
6637
- b .L954
6638
-.L936:
7680
+ cbz w0, .L960
7681
+.L970:
7682
+ b .L970
7683
+.L965:
66397684 ldr x0, [x19, 40]
66407685 str w1, [x0, x27]
66417686 ldrh w0, [x19, 2]
66427687 cmp w0, 1
6643
- beq .L942
6644
- ldr w0, [x20]
7688
+ beq .L971
7689
+ ldr w0, [x21]
66457690 cmp w0, 256
6646
- beq .L942
7691
+ beq .L971
66477692 ldr w1, [x19, 56]
6648
- cbz w1, .L943
6649
-.L942:
7693
+ cbz w1, .L972
7694
+.L971:
66507695 str wzr, [x19, 56]
6651
- b .L931
6652
-.L943:
7696
+ b .L960
7697
+.L972:
66537698 cmn w0, #1
6654
- bne .L944
7699
+ bne .L973
66557700 adrp x1, .LANCHOR1
66567701 add x1, x1, :lo12:.LANCHOR1
6657
- adrp x0, .LC8
7702
+ adrp x0, .LC9
7703
+ add x1, x1, 332
7704
+ add x0, x0, :lo12:.LC9
66587705 mov w2, 745
6659
- add x1, x1, 440
6660
- add x0, x0, :lo12:.LC8
66617706 bl sftl_printk
6662
-.L944:
6663
- ldp x19, x20, [sp, 16]
6664
- mov w0, 0
6665
- ldp x21, x22, [sp, 32]
6666
- ldp x23, x24, [sp, 48]
6667
- ldp x25, x26, [sp, 64]
6668
- ldp x27, x28, [sp, 80]
6669
- ldp x29, x30, [sp], 112
6670
- ret
6671
- .size FtlMapWritePage, .-FtlMapWritePage
6672
- .align 2
6673
- .global load_l2p_region
6674
- .type load_l2p_region, %function
6675
-load_l2p_region:
6676
- stp x29, x30, [sp, -80]!
6677
- add x29, sp, 0
6678
- stp x21, x22, [sp, 32]
6679
- and w22, w0, 65535
6680
- adrp x21, .LANCHOR0
6681
- add x0, x21, :lo12:.LANCHOR0
6682
- stp x19, x20, [sp, 16]
6683
- and x19, x1, 65535
6684
- stp x23, x24, [sp, 48]
6685
- str x25, [sp, 64]
6686
- ldrh w0, [x0, 340]
6687
- cmp w0, w22
6688
- bcs .L957
6689
- adrp x1, .LANCHOR1
6690
- add x1, x1, :lo12:.LANCHOR1
6691
- adrp x0, .LC8
6692
- mov w2, 485
6693
- add x1, x1, 456
6694
- add x0, x0, :lo12:.LC8
6695
- bl sftl_printk
6696
-.L957:
6697
- add x20, x21, :lo12:.LANCHOR0
6698
- ubfiz x0, x22, 2, 16
6699
- ldr x1, [x20, 3608]
6700
- ldr w24, [x1, x0]
6701
- cbnz w24, .L958
6702
- ldr x0, [x20, 2608]
6703
- lsl x19, x19, 4
6704
- ldrh w2, [x20, 314]
6705
- mov w1, 255
6706
- add x0, x0, x19
6707
- ldr x0, [x0, 8]
6708
- bl ftl_memset
6709
- ldr x0, [x20, 2608]
6710
- strh w22, [x0, x19]
6711
- ldr x0, [x20, 2608]
6712
- add x19, x0, x19
6713
- str wzr, [x19, 4]
6714
-.L959:
6715
- mov w0, 0
6716
- ldr x25, [sp, 64]
6717
- ldp x19, x20, [sp, 16]
6718
- ldp x21, x22, [sp, 32]
6719
- ldp x23, x24, [sp, 48]
6720
- ldp x29, x30, [sp], 80
6721
- ret
6722
-.L958:
6723
- ldr x0, [x20, 2608]
6724
- lsl x19, x19, 4
6725
- add x23, x20, 3720
6726
- mov w2, 1
6727
- add x0, x0, x19
6728
- mov w1, w2
6729
- str w24, [x20, 3724]
6730
- ldr x0, [x0, 8]
6731
- str x0, [x20, 3728]
6732
- ldr x0, [x20, 3520]
6733
- str x0, [x20, 3736]
6734
- mov x0, x23
6735
- bl FlashReadPages
6736
- ldr x25, [x20, 3736]
6737
- ldrh w0, [x25, 8]
6738
- cmp w0, w22
6739
- beq .L960
6740
- mov w2, w24
6741
- mov w1, w22
6742
- adrp x0, .LC106
6743
- add x0, x0, :lo12:.LC106
6744
- bl sftl_printk
6745
- ldr x1, [x20, 3736]
6746
- mov w3, 4
6747
- adrp x0, .LC94
6748
- mov w2, w3
6749
- add x0, x0, :lo12:.LC94
6750
- bl rknand_print_hex
6751
- ldrh w3, [x20, 340]
6752
- adrp x0, .LC107
6753
- ldr x1, [x20, 3608]
6754
- mov w2, 4
6755
- add x0, x0, :lo12:.LC107
6756
- bl rknand_print_hex
6757
-.L961:
6758
- ldrh w0, [x25, 8]
6759
- cmp w0, w22
6760
- beq .L962
6761
- adrp x1, .LANCHOR1
6762
- add x1, x1, :lo12:.LANCHOR1
6763
- adrp x0, .LC8
6764
- mov w2, 508
6765
- add x1, x1, 456
6766
- add x0, x0, :lo12:.LC8
6767
- bl sftl_printk
6768
-.L962:
6769
- add x21, x21, :lo12:.LANCHOR0
6770
- ldr x0, [x21, 2608]
6771
- add x0, x0, x19
6772
- str wzr, [x0, 4]
6773
- ldr x0, [x21, 2608]
6774
- strh w22, [x0, x19]
6775
- b .L959
6776
-.L960:
6777
- ldr w0, [x20, 3720]
6778
- cmp w0, 256
6779
- bne .L961
6780
- mov w2, w24
6781
- mov w1, w22
6782
- adrp x0, .LC108
6783
- add x0, x0, :lo12:.LC108
6784
- bl sftl_printk
6785
- ldr x0, [x20, 2608]
6786
- mov w1, w22
6787
- add x0, x0, x19
6788
- ldr x2, [x0, 8]
6789
- add x0, x20, 3640
6790
- bl FtlMapWritePage
6791
- b .L961
6792
- .size load_l2p_region, .-load_l2p_region
6793
- .align 2
6794
- .global ftl_map_blk_gc
6795
- .type ftl_map_blk_gc, %function
6796
-ftl_map_blk_gc:
6797
- stp x29, x30, [sp, -96]!
6798
- add x29, sp, 0
6799
- stp x19, x20, [sp, 16]
6800
- mov x19, x0
6801
- stp x21, x22, [sp, 32]
6802
- adrp x22, .LANCHOR0
6803
- stp x23, x24, [sp, 48]
6804
- stp x25, x26, [sp, 64]
6805
- stp x27, x28, [sp, 80]
6806
- ldr x20, [x0, 16]
6807
- ldr x25, [x0, 40]
6808
- bl ftl_free_no_use_map_blk
6809
- ldrh w1, [x19, 10]
6810
- ldrh w2, [x19, 8]
6811
- sub w1, w1, #5
6812
- cmp w2, w1
6813
- blt .L965
6814
- ubfiz x0, x0, 1, 16
6815
- ldrh w26, [x20, x0]
6816
- cbz w26, .L965
6817
- ldr w1, [x19, 52]
6818
- cbnz w1, .L965
6819
- mov w1, 1
6820
- str w1, [x19, 52]
6821
- strh wzr, [x20, x0]
6822
- ldrh w0, [x19, 8]
6823
- ldrh w1, [x19, 2]
6824
- sub w0, w0, #1
6825
- strh w0, [x19, 8]
6826
- add x0, x22, :lo12:.LANCHOR0
6827
- ldrh w0, [x0, 308]
6828
- cmp w1, w0
6829
- bcc .L966
6830
- mov x0, x19
6831
- bl ftl_map_blk_alloc_new_blk
6832
-.L966:
6833
- add x27, x22, :lo12:.LANCHOR0
6834
- adrp x23, .LANCHOR1
6835
- add x23, x23, :lo12:.LANCHOR1
6836
- add x21, x27, 3720
6837
- add x23, x23, 472
6838
- mov w20, 0
6839
-.L967:
6840
- ldrh w0, [x19, 6]
6841
- cmp w0, w20
6842
- bhi .L974
6843
- mov w1, 1
6844
- mov w0, w26
6845
- bl FtlFreeSysBlkQueueIn
6846
- str wzr, [x19, 52]
6847
-.L965:
6848
- add x22, x22, :lo12:.LANCHOR0
6849
- ldrh w1, [x19, 2]
6850
- ldrh w0, [x22, 308]
6851
- cmp w1, w0
6852
- bcc .L975
6853
- mov x0, x19
6854
- bl ftl_map_blk_alloc_new_blk
6855
-.L975:
7707
+.L973:
68567708 mov w0, 0
68577709 ldp x19, x20, [sp, 16]
68587710 ldp x21, x22, [sp, 32]
....@@ -6860,61 +7712,401 @@
68607712 ldp x25, x26, [sp, 64]
68617713 ldp x27, x28, [sp, 80]
68627714 ldp x29, x30, [sp], 96
7715
+ hint 29 // autiasp
68637716 ret
6864
-.L974:
6865
- ubfiz x0, x20, 2, 16
6866
- add x28, x25, x0
6867
- ldr w1, [x25, x0]
6868
- cmp w26, w1, lsr 10
6869
- bne .L968
6870
- ldr x1, [x27, 3464]
6871
- mov w2, 1
6872
- ldr x24, [x27, 3520]
6873
- stp x1, x24, [x21, 8]
6874
- mov w1, w2
6875
- ldr w0, [x25, x0]
6876
- str w0, [x21, 4]
6877
- mov x0, x21
6878
- bl FlashReadPages
6879
- ldrh w0, [x24, 8]
6880
- cmp w0, w20
6881
- beq .L969
6882
- adrp x0, .LC8
6883
- mov w2, 611
6884
- mov x1, x23
6885
- add x0, x0, :lo12:.LC8
7717
+ .size FtlMapWritePage, .-FtlMapWritePage
7718
+ .section .rodata.str1.1
7719
+.LC107:
7720
+ .string "region_id = %x phyAddr = %x\n"
7721
+.LC108:
7722
+ .string "map_ppn:"
7723
+.LC109:
7724
+ .string "load_l2p_region refresh = %x phyAddr = %x\n"
7725
+ .text
7726
+ .align 2
7727
+ .global load_l2p_region
7728
+ .type load_l2p_region, %function
7729
+load_l2p_region:
7730
+ hint 34 // bti c
7731
+ .section __patchable_function_entries
7732
+ .align 3
7733
+ .8byte .LPFE89
7734
+ .text
7735
+.LPFE89:
7736
+ nop
7737
+ nop
7738
+ hint 25 // paciasp
7739
+ stp x29, x30, [sp, -64]!
7740
+ mov x29, sp
7741
+ stp x19, x20, [sp, 16]
7742
+ adrp x19, .LANCHOR0
7743
+ add x19, x19, :lo12:.LANCHOR0
7744
+ and w20, w1, 65535
7745
+ stp x21, x22, [sp, 32]
7746
+ and w21, w0, 65535
7747
+ ldrh w1, [x19, 340]
7748
+ stp x23, x24, [sp, 48]
7749
+ cmp w1, w0, uxth
7750
+ bcs .L985
7751
+ adrp x1, .LANCHOR1
7752
+ add x1, x1, :lo12:.LANCHOR1
7753
+ adrp x0, .LC9
7754
+ add x1, x1, 348
7755
+ add x0, x0, :lo12:.LC9
7756
+ mov w2, 485
68867757 bl sftl_printk
6887
-.L969:
6888
- ldr w0, [x21]
6889
- cmn w0, #1
6890
- bne .L970
6891
-.L972:
6892
- str wzr, [x28]
6893
-.L971:
6894
- b .L971
6895
-.L970:
7758
+.L985:
7759
+ ldr x1, [x19, 3600]
7760
+ ubfiz x0, x21, 2, 16
7761
+ ubfiz x20, x20, 4, 16
7762
+ ldr w23, [x1, x0]
7763
+ ldr x0, [x19, 2608]
7764
+ add x0, x0, x20
7765
+ ldr x0, [x0, 8]
7766
+ cbnz w23, .L986
7767
+ ldrh w2, [x19, 314]
7768
+ mov w1, 255
7769
+ bl ftl_memset
7770
+ ldr x0, [x19, 2608]
7771
+ strh w21, [x0, x20]
7772
+ ldr x0, [x19, 2608]
7773
+ add x20, x0, x20
7774
+ str wzr, [x20, 4]
7775
+.L987:
7776
+ mov w0, 0
7777
+ ldp x19, x20, [sp, 16]
7778
+ ldp x21, x22, [sp, 32]
7779
+ ldp x23, x24, [sp, 48]
7780
+ ldp x29, x30, [sp], 64
7781
+ hint 29 // autiasp
7782
+ ret
7783
+.L986:
7784
+ add x22, x19, 3712
7785
+ str x0, [x19, 3720]
7786
+ ldr x0, [x19, 3512]
7787
+ mov w2, 1
7788
+ mov w1, w2
7789
+ str w23, [x19, 3716]
7790
+ str x0, [x19, 3728]
7791
+ mov x0, x22
7792
+ bl FlashReadPages
7793
+ ldr x24, [x19, 3728]
68967794 ldrh w0, [x24, 8]
6897
- cmp w0, w20
6898
- bne .L972
6899
- ldrh w1, [x24]
6900
- ldrh w0, [x19, 4]
7795
+ cmp w0, w21
7796
+ beq .L988
7797
+ mov w2, w23
7798
+ mov w1, w21
7799
+ adrp x0, .LC107
7800
+ add x0, x0, :lo12:.LC107
7801
+ bl sftl_printk
7802
+ ldr x1, [x19, 3728]
7803
+ mov w3, 4
7804
+ adrp x0, .LC95
7805
+ mov w2, w3
7806
+ add x0, x0, :lo12:.LC95
7807
+ bl rknand_print_hex
7808
+ ldrh w3, [x19, 340]
7809
+ adrp x0, .LC108
7810
+ ldr x1, [x19, 3600]
7811
+ add x0, x0, :lo12:.LC108
7812
+ mov w2, 4
7813
+ bl rknand_print_hex
7814
+.L989:
7815
+ ldrh w0, [x24, 8]
7816
+ cmp w0, w21
7817
+ beq .L991
7818
+ adrp x1, .LANCHOR1
7819
+ add x1, x1, :lo12:.LANCHOR1
7820
+ adrp x0, .LC9
7821
+ add x1, x1, 348
7822
+ add x0, x0, :lo12:.LC9
7823
+ mov w2, 508
7824
+ bl sftl_printk
7825
+.L991:
7826
+ ldr x0, [x19, 2608]
7827
+ add x0, x0, x20
7828
+ str wzr, [x0, 4]
7829
+ ldr x0, [x19, 2608]
7830
+ strh w21, [x0, x20]
7831
+ b .L987
7832
+.L988:
7833
+ ldr w0, [x19, 3712]
7834
+ cmp w0, 256
7835
+ bne .L991
7836
+ mov w2, w23
7837
+ mov w1, w21
7838
+ adrp x0, .LC109
7839
+ add x0, x0, :lo12:.LC109
7840
+ bl sftl_printk
7841
+ ldr x0, [x19, 2608]
7842
+ mov w1, w21
7843
+ add x0, x0, x20
7844
+ ldr x2, [x0, 8]
7845
+ add x0, x19, 3632
7846
+ bl FtlMapWritePage
7847
+ b .L989
7848
+ .size load_l2p_region, .-load_l2p_region
7849
+ .align 2
7850
+ .global ftl_map_blk_gc
7851
+ .type ftl_map_blk_gc, %function
7852
+ftl_map_blk_gc:
7853
+ hint 34 // bti c
7854
+ .section __patchable_function_entries
7855
+ .align 3
7856
+ .8byte .LPFE90
7857
+ .text
7858
+.LPFE90:
7859
+ nop
7860
+ nop
7861
+ hint 25 // paciasp
7862
+ stp x29, x30, [sp, -96]!
7863
+ mov x29, sp
7864
+ stp x19, x20, [sp, 16]
7865
+ mov x19, x0
7866
+ adrp x20, .LANCHOR0
7867
+ stp x21, x22, [sp, 32]
7868
+ add x20, x20, :lo12:.LANCHOR0
7869
+ stp x23, x24, [sp, 48]
7870
+ stp x25, x26, [sp, 64]
7871
+ str x27, [sp, 80]
7872
+ ldr x21, [x0, 16]
7873
+ ldr x24, [x0, 40]
7874
+ bl ftl_free_no_use_map_blk
7875
+ ldrh w1, [x19, 10]
7876
+ ldrh w2, [x19, 8]
7877
+ sub w1, w1, #5
7878
+ cmp w2, w1
7879
+ blt .L995
7880
+ ubfiz x0, x0, 1, 16
7881
+ ldrh w25, [x21, x0]
7882
+ cbz w25, .L995
7883
+ ldr w1, [x19, 52]
7884
+ cbnz w1, .L995
7885
+ mov w1, 1
7886
+ str w1, [x19, 52]
7887
+ strh wzr, [x21, x0]
7888
+ ldrh w0, [x19, 8]
7889
+ ldrh w1, [x19, 2]
7890
+ sub w0, w0, #1
7891
+ strh w0, [x19, 8]
7892
+ ldrh w0, [x20, 308]
69017893 cmp w1, w0
6902
- bne .L972
6903
- ldr x2, [x21, 8]
6904
- mov w1, w20
7894
+ bcc .L996
7895
+ mov x0, x19
7896
+ bl ftl_map_blk_alloc_new_blk
7897
+.L996:
7898
+ adrp x22, .LANCHOR1
7899
+ add x22, x22, :lo12:.LANCHOR1
7900
+ adrp x26, .LC9
7901
+ add x22, x22, 364
7902
+ add x26, x26, :lo12:.LC9
7903
+ mov w21, 0
7904
+.L997:
7905
+ ldrh w0, [x19, 6]
7906
+ cmp w0, w21
7907
+ bhi .L1004
7908
+ mov w0, w25
7909
+ mov w1, 1
7910
+ bl FtlFreeSysBlkQueueIn
7911
+ str wzr, [x19, 52]
7912
+.L995:
7913
+ ldrh w1, [x19, 2]
7914
+ ldrh w0, [x20, 308]
7915
+ cmp w1, w0
7916
+ bcc .L1005
7917
+ mov x0, x19
7918
+ bl ftl_map_blk_alloc_new_blk
7919
+.L1005:
7920
+ mov w0, 0
7921
+ ldp x19, x20, [sp, 16]
7922
+ ldp x21, x22, [sp, 32]
7923
+ ldp x23, x24, [sp, 48]
7924
+ ldp x25, x26, [sp, 64]
7925
+ ldr x27, [sp, 80]
7926
+ ldp x29, x30, [sp], 96
7927
+ hint 29 // autiasp
7928
+ ret
7929
+.L1004:
7930
+ ubfiz x1, x21, 2, 16
7931
+ add x27, x24, x1
7932
+ ldr w0, [x24, x1]
7933
+ cmp w25, w0, lsr 10
7934
+ bne .L998
7935
+ add x0, x20, 3712
7936
+ ldr x2, [x20, 3456]
7937
+ ldr x23, [x20, 3512]
7938
+ stp x2, x23, [x0, 8]
7939
+ mov w2, 1
7940
+ ldr w1, [x24, x1]
7941
+ str w1, [x0, 4]
7942
+ mov w1, w2
7943
+ bl FlashReadPages
7944
+ ldrh w0, [x23, 8]
7945
+ cmp w0, w21
7946
+ beq .L999
7947
+ mov x1, x22
7948
+ mov x0, x26
7949
+ mov w2, 611
7950
+ bl sftl_printk
7951
+.L999:
7952
+ ldr w1, [x20, 3712]
7953
+ add x0, x20, 3712
7954
+ cmn w1, #1
7955
+ bne .L1000
7956
+.L1002:
7957
+ str wzr, [x27]
7958
+.L1001:
7959
+ b .L1001
7960
+.L1000:
7961
+ ldrh w1, [x23, 8]
7962
+ cmp w1, w21
7963
+ bne .L1002
7964
+ ldrh w2, [x23]
7965
+ ldrh w1, [x19, 4]
7966
+ cmp w2, w1
7967
+ bne .L1002
7968
+ ldr x2, [x0, 8]
7969
+ mov w1, w21
69057970 mov x0, x19
69067971 bl FtlMapWritePage
6907
-.L968:
6908
- add w20, w20, 1
6909
- and w20, w20, 65535
6910
- b .L967
7972
+.L998:
7973
+ add w21, w21, 1
7974
+ and w21, w21, 65535
7975
+ b .L997
69117976 .size ftl_map_blk_gc, .-ftl_map_blk_gc
7977
+ .align 2
7978
+ .global Ftl_write_map_blk_to_last_page
7979
+ .type Ftl_write_map_blk_to_last_page, %function
7980
+Ftl_write_map_blk_to_last_page:
7981
+ hint 34 // bti c
7982
+ .section __patchable_function_entries
7983
+ .align 3
7984
+ .8byte .LPFE91
7985
+ .text
7986
+.LPFE91:
7987
+ nop
7988
+ nop
7989
+ hint 25 // paciasp
7990
+ stp x29, x30, [sp, -64]!
7991
+ mov w1, 65535
7992
+ mov x29, sp
7993
+ stp x19, x20, [sp, 16]
7994
+ mov x19, x0
7995
+ stp x21, x22, [sp, 32]
7996
+ str x23, [sp, 48]
7997
+ ldr x20, [x0, 16]
7998
+ ldrh w0, [x0]
7999
+ cmp w0, w1
8000
+ bne .L1012
8001
+ ldrh w0, [x19, 8]
8002
+ cbz w0, .L1013
8003
+ adrp x1, .LANCHOR1
8004
+ add x1, x1, :lo12:.LANCHOR1
8005
+ adrp x0, .LC9
8006
+ add x1, x1, 379
8007
+ add x0, x0, :lo12:.LC9
8008
+ mov w2, 641
8009
+ bl sftl_printk
8010
+.L1013:
8011
+ ldrh w0, [x19, 8]
8012
+ add w0, w0, 1
8013
+ strh w0, [x19, 8]
8014
+ bl FtlFreeSysBlkQueueOut
8015
+ strh w0, [x20]
8016
+ str wzr, [x19]
8017
+ ldr w0, [x19, 48]
8018
+ add w0, w0, 1
8019
+ str w0, [x19, 48]
8020
+.L1014:
8021
+ mov w0, 0
8022
+ ldp x19, x20, [sp, 16]
8023
+ ldp x21, x22, [sp, 32]
8024
+ ldr x23, [sp, 48]
8025
+ ldp x29, x30, [sp], 64
8026
+ hint 29 // autiasp
8027
+ ret
8028
+.L1012:
8029
+ ubfiz x0, x0, 1, 16
8030
+ ldrh w1, [x19, 2]
8031
+ ldr x23, [x19, 40]
8032
+ ldrh w22, [x20, x0]
8033
+ adrp x20, .LANCHOR0
8034
+ add x20, x20, :lo12:.LANCHOR0
8035
+ ldr w0, [x19, 48]
8036
+ orr w1, w1, w22, lsl 10
8037
+ ldr x21, [x20, 3512]
8038
+ str w1, [x20, 3716]
8039
+ ldr x1, [x20, 3448]
8040
+ str x1, [x20, 3720]
8041
+ str x21, [x20, 3728]
8042
+ mov w1, 255
8043
+ str w0, [x21, 4]
8044
+ mov w0, -1291
8045
+ strh w0, [x21, 8]
8046
+ ldrh w0, [x19, 4]
8047
+ strh w0, [x21]
8048
+ strh w22, [x21, 2]
8049
+ ldrh w2, [x20, 308]
8050
+ ldr x0, [x20, 3448]
8051
+ lsl w2, w2, 3
8052
+ bl ftl_memset
8053
+ mov w2, 0
8054
+ mov w0, 0
8055
+.L1015:
8056
+ ldrh w1, [x19, 6]
8057
+ cmp w1, w0
8058
+ bhi .L1017
8059
+ ldrh w1, [x20, 314]
8060
+ add x22, x20, 3712
8061
+ ldr x0, [x20, 3720]
8062
+ bl js_hash
8063
+ str w0, [x21, 12]
8064
+ mov w2, 1
8065
+ mov x0, x22
8066
+ mov w1, w2
8067
+ mov w3, 0
8068
+ bl FlashProgPages
8069
+ ldrh w0, [x19, 2]
8070
+ add w0, w0, 1
8071
+ strh w0, [x19, 2]
8072
+ mov x0, x19
8073
+ bl ftl_map_blk_gc
8074
+ b .L1014
8075
+.L1017:
8076
+ ubfiz x3, x0, 2, 16
8077
+ ldr w1, [x23, x3]
8078
+ cmp w22, w1, lsr 10
8079
+ bne .L1016
8080
+ add w1, w2, 1
8081
+ ldr x5, [x20, 3448]
8082
+ ubfiz x4, x1, 3, 16
8083
+ and w2, w1, 65535
8084
+ ubfiz x1, x1, 3, 16
8085
+ add x1, x1, 4
8086
+ str w0, [x5, x4]
8087
+ ldr w4, [x23, x3]
8088
+ ldr x3, [x20, 3448]
8089
+ str w4, [x3, x1]
8090
+.L1016:
8091
+ add w0, w0, 1
8092
+ and w0, w0, 65535
8093
+ b .L1015
8094
+ .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
69128095 .align 2
69138096 .global flush_l2p_region
69148097 .type flush_l2p_region, %function
69158098 flush_l2p_region:
8099
+ hint 34 // bti c
8100
+ .section __patchable_function_entries
8101
+ .align 3
8102
+ .8byte .LPFE92
8103
+ .text
8104
+.LPFE92:
8105
+ nop
8106
+ nop
8107
+ hint 25 // paciasp
69168108 stp x29, x30, [sp, -32]!
6917
- add x29, sp, 0
8109
+ mov x29, sp
69188110 stp x19, x20, [sp, 16]
69198111 adrp x19, .LANCHOR0
69208112 add x19, x19, :lo12:.LANCHOR0
....@@ -6923,7 +8115,7 @@
69238115 add x1, x0, x20
69248116 ldr x2, [x1, 8]
69258117 ldrh w1, [x0, x20]
6926
- add x0, x19, 3640
8118
+ add x0, x19, 3632
69278119 bl FtlMapWritePage
69288120 ldr x0, [x19, 2608]
69298121 add x0, x0, x20
....@@ -6933,1687 +8125,1772 @@
69338125 mov w0, 0
69348126 ldp x19, x20, [sp, 16]
69358127 ldp x29, x30, [sp], 32
8128
+ hint 29 // autiasp
69368129 ret
69378130 .size flush_l2p_region, .-flush_l2p_region
69388131 .align 2
69398132 .global log2phys
69408133 .type log2phys, %function
69418134 log2phys:
8135
+ hint 34 // bti c
8136
+ .section __patchable_function_entries
8137
+ .align 3
8138
+ .8byte .LPFE93
8139
+ .text
8140
+.LPFE93:
8141
+ nop
8142
+ nop
8143
+ hint 25 // paciasp
69428144 stp x29, x30, [sp, -80]!
6943
- add x29, sp, 0
8145
+ mov x29, sp
69448146 stp x19, x20, [sp, 16]
69458147 adrp x20, .LANCHOR0
6946
- stp x25, x26, [sp, 64]
6947
- mov w25, w0
6948
- add x0, x20, :lo12:.LANCHOR0
8148
+ add x20, x20, :lo12:.LANCHOR0
69498149 stp x21, x22, [sp, 32]
6950
- stp x23, x24, [sp, 48]
8150
+ mov w21, w0
69518151 mov x22, x1
8152
+ ldrh w19, [x20, 312]
8153
+ stp x23, x24, [sp, 48]
69528154 mov w23, w2
6953
- ldrh w24, [x0, 312]
6954
- ldr w0, [x0, 2624]
6955
- cmp w25, w0
6956
- bcc .L984
8155
+ add w0, w19, 7
8156
+ mov x19, 1
8157
+ str x25, [sp, 64]
8158
+ lsr w24, w21, w0
8159
+ and w24, w24, 65535
8160
+ lsl x19, x19, x0
8161
+ ldr w0, [x20, 2624]
8162
+ sub w19, w19, #1
8163
+ and w19, w19, w21
8164
+ and w19, w19, 65535
8165
+ cmp w0, w21
8166
+ bhi .L1025
69578167 adrp x1, .LANCHOR1
69588168 add x1, x1, :lo12:.LANCHOR1
6959
- adrp x0, .LC8
8169
+ add x1, x1, 410
69608170 mov w2, 820
6961
- add x1, x1, 488
6962
- add x0, x0, :lo12:.LC8
8171
+ adrp x0, .LC9
8172
+ add x0, x0, :lo12:.LC9
69638173 bl sftl_printk
6964
-.L984:
6965
- add x0, x20, :lo12:.LANCHOR0
6966
- ldr w1, [x0, 2624]
6967
- cmp w25, w1
6968
- bcs .L985
6969
- add w24, w24, 7
6970
- ldrh w1, [x0, 342]
6971
- ldr x2, [x0, 2608]
8174
+ ldr w0, [x20, 2624]
8175
+ cmp w0, w21
8176
+ bhi .L1025
8177
+ mov w0, -1
8178
+ cbnz w23, .L1024
8179
+ str w0, [x22]
8180
+.L1024:
8181
+ ldp x19, x20, [sp, 16]
8182
+ ldp x21, x22, [sp, 32]
8183
+ ldp x23, x24, [sp, 48]
8184
+ ldr x25, [sp, 64]
8185
+ ldp x29, x30, [sp], 80
8186
+ hint 29 // autiasp
8187
+ ret
8188
+.L1031:
8189
+ add x0, x0, 1
8190
+ lsl x3, x0, 4
8191
+ ldrh w3, [x1, x3]
8192
+ cmp w3, w24
8193
+ bne .L1027
8194
+.L1028:
8195
+ ldr x0, [x20, 2608]
8196
+ ubfiz x2, x25, 4, 16
8197
+ ubfiz x19, x19, 2, 16
8198
+ add x0, x0, x2
8199
+ ldr x0, [x0, 8]
8200
+ cbnz w23, .L1029
8201
+ ldr w0, [x0, x19]
8202
+ str w0, [x22]
8203
+.L1030:
8204
+ ldr x0, [x20, 2608]
8205
+ add x0, x0, x2
8206
+ ldr w1, [x0, 4]
8207
+ cmn w1, #1
8208
+ beq .L1034
8209
+ add w1, w1, 1
8210
+ str w1, [x0, 4]
8211
+.L1034:
8212
+ mov w0, 0
8213
+ b .L1024
8214
+.L1029:
8215
+ ldr w1, [x22]
8216
+ str w1, [x0, x19]
8217
+ strh w24, [x20, 2616]
8218
+ ldr x1, [x20, 2608]
8219
+ add x1, x1, x2
8220
+ ldr w0, [x1, 4]
8221
+ orr w0, w0, -2147483648
8222
+ str w0, [x1, 4]
8223
+ b .L1030
8224
+.L1025:
8225
+ ldr x1, [x20, 2608]
69728226 mov x0, 0
6973
- lsr w21, w25, w24
6974
- and w21, w21, 65535
6975
-.L986:
6976
- and x19, x0, 65535
6977
- cmp w19, w1
6978
- bcc .L991
8227
+ ldrh w2, [x20, 342]
8228
+ sub x1, x1, #16
8229
+.L1027:
8230
+ and w25, w0, 65535
8231
+ cmp w2, w0, uxth
8232
+ bhi .L1031
69798233 bl select_l2p_ram_region
6980
- and x19, x0, 65535
6981
- add x2, x20, :lo12:.LANCHOR0
6982
- ubfiz x1, x19, 4, 16
6983
- mov w26, w0
6984
- ldr x2, [x2, 2608]
8234
+ and w25, w0, 65535
8235
+ mov w21, w25
8236
+ ldr x2, [x20, 2608]
8237
+ ubfiz x1, x21, 4, 16
69858238 add x3, x2, x1
69868239 ldrh w2, [x2, x1]
69878240 mov w1, 65535
69888241 cmp w2, w1
6989
- beq .L992
8242
+ beq .L1032
69908243 ldr w1, [x3, 4]
6991
- tbz w1, #31, .L992
8244
+ tbz w1, #31, .L1032
69928245 bl flush_l2p_region
6993
-.L992:
6994
- mov w1, w26
6995
- mov w0, w21
8246
+.L1032:
8247
+ mov w1, w21
8248
+ mov w0, w24
69968249 bl load_l2p_region
6997
- b .L988
6998
-.L985:
6999
- mov w0, -1
7000
- cbnz w23, .L983
7001
- str w0, [x22]
7002
-.L983:
7003
- ldp x19, x20, [sp, 16]
7004
- ldp x21, x22, [sp, 32]
7005
- ldp x23, x24, [sp, 48]
7006
- ldp x25, x26, [sp, 64]
7007
- ldp x29, x30, [sp], 80
7008
- ret
7009
-.L991:
7010
- add x0, x0, 1
7011
- add x3, x2, x0, lsl 4
7012
- ldrh w3, [x3, -16]
7013
- cmp w3, w21
7014
- bne .L986
7015
-.L988:
7016
- mov x0, 1
7017
- lsl x0, x0, x24
7018
- sub w0, w0, #1
7019
- and w0, w0, w25
7020
- and x0, x0, 65535
7021
- cbnz w23, .L989
7022
- add x1, x20, :lo12:.LANCHOR0
7023
- ldr x1, [x1, 2608]
7024
- add x1, x1, x19, lsl 4
7025
- ldr x1, [x1, 8]
7026
- ldr w0, [x1, x0, lsl 2]
7027
- str w0, [x22]
7028
-.L990:
7029
- add x20, x20, :lo12:.LANCHOR0
7030
- ldr x0, [x20, 2608]
7031
- add x19, x0, x19, lsl 4
7032
- ldr w0, [x19, 4]
7033
- cmn w0, #1
7034
- beq .L994
7035
- add w0, w0, 1
7036
- str w0, [x19, 4]
7037
-.L994:
7038
- mov w0, 0
7039
- b .L983
7040
-.L989:
7041
- add x2, x20, :lo12:.LANCHOR0
7042
- lsl x1, x19, 4
7043
- ldr w4, [x22]
7044
- ldr x3, [x2, 2608]
7045
- add x3, x3, x1
7046
- ldr x3, [x3, 8]
7047
- str w4, [x3, x0, lsl 2]
7048
- strh w21, [x2, 2616]
7049
- ldr x0, [x2, 2608]
7050
- add x0, x0, x1
7051
- ldr w1, [x0, 4]
7052
- orr w1, w1, -2147483648
7053
- str w1, [x0, 4]
7054
- b .L990
8250
+ b .L1028
70558251 .size log2phys, .-log2phys
70568252 .align 2
70578253 .global FtlWriteDump_data
70588254 .type FtlWriteDump_data, %function
70598255 FtlWriteDump_data:
7060
- stp x29, x30, [sp, -128]!
7061
- add x29, sp, 0
8256
+ hint 34 // bti c
8257
+ .section __patchable_function_entries
8258
+ .align 3
8259
+ .8byte .LPFE94
8260
+ .text
8261
+.LPFE94:
8262
+ nop
8263
+ nop
8264
+ hint 25 // paciasp
8265
+ stp x29, x30, [sp, -112]!
8266
+ mrs x0, sp_el0
8267
+ mov x29, sp
70628268 stp x19, x20, [sp, 16]
70638269 adrp x19, .LANCHOR0
7064
- add x20, x19, :lo12:.LANCHOR0
8270
+ add x19, x19, :lo12:.LANCHOR0
70658271 stp x21, x22, [sp, 32]
7066
- stp x23, x24, [sp, 48]
7067
- adrp x22, __stack_chk_guard
7068
- stp x25, x26, [sp, 64]
7069
- add x0, x22, :lo12:__stack_chk_guard
7070
- ldrh w2, [x20, 28]
7071
- ldr x1, [x0]
7072
- str x1, [x29, 120]
7073
- mov x1,0
7074
- cbz w2, .L998
7075
- ldrb w1, [x20, 32]
7076
- cbnz w1, .L998
7077
- ldrb w1, [x20, 31]
7078
- ldrh w3, [x20, 306]
8272
+ str x23, [sp, 48]
8273
+ ldrh w2, [x19, 28]
8274
+ ldr x1, [x0, 1376]
8275
+ str x1, [sp, 104]
8276
+ mov x1, 0
8277
+ cbz w2, .L1038
8278
+ ldrb w1, [x19, 32]
8279
+ cbnz w1, .L1038
8280
+ ldrb w1, [x19, 31]
8281
+ ldrh w3, [x19, 306]
70798282 mul w1, w1, w3
70808283 cmp w2, w1
7081
- beq .L998
7082
- ldrb w0, [x20, 34]
7083
- cbnz w0, .L997
7084
- ldr w23, [x20, 2624]
7085
- add x1, x29, 84
7086
- ldrh w25, [x20, 236]
8284
+ beq .L1038
8285
+ ldrb w0, [x19, 34]
8286
+ cbnz w0, .L1037
8287
+ ldr w22, [x19, 2624]
8288
+ add x1, sp, 68
8289
+ ldrh w21, [x19, 236]
70878290 mov w2, 0
7088
- sub w23, w23, #1
7089
- mov w0, w23
8291
+ sub w22, w22, #1
8292
+ mov w0, w22
70908293 bl log2phys
7091
- ldr x21, [x20, 3520]
7092
- ldr w0, [x29, 84]
7093
- ldr x1, [x20, 3456]
7094
- str w0, [x29, 92]
8294
+ ldr x20, [x19, 3512]
8295
+ str w22, [sp, 96]
8296
+ ldr w0, [sp, 68]
8297
+ ldr x1, [x19, 3448]
8298
+ str w0, [sp, 76]
8299
+ stp x1, x20, [sp, 80]
8300
+ str wzr, [x20, 4]
70958301 cmn w0, #1
7096
- stp x1, x21, [x29, 96]
7097
- str w23, [x29, 112]
7098
- str wzr, [x21, 4]
7099
- beq .L1000
8302
+ beq .L1040
8303
+ add x0, sp, 72
71008304 mov w2, 0
71018305 mov w1, 1
7102
- add x0, x29, 88
71038306 bl FlashReadPages
7104
-.L1001:
7105
- add x26, x19, :lo12:.LANCHOR0
7106
- lsl w25, w25, 2
7107
- add x20, x26, 24
8307
+.L1041:
8308
+ lsl w21, w21, 2
8309
+ add x23, x19, 24
71088310 mov w0, -3947
7109
- mov w24, 0
7110
- strh w0, [x21]
7111
-.L1002:
7112
- cmp w25, w24
7113
- bne .L1006
7114
-.L1003:
7115
- add x19, x19, :lo12:.LANCHOR0
8311
+ strh w0, [x20]
8312
+.L1042:
8313
+ cbnz w21, .L1046
8314
+.L1043:
71168315 mov w0, 1
71178316 strb w0, [x19, 34]
7118
-.L997:
7119
- add x22, x22, :lo12:__stack_chk_guard
7120
- ldr x1, [x29, 120]
7121
- ldr x0, [x22]
7122
- eor x0, x1, x0
7123
- cbz x0, .L1008
8317
+.L1037:
8318
+ mrs x0, sp_el0
8319
+ ldr x1, [sp, 104]
8320
+ ldr x2, [x0, 1376]
8321
+ subs x1, x1, x2
8322
+ mov x2, 0
8323
+ beq .L1048
71248324 bl __stack_chk_fail
7125
-.L1000:
7126
- ldrh w2, [x20, 314]
8325
+.L1040:
8326
+ ldrh w2, [x19, 314]
71278327 mov w1, 255
7128
- ldr x0, [x20, 3456]
8328
+ ldr x0, [x19, 3448]
71298329 bl ftl_memset
7130
- b .L1001
7131
-.L1006:
7132
- ldrh w0, [x20, 4]
7133
- cbz w0, .L1003
7134
- ldr w0, [x29, 92]
7135
- add w24, w24, 1
7136
- stp w23, w0, [x21, 8]
7137
- ldrh w0, [x20]
7138
- strh w0, [x21, 2]
7139
- mov x0, x20
8330
+ b .L1041
8331
+.L1046:
8332
+ ldrh w0, [x23, 4]
8333
+ cbz w0, .L1043
8334
+ ldr w0, [sp, 76]
8335
+ sub w21, w21, #1
8336
+ stp w22, w0, [x20, 8]
8337
+ ldrh w0, [x23]
8338
+ strh w0, [x20, 2]
8339
+ mov x0, x23
71408340 bl get_new_active_ppa
7141
- str w0, [x29, 92]
7142
- ldr w0, [x26, 2664]
8341
+ str w0, [sp, 76]
8342
+ ldr w0, [x19, 2664]
71438343 mov w3, 0
7144
- str w0, [x21, 4]
8344
+ str w0, [x20, 4]
71458345 mov w2, 0
7146
- add w0, w0, 1
8346
+ cmn w0, #2
71478347 mov w1, 1
7148
- cmn w0, #1
7149
- csel w0, w0, wzr, ne
7150
- str w0, [x26, 2664]
7151
- add x0, x29, 88
8348
+ csinc w0, wzr, w0, eq
8349
+ str w0, [x19, 2664]
8350
+ add x0, sp, 72
71528351 bl FlashProgPages
7153
- ldrh w0, [x20]
8352
+ ldrh w0, [x23]
71548353 bl decrement_vpc_count
7155
- b .L1002
7156
-.L998:
7157
- add x19, x19, :lo12:.LANCHOR0
8354
+ b .L1042
8355
+.L1038:
71588356 strb wzr, [x19, 34]
7159
- b .L997
7160
-.L1008:
8357
+ b .L1037
8358
+.L1048:
71618359 ldp x19, x20, [sp, 16]
71628360 ldp x21, x22, [sp, 32]
7163
- ldp x23, x24, [sp, 48]
7164
- ldp x25, x26, [sp, 64]
7165
- ldp x29, x30, [sp], 128
8361
+ ldr x23, [sp, 48]
8362
+ ldp x29, x30, [sp], 112
8363
+ hint 29 // autiasp
71668364 ret
71678365 .size FtlWriteDump_data, .-FtlWriteDump_data
71688366 .align 2
71698367 .global FtlReUsePrevPpa
71708368 .type FtlReUsePrevPpa, %function
71718369 FtlReUsePrevPpa:
7172
- stp x29, x30, [sp, -80]!
7173
- add x29, sp, 0
8370
+ hint 34 // bti c
8371
+ .section __patchable_function_entries
8372
+ .align 3
8373
+ .8byte .LPFE95
8374
+ .text
8375
+.LPFE95:
8376
+ nop
8377
+ nop
8378
+ hint 25 // paciasp
8379
+ stp x29, x30, [sp, -64]!
8380
+ mov x29, sp
8381
+ stp x19, x20, [sp, 16]
8382
+ adrp x19, .LANCHOR0
8383
+ add x19, x19, :lo12:.LANCHOR0
71748384 stp x21, x22, [sp, 32]
71758385 mov w21, w0
7176
- stp x19, x20, [sp, 16]
7177
- lsr w0, w1, 10
7178
- str w1, [x29, 76]
7179
- adrp x22, .LANCHOR0
7180
- str x23, [sp, 48]
8386
+ ubfx x0, x1, 10, 16
8387
+ str w1, [sp, 60]
71818388 bl P2V_block_in_plane
7182
- add x2, x22, :lo12:.LANCHOR0
7183
- and w0, w0, 65535
7184
- ubfiz x20, x0, 1, 16
7185
- ldr x3, [x2, 72]
7186
- ldrh w1, [x3, x20]
7187
- cbnz w1, .L1017
7188
- ldr x19, [x2, 2592]
7189
- cbz x19, .L1018
7190
- ldrh w3, [x2, 228]
7191
- mov x4, -6148914691236517206
7192
- ldr x2, [x2, 2560]
7193
- movk x4, 0xaaab, lsl 0
7194
- mov w5, 65535
7195
- sub x19, x19, x2
7196
- asr x19, x19, 1
7197
- mul x19, x19, x4
7198
- mov w4, 6
7199
- and w19, w19, 65535
7200
-.L1019:
7201
- cmp w1, w3
7202
- beq .L1018
7203
- cmp w19, w0
7204
- bne .L1020
7205
- add x23, x22, :lo12:.LANCHOR0
7206
- mov w1, w19
7207
- add x0, x23, 2592
8389
+ and w4, w0, 65535
8390
+ mov w22, w4
8391
+ ldr x0, [x19, 72]
8392
+ ubfiz x20, x22, 1, 16
8393
+ ldrh w3, [x0, x20]
8394
+ cbnz w3, .L1057
8395
+ ldr x2, [x19, 2592]
8396
+ cbz x2, .L1058
8397
+ ldr x0, [x19, 2560]
8398
+ mov x5, -6148914691236517206
8399
+ movk x5, 0xaaab, lsl 0
8400
+ ldrh w1, [x19, 228]
8401
+ sub x2, x2, x0
8402
+ mov w6, 65535
8403
+ asr x2, x2, 1
8404
+ mul x2, x2, x5
8405
+ mov w5, 6
8406
+ and w2, w2, 65535
8407
+.L1059:
8408
+ cmp w3, w1
8409
+ beq .L1058
8410
+ cmp w2, w4
8411
+ bne .L1060
8412
+ mov w1, w22
8413
+ add x0, x19, 2592
72088414 bl List_remove_node
7209
- ldrh w0, [x23, 228]
7210
- cbnz w0, .L1021
8415
+ ldrh w0, [x19, 228]
8416
+ cbnz w0, .L1061
72118417 adrp x1, .LANCHOR1
72128418 add x1, x1, :lo12:.LANCHOR1
7213
- adrp x0, .LC8
8419
+ adrp x0, .LC9
8420
+ add x1, x1, 419
8421
+ add x0, x0, :lo12:.LC9
72148422 mov w2, 1742
7215
- add x1, x1, 504
7216
- add x0, x0, :lo12:.LC8
72178423 bl sftl_printk
7218
-.L1021:
7219
- add x22, x22, :lo12:.LANCHOR0
7220
- ldrh w0, [x22, 228]
8424
+.L1061:
8425
+ ldrh w0, [x19, 228]
72218426 sub w0, w0, #1
7222
- strh w0, [x22, 228]
7223
- mov w0, w19
8427
+ strh w0, [x19, 228]
8428
+ mov w0, w22
72248429 bl INSERT_DATA_LIST
7225
- ldr x1, [x22, 72]
8430
+ ldr x1, [x19, 72]
72268431 ldrh w0, [x1, x20]
72278432 add w0, w0, 1
72288433 strh w0, [x1, x20]
7229
-.L1018:
7230
- add x1, x29, 76
7231
- mov w2, 1
8434
+.L1058:
8435
+ add x1, sp, 60
72328436 mov w0, w21
8437
+ mov w2, 1
72338438 bl log2phys
72348439 ldp x19, x20, [sp, 16]
72358440 ldp x21, x22, [sp, 32]
7236
- ldr x23, [sp, 48]
7237
- ldp x29, x30, [sp], 80
8441
+ ldp x29, x30, [sp], 64
8442
+ hint 29 // autiasp
72388443 ret
7239
-.L1020:
7240
- umull x19, w19, w4
7241
- ldrh w19, [x2, x19]
7242
- cmp w19, w5
7243
- beq .L1018
7244
- add w1, w1, 1
7245
- and w1, w1, 65535
7246
- b .L1019
7247
-.L1017:
7248
- add w1, w1, 1
7249
- strh w1, [x3, x20]
7250
- b .L1018
8444
+.L1060:
8445
+ umull x2, w2, w5
8446
+ ldrh w2, [x0, x2]
8447
+ cmp w2, w6
8448
+ beq .L1058
8449
+ add w3, w3, 1
8450
+ and w3, w3, 65535
8451
+ b .L1059
8452
+.L1057:
8453
+ add w3, w3, 1
8454
+ strh w3, [x0, x20]
8455
+ b .L1058
72518456 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa
8457
+ .section .rodata.str1.1
8458
+.LC110:
8459
+ .string "data prev_ppa = %x error...................\n"
8460
+.LC111:
8461
+ .string "spuer block %x vpn is 0\n "
8462
+ .text
72528463 .align 2
72538464 .global FtlRecoverySuperblock
72548465 .type FtlRecoverySuperblock, %function
72558466 FtlRecoverySuperblock:
8467
+ hint 34 // bti c
8468
+ .section __patchable_function_entries
8469
+ .align 3
8470
+ .8byte .LPFE96
8471
+ .text
8472
+.LPFE96:
8473
+ nop
8474
+ nop
8475
+ hint 25 // paciasp
72568476 stp x29, x30, [sp, -192]!
7257
- add x29, sp, 0
8477
+ mov x29, sp
72588478 stp x19, x20, [sp, 16]
72598479 mov x20, x0
8480
+ mrs x0, sp_el0
72608481 stp x21, x22, [sp, 32]
7261
- adrp x0, __stack_chk_guard
72628482 stp x23, x24, [sp, 48]
7263
- add x1, x0, :lo12:__stack_chk_guard
72648483 stp x25, x26, [sp, 64]
72658484 stp x27, x28, [sp, 80]
7266
- str x0, [x29, 120]
7267
- ldr x2, [x1]
7268
- str x2, [x29, 184]
7269
- mov x2,0
8485
+ ldr x1, [x0, 1376]
8486
+ str x1, [sp, 184]
8487
+ mov x1, 0
8488
+ ldrh w0, [x20]
72708489 mov w1, 65535
7271
- ldrh w2, [x20]
7272
- cmp w2, w1
7273
- beq .L1029
7274
- ldrb w0, [x20, 6]
8490
+ cmp w0, w1
8491
+ beq .L1069
72758492 adrp x19, .LANCHOR0
7276
- str w0, [x29, 156]
7277
- add x0, x19, :lo12:.LANCHOR0
7278
- ldrh w26, [x20, 2]
7279
- ldrh w0, [x0, 306]
7280
- cmp w0, w26
7281
- bne .L1030
8493
+ add x19, x19, :lo12:.LANCHOR0
8494
+ ldrb w0, [x20, 6]
8495
+ ldrh w24, [x20, 2]
8496
+ str w0, [sp, 152]
8497
+ ldrh w0, [x19, 306]
8498
+ cmp w0, w24
8499
+ bne .L1070
8500
+ strh w0, [x20, 2]
72828501 strh wzr, [x20, 4]
7283
-.L1156:
8502
+.L1191:
72848503 strb wzr, [x20, 6]
7285
-.L1029:
7286
- ldr x1, [x29, 120]
7287
- mov w0, 0
7288
- add x1, x1, :lo12:__stack_chk_guard
7289
- ldr x2, [x29, 184]
7290
- ldr x1, [x1]
7291
- eor x1, x2, x1
7292
- cbz x1, .L1098
8504
+.L1069:
8505
+ mrs x0, sp_el0
8506
+ ldr x1, [sp, 184]
8507
+ ldr x2, [x0, 1376]
8508
+ subs x1, x1, x2
8509
+ mov x2, 0
8510
+ beq .L1135
72938511 bl __stack_chk_fail
7294
-.L1030:
8512
+.L1070:
72958513 ldrh w0, [x20, 16]
72968514 mov w21, 0
7297
-.L1031:
8515
+.L1071:
72988516 cmp w0, w1
7299
- beq .L1032
8517
+ beq .L1072
73008518 mov w1, 1
73018519 bl FtlGetLastWrittenPage
7302
- mov w23, w0
8520
+ mov w26, w0
73038521 cmn w0, #1
7304
- beq .L1033
7305
- add x0, x19, :lo12:.LANCHOR0
7306
- add x28, x20, 16
7307
- mov x4, x28
8522
+ beq .L1073
8523
+ ldrh w6, [x19, 236]
8524
+ add x9, x20, 16
8525
+ ldrh w7, [x19, 314]
8526
+ mov x1, 0
8527
+ ldrh w8, [x19, 316]
73088528 mov w22, 0
73098529 mov w10, 65535
7310
- mov w6, 4
7311
- ldrh w3, [x0, 236]
7312
- ldrh w8, [x0, 314]
7313
- add x3, x3, 8
7314
- ldrh w9, [x0, 316]
7315
- add x3, x20, x3, lsl 1
7316
-.L1034:
7317
- cmp x3, x4
7318
- bne .L1038
7319
- add x24, x19, :lo12:.LANCHOR0
8530
+ mov w4, 4
8531
+.L1074:
8532
+ ldr x0, [x19, 3424]
8533
+ cmp w6, w1, uxth
8534
+ bhi .L1078
73208535 mov w2, 0
73218536 mov w1, w22
7322
- ldr x0, [x24, 3432]
73238537 bl FlashReadPages
7324
- ldr w21, [x24, 2664]
7325
- ldr x4, [x24, 3432]
7326
- and w9, w23, 65535
8538
+ ldr w21, [x19, 2664]
8539
+ ldr x28, [x19, 3424]
8540
+ and w4, w26, 65535
73278541 sub w21, w21, #1
7328
- mov w7, 65535
7329
- mov x6, x4
7330
- mov w3, 0
7331
-.L1039:
7332
- cmp w22, w3
7333
- bne .L1044
7334
- add w22, w23, 1
7335
- ldr w0, [x4, 4]
7336
- and w22, w22, 65535
7337
-.L1151:
7338
- lsr w0, w0, 10
8542
+ mov w25, 65535
8543
+ mov x2, x28
8544
+ mov w27, 0
8545
+.L1079:
8546
+ cmp w22, w27
8547
+ bne .L1084
8548
+ add w23, w26, 1
8549
+ ldr w0, [x28, 4]
8550
+ and w23, w23, 65535
8551
+.L1186:
8552
+ ubfx x0, x0, 10, 16
73398553 bl P2V_plane
7340
- and w27, w0, 65535
7341
- add x0, x19, :lo12:.LANCHOR0
7342
- ldrh w0, [x0, 306]
7343
- cmp w0, w22
7344
- bne .L1046
7345
- strh w22, [x20, 2]
7346
- strb wzr, [x20, 6]
8554
+ and w22, w0, 65535
8555
+ ldrh w0, [x19, 306]
8556
+ cmp w0, w23
8557
+ bne .L1086
8558
+ strh w23, [x20, 2]
73478559 strh wzr, [x20, 4]
7348
-.L1046:
7349
- ldr w0, [x29, 156]
7350
- cmp w22, w26
7351
- ccmp w27, w0, 0, eq
7352
- bne .L1047
7353
-.L1157:
7354
- mov w2, w27
7355
- mov w1, w22
8560
+ strb wzr, [x20, 6]
8561
+.L1086:
8562
+ ldr w0, [sp, 152]
8563
+ cmp w23, w24
8564
+ ccmp w22, w0, 0, eq
8565
+ bne .L1087
8566
+.L1192:
8567
+ mov w2, w22
8568
+ mov w1, w23
73568569 mov x0, x20
73578570 bl ftl_sb_update_avl_pages
7358
- b .L1029
7359
-.L1032:
7360
- add w21, w21, 1
7361
- and w21, w21, 65535
7362
- add x0, x20, x21, sxtw 1
8571
+ b .L1069
8572
+.L1072:
8573
+ add w0, w21, 1
8574
+ and w21, w0, 65535
8575
+ add x0, x20, w0, uxth 1
73638576 ldrh w0, [x0, 16]
7364
- b .L1031
7365
-.L1033:
7366
- cbz w26, .L1035
8577
+ b .L1071
8578
+.L1073:
8579
+ cbz w24, .L1075
73678580 adrp x1, .LANCHOR1
73688581 add x1, x1, :lo12:.LANCHOR1
7369
- adrp x0, .LC8
8582
+ adrp x0, .LC9
8583
+ add x1, x1, 435
8584
+ add x0, x0, :lo12:.LC9
73708585 mov w2, 1809
7371
- add x1, x1, 520
7372
- add x0, x0, :lo12:.LC8
73738586 bl sftl_printk
7374
-.L1035:
7375
- ldr w0, [x29, 156]
8587
+.L1075:
8588
+ ldr w0, [sp, 152]
73768589 cmp w0, 0
73778590 ccmp w21, w0, 4, ne
7378
- beq .L1036
8591
+ beq .L1076
73798592 adrp x1, .LANCHOR1
73808593 add x1, x1, :lo12:.LANCHOR1
7381
- adrp x0, .LC8
8594
+ adrp x0, .LC9
8595
+ add x1, x1, 435
8596
+ add x0, x0, :lo12:.LC9
73828597 mov w2, 1810
7383
- add x1, x1, 520
7384
- add x0, x0, :lo12:.LC8
73858598 bl sftl_printk
7386
-.L1036:
8599
+.L1076:
73878600 strh wzr, [x20, 2]
7388
- b .L1156
7389
-.L1038:
7390
- ldrh w1, [x4]
7391
- cmp w1, w10
7392
- beq .L1037
7393
- ldr x5, [x0, 3432]
7394
- ubfiz x7, x22, 5, 16
7395
- orr w1, w23, w1, lsl 10
7396
- add x5, x5, x7
7397
- str w1, [x5, 4]
7398
- mul w1, w22, w8
7399
- ldr x2, [x0, 3432]
7400
- ldr x5, [x0, 3256]
7401
- sdiv w1, w1, w6
7402
- add x2, x2, x7
7403
- add x1, x5, x1, sxtw 2
7404
- str x1, [x2, 8]
7405
- mul w1, w22, w9
7406
- ldr x5, [x0, 3264]
8601
+ b .L1191
8602
+.L1078:
8603
+ ldrh w3, [x9, x1, lsl 1]
8604
+ cmp w3, w10
8605
+ beq .L1077
8606
+ ubfiz x5, x22, 5, 16
8607
+ orr w3, w26, w3, lsl 10
8608
+ add x0, x0, x5
8609
+ str w3, [x0, 4]
8610
+ mul w0, w22, w7
8611
+ ldr x2, [x19, 3424]
8612
+ sdiv w0, w0, w4
8613
+ ldr x3, [x19, 3256]
8614
+ add x2, x2, x5
8615
+ add x0, x3, w0, sxtw 2
8616
+ str x0, [x2, 8]
8617
+ mul w0, w22, w8
74078618 add w22, w22, 1
8619
+ ldr x3, [x19, 3264]
74088620 and w22, w22, 65535
7409
- sdiv w1, w1, w6
7410
- add x1, x5, x1, sxtw 2
7411
- str x1, [x2, 16]
7412
-.L1037:
7413
- add x4, x4, 2
7414
- b .L1034
7415
-.L1044:
7416
- ldr w0, [x6]
7417
- cbnz w0, .L1040
7418
- ldr x8, [x6, 16]
7419
- ldr w5, [x8, 4]
7420
- cmn w5, #1
7421
- beq .L1041
7422
- ldr w1, [x24, 2664]
7423
- mov w0, w5
8621
+ sdiv w0, w0, w4
8622
+ add x0, x3, w0, sxtw 2
8623
+ str x0, [x2, 16]
8624
+.L1077:
8625
+ add x1, x1, 1
8626
+ b .L1074
8627
+.L1084:
8628
+ ldr w0, [x2]
8629
+ cbnz w0, .L1080
8630
+ ldr x3, [x2, 16]
8631
+ ldr w23, [x3, 4]
8632
+ cmn w23, #1
8633
+ beq .L1081
8634
+ ldr w1, [x19, 2664]
8635
+ mov w0, w23
8636
+ stp x3, x2, [sp, 96]
8637
+ str w4, [sp, 112]
74248638 bl ftl_cmp_data_ver
7425
- cbz w0, .L1041
7426
- add w5, w5, 1
7427
- str w5, [x24, 2664]
7428
-.L1041:
7429
- ldr w0, [x8]
7430
- cmn w0, #1
7431
- bne .L1043
7432
- ubfiz x3, x3, 5, 16
7433
- and w22, w23, 65535
7434
- add x3, x4, x3
7435
- ldr w0, [x3, 4]
7436
- b .L1151
7437
-.L1040:
7438
- mov w7, w9
7439
-.L1043:
7440
- add w3, w3, 1
7441
- add x6, x6, 32
7442
- and w3, w3, 65535
7443
- b .L1039
7444
-.L1047:
7445
- mov w0, 65535
7446
- cmp w7, w0
7447
- bne .L1048
7448
- ldrb w0, [x20, 8]
7449
- cbnz w0, .L1049
7450
-.L1048:
7451
- add x0, x19, :lo12:.LANCHOR0
7452
- and w3, w23, 65535
7453
- ldr w1, [x0, 3716]
7454
- cmn w1, #1
7455
- bne .L1050
7456
- str w21, [x0, 3716]
7457
-.L1050:
7458
- add w0, w26, 7
7459
- cmp w0, w23, uxth
7460
- bge .L1099
7461
- sub w24, w3, #7
7462
- and w24, w24, 65535
7463
-.L1051:
7464
- add x25, x19, :lo12:.LANCHOR0
7465
- mov w4, 65535
7466
-.L1052:
7467
- cmp w24, w3
7468
- bhi .L1059
7469
- ldrh w0, [x25, 236]
7470
- mov x1, x28
7471
- mov w23, 0
7472
- add x0, x0, 8
7473
- add x0, x20, x0, lsl 1
7474
- b .L1060
7475
-.L1099:
7476
- mov w24, w26
7477
- b .L1051
7478
-.L1054:
7479
- ldrh w2, [x1]
7480
- cmp w2, w4
7481
- beq .L1053
7482
- ldr x5, [x25, 3432]
7483
- ubfiz x6, x23, 5, 16
8639
+ ldr w4, [sp, 112]
8640
+ ldp x3, x2, [sp, 96]
8641
+ cbz w0, .L1081
74848642 add w23, w23, 1
7485
- orr w2, w24, w2, lsl 10
7486
- add x5, x5, x6
7487
- and w23, w23, 65535
7488
- str w2, [x5, 4]
7489
-.L1053:
7490
- add x1, x1, 2
7491
-.L1060:
7492
- cmp x0, x1
7493
- bne .L1054
7494
- ldr x0, [x25, 3432]
7495
- mov w1, w23
7496
- str w4, [x29, 136]
7497
- mov w2, 0
7498
- str w3, [x29, 144]
7499
- ubfiz x23, x23, 5, 16
7500
- add x23, x23, 16
7501
- bl FlashReadPages
7502
- ldr x1, [x25, 3432]
7503
- ldr w4, [x29, 136]
7504
- ldr w3, [x29, 144]
7505
- add x0, x1, 16
7506
- add x23, x1, x23
7507
-.L1055:
7508
- cmp x23, x0
7509
- bne .L1058
7510
- add w24, w24, 1
7511
- and w24, w24, 65535
7512
- b .L1052
7513
-.L1058:
7514
- ldr w1, [x0, -16]
7515
- cbnz w1, .L1049
7516
- ldr x1, [x0]
7517
- ldrh w2, [x1]
7518
- cmp w2, w4
7519
- beq .L1057
7520
- ldr w1, [x1, 4]
7521
- cmn w1, #1
7522
- beq .L1057
7523
- str w1, [x25, 3716]
7524
-.L1057:
7525
- add x0, x0, 32
7526
- b .L1055
7527
-.L1059:
7528
- add x0, x19, :lo12:.LANCHOR0
7529
- mov w1, -1
7530
- str w1, [x0, 3716]
7531
-.L1049:
7532
- add x19, x19, :lo12:.LANCHOR0
8643
+ str w23, [x19, 2664]
8644
+.L1081:
8645
+ ldr w0, [x3]
8646
+ cmn w0, #1
8647
+ bne .L1083
8648
+ ubfiz x27, x27, 5, 16
8649
+ and w23, w26, 65535
8650
+ add x27, x28, x27
8651
+ ldr w0, [x27, 4]
8652
+ b .L1186
8653
+.L1080:
8654
+ mov w25, w4
8655
+.L1083:
8656
+ add w27, w27, 1
8657
+ add x2, x2, 32
8658
+ and w27, w27, 65535
8659
+ b .L1079
8660
+.L1087:
8661
+ mov w0, 65535
8662
+ cmp w25, w0
8663
+ bne .L1088
8664
+ ldrb w0, [x20, 8]
8665
+ cbnz w0, .L1089
8666
+.L1088:
8667
+ ldr w0, [x19, 3708]
8668
+ and w27, w26, 65535
8669
+ cmn w0, #1
8670
+ bne .L1090
8671
+ str w21, [x19, 3708]
8672
+.L1090:
8673
+ add w0, w24, 7
8674
+ sub w25, w26, #7
8675
+ and w25, w25, 65535
8676
+ cmp w0, w26, uxth
8677
+ csel w25, w25, w24, lt
8678
+ add x4, x20, 16
8679
+ mov w28, 65535
8680
+.L1092:
8681
+ ldrh w3, [x19, 236]
8682
+ cmp w25, w27
8683
+ bls .L1137
8684
+ mov w0, -1
8685
+ str w0, [x19, 3708]
8686
+.L1089:
75338687 mov w0, 1
7534
- mov w24, w26
7535
- strh w0, [x19, 3752]
7536
- add x0, x19, 3760
7537
- str x0, [x29, 112]
7538
-.L1061:
7539
- ldrh w0, [x19, 236]
7540
- mov x1, x28
7541
- mov w23, 0
7542
- mov w4, 65535
7543
- add x0, x0, 8
7544
- add x0, x20, x0, lsl 1
7545
-.L1062:
7546
- cmp x0, x1
7547
- bne .L1064
7548
- ldr x0, [x19, 3432]
7549
- mov w1, w23
7550
- mov w2, 0
7551
- bl FlashReadPages
7552
- ubfiz x0, x23, 5, 16
7553
- str x0, [x29, 128]
8688
+ mov w27, w24
8689
+ strh w0, [x19, 3744]
75548690 adrp x0, .LANCHOR1
75558691 add x0, x0, :lo12:.LANCHOR1
7556
- add x0, x0, 520
7557
- mov x23, 0
7558
- str x0, [x29, 136]
7559
-.L1065:
7560
- ldr x0, [x29, 128]
7561
- cmp x0, x23
7562
- bne .L1092
7563
- add w24, w24, 1
7564
- ldrh w0, [x19, 306]
7565
- and w24, w24, 65535
7566
- cmp w0, w24
7567
- bne .L1061
7568
- ldrh w1, [x19, 236]
7569
- mov w0, 0
7570
- strh w24, [x20, 2]
7571
- mov w2, 65535
8692
+ add x0, x0, 435
8693
+ str x0, [sp, 120]
8694
+.L1100:
8695
+ ldrh w3, [x19, 236]
8696
+ add x4, x20, 16
8697
+ mov x1, 0
8698
+ mov w28, 0
8699
+ mov w5, 65535
8700
+.L1101:
8701
+ ldr x0, [x19, 3424]
8702
+ cmp w3, w1, uxth
8703
+ bhi .L1103
8704
+ mov w1, w28
8705
+ mov w2, 0
8706
+ bl FlashReadPages
8707
+ str xzr, [sp, 96]
8708
+ adrp x0, .LC111
8709
+ add x0, x0, :lo12:.LC111
8710
+ str x0, [sp, 128]
8711
+.L1104:
8712
+ ldrh w0, [sp, 96]
8713
+ cmp w28, w0, uxth
8714
+ bhi .L1131
8715
+ ldrh w1, [x19, 306]
8716
+ add w0, w27, 1
8717
+ and w27, w0, 65535
8718
+ cmp w1, w0, uxth
8719
+ bne .L1100
8720
+ ldrh w2, [x19, 236]
8721
+ add x3, x20, 14
8722
+ mov x0, 0
8723
+ mov w4, 65535
8724
+ strh w27, [x20, 2]
75728725 strh wzr, [x20, 4]
7573
-.L1093:
7574
- cmp w0, w1
7575
- beq .L1029
7576
- ldrh w3, [x28], 2
7577
- cmp w3, w2
7578
- beq .L1094
8726
+.L1132:
8727
+ cmp w2, w0, uxth
8728
+ bls .L1069
8729
+ add x1, x0, 1
8730
+ ldrh w5, [x3, x1, lsl 1]
8731
+ cmp w5, w4
8732
+ beq .L1138
75798733 strb w0, [x20, 6]
7580
- b .L1029
7581
-.L1064:
7582
- ldrh w2, [x1]
7583
- cmp w2, w4
7584
- beq .L1063
7585
- ldr x3, [x19, 3432]
7586
- ubfiz x5, x23, 5, 16
7587
- add w23, w23, 1
7588
- orr w2, w24, w2, lsl 10
7589
- add x3, x3, x5
7590
- and w23, w23, 65535
7591
- str w2, [x3, 4]
7592
-.L1063:
7593
- add x1, x1, 2
7594
- b .L1062
7595
-.L1092:
7596
- ldr x4, [x19, 3432]
7597
- add x4, x4, x23
7598
- ldr w5, [x4, 4]
7599
- str w5, [x29, 180]
7600
- lsr w0, w5, 10
8734
+ b .L1069
8735
+.L1094:
8736
+ ldrh w2, [x4, x1, lsl 1]
8737
+ cmp w2, w28
8738
+ beq .L1093
8739
+ ubfiz x5, x26, 5, 16
8740
+ add w26, w26, 1
8741
+ add x0, x0, x5
8742
+ and w26, w26, 65535
8743
+ orr w2, w25, w2, lsl 10
8744
+ str w2, [x0, 4]
8745
+.L1093:
8746
+ add x1, x1, 1
8747
+.L1099:
8748
+ ldr x0, [x19, 3424]
8749
+ cmp w3, w1, uxth
8750
+ bhi .L1094
8751
+ mov w1, w26
8752
+ mov w2, 0
8753
+ str x4, [sp, 96]
8754
+ bl FlashReadPages
8755
+ ldr x0, [x19, 3424]
8756
+ mov w1, 32
8757
+ ldr x4, [sp, 96]
8758
+ umaddl x1, w1, w26, x0
8759
+.L1095:
8760
+ cmp x1, x0
8761
+ bne .L1098
8762
+ add w25, w25, 1
8763
+ and w25, w25, 65535
8764
+ b .L1092
8765
+.L1137:
8766
+ mov x1, 0
8767
+ mov w26, 0
8768
+ b .L1099
8769
+.L1098:
8770
+ ldr w2, [x0]
8771
+ cbnz w2, .L1089
8772
+ ldr x2, [x0, 16]
8773
+ ldrh w3, [x2]
8774
+ cmp w3, w28
8775
+ beq .L1097
8776
+ ldr w2, [x2, 4]
8777
+ cmn w2, #1
8778
+ beq .L1097
8779
+ str w2, [x19, 3708]
8780
+.L1097:
8781
+ add x0, x0, 32
8782
+ b .L1095
8783
+.L1103:
8784
+ ldrh w2, [x4, x1, lsl 1]
8785
+ cmp w2, w5
8786
+ beq .L1102
8787
+ ubfiz x6, x28, 5, 16
8788
+ add w28, w28, 1
8789
+ add x0, x0, x6
8790
+ and w28, w28, 65535
8791
+ orr w2, w27, w2, lsl 10
8792
+ str w2, [x0, 4]
8793
+.L1102:
8794
+ add x1, x1, 1
8795
+ b .L1101
8796
+.L1131:
8797
+ ldr x0, [sp, 96]
8798
+ ldr x2, [x19, 3424]
8799
+ lsl x26, x0, 5
8800
+ add x1, x2, x0, lsl 5
8801
+ stp x1, x2, [sp, 104]
8802
+ ldr w25, [x1, 4]
8803
+ str w25, [sp, 180]
8804
+ cmp w27, w24
8805
+ bcc .L1105
8806
+ ubfx x0, x25, 10, 16
76018807 bl P2V_plane
8808
+ ldr w1, [sp, 152]
76028809 and w0, w0, 65535
7603
- cmp w24, w26
7604
- bcc .L1066
7605
- ldr w1, [x29, 156]
8810
+ cmp w27, w24
76068811 ccmp w1, w0, 0, eq
7607
- bhi .L1066
7608
- cmp w24, w22
7609
- ccmp w27, w0, 0, eq
7610
- beq .L1067
7611
- ldr w0, [x4]
8812
+ bhi .L1105
8813
+ cmp w27, w23
8814
+ ccmp w22, w0, 0, eq
8815
+ ldp x1, x2, [sp, 104]
8816
+ bne .L1106
8817
+ strh w23, [x20, 2]
8818
+ strb w22, [x20, 6]
8819
+ b .L1192
8820
+.L1106:
8821
+ ldr w0, [x2, x26]
76128822 cmn w0, #1
7613
- beq .L1068
7614
- ldr x3, [x4, 16]
8823
+ beq .L1107
8824
+ ldr x3, [x1, 16]
76158825 mov w0, 61589
7616
- ldrh w1, [x3]
7617
- cmp w1, w0
7618
- beq .L1069
8826
+ ldrh w25, [x3]
8827
+ cmp w25, w0
8828
+ beq .L1108
76198829 ldrh w0, [x20]
7620
-.L1153:
8830
+.L1188:
76218831 bl decrement_vpc_count
7622
- b .L1066
7623
-.L1069:
8832
+ b .L1105
8833
+.L1108:
76248834 ldr w21, [x3, 4]
76258835 cmn w21, #1
7626
- beq .L1070
8836
+ beq .L1110
76278837 ldr w1, [x19, 2664]
76288838 mov w0, w21
7629
- str x3, [x29, 144]
8839
+ str x3, [sp, 104]
76308840 bl ftl_cmp_data_ver
7631
- ldr x3, [x29, 144]
7632
- cbz w0, .L1070
8841
+ ldr x3, [sp, 104]
8842
+ cbz w0, .L1110
76338843 add w0, w21, 1
76348844 str w0, [x19, 2664]
7635
-.L1070:
7636
- ldrh w1, [x3]
7637
- mov w0, 61589
7638
- cmp w1, w0
7639
- beq .L1071
7640
- ldr x1, [x29, 136]
7641
- mov w2, 1961
7642
- str x3, [x29, 144]
7643
- adrp x0, .LC8
7644
- add x0, x0, :lo12:.LC8
7645
- bl sftl_printk
7646
- ldr x3, [x29, 144]
7647
-.L1071:
7648
- ldp w25, w0, [x3, 8]
7649
- add x1, x29, 176
7650
- str w0, [x29, 172]
7651
- mov w2, 0
7652
- mov w0, w25
7653
- bl log2phys
7654
- ldr w1, [x19, 3716]
7655
- ldr w3, [x29, 172]
7656
- cmn w1, #1
7657
- beq .L1072
7658
- mov w0, w21
7659
- bl ftl_cmp_data_ver
7660
- cbz w0, .L1072
7661
- cmn w3, #1
7662
- beq .L1073
7663
- ldr x0, [x19, 3432]
7664
- mov w2, 0
7665
- mov w1, 1
7666
- add x0, x0, x23
7667
- ldr x4, [x0, 16]
7668
- str w3, [x0, 4]
7669
- str x4, [x29, 144]
7670
- ldr x0, [x19, 3432]
7671
- add x0, x0, x23
7672
- bl FlashReadPages
7673
- ldr x0, [x19, 3432]
7674
- ldr x4, [x29, 144]
7675
- add x3, x0, x23
7676
- ldr w0, [x0, x23]
7677
- cmn w0, #1
7678
- bne .L1074
7679
-.L1075:
7680
- mov w0, -1
7681
- str w0, [x29, 172]
7682
-.L1082:
7683
- ldr w4, [x29, 172]
7684
- cmn w4, #1
7685
- beq .L1066
7686
-.L1097:
7687
- lsr w0, w4, 10
7688
- bl P2V_block_in_plane
7689
- and w25, w0, 65535
7690
- ldrh w0, [x19, 244]
7691
- mov w3, w25
8845
+ ldrh w0, [x3]
76928846 cmp w0, w25
7693
- bhi .L1088
7694
- ldr x1, [x29, 136]
7695
- mov w2, 2066
7696
- adrp x0, .LC8
7697
- str w25, [x29, 144]
7698
- add x0, x0, :lo12:.LC8
8847
+ beq .L1110
8848
+ ldr x1, [sp, 120]
8849
+ mov w2, 1961
8850
+ adrp x0, .LC9
8851
+ add x0, x0, :lo12:.LC9
76998852 bl sftl_printk
7700
- ldr w3, [x29, 144]
7701
-.L1088:
7702
- ldr x1, [x19, 72]
7703
- ubfiz x0, x25, 1, 16
7704
- ldrh w0, [x1, x0]
7705
- cbz w0, .L1089
7706
- mov w0, w3
7707
- b .L1153
7708
-.L1073:
7709
- ldp w1, w0, [x29, 176]
7710
- cmp w1, w0
7711
- bne .L1066
7712
- mov w2, 1
7713
- add x1, x29, 172
8853
+ ldr x3, [sp, 104]
8854
+.L1110:
8855
+ add x1, sp, 176
8856
+ ldp w25, w0, [x3, 8]
8857
+ mov w2, 0
8858
+ str w0, [sp, 172]
77148859 mov w0, w25
77158860 bl log2phys
7716
-.L1066:
7717
- add x23, x23, 32
7718
- b .L1065
7719
-.L1074:
7720
- ldr w0, [x4, 8]
7721
- cmp w25, w0
7722
- bne .L1075
7723
- ldr w0, [x4, 4]
7724
- str w0, [x29, 144]
7725
- str x4, [x29, 104]
7726
- uxtw x1, w0
7727
- ldr w0, [x19, 3716]
8861
+ ldr w1, [x19, 3708]
8862
+ ldr w2, [sp, 172]
8863
+ cmn w1, #1
8864
+ beq .L1112
8865
+ mov w0, w21
8866
+ str w2, [sp, 104]
77288867 bl ftl_cmp_data_ver
7729
- cbz w0, .L1075
7730
- ldp w0, w1, [x29, 176]
7731
- ldr x4, [x29, 104]
7732
- cmp w0, w1
7733
- ldr w1, [x29, 172]
7734
- bne .L1077
7735
-.L1152:
7736
- mov w0, w25
7737
- bl FtlReUsePrevPpa
7738
- b .L1075
7739
-.L1077:
7740
- cmp w0, w1
7741
- beq .L1075
7742
- cmn w0, #1
7743
- beq .L1078
7744
- ldr x4, [x3, 16]
8868
+ ldr w2, [sp, 104]
8869
+ cbz w0, .L1112
8870
+ cmn w2, #1
8871
+ beq .L1113
8872
+ ldr x0, [x19, 3424]
8873
+ add x0, x0, x26
8874
+ str w2, [x0, 4]
77458875 mov w2, 0
7746
- str w0, [x3, 4]
8876
+ ldr x1, [x0, 16]
8877
+ str x1, [sp, 104]
8878
+ ldr x0, [x19, 3424]
77478879 mov w1, 1
7748
- str x4, [x29, 104]
7749
- ldr x0, [x19, 3432]
7750
- add x0, x0, x23
8880
+ add x0, x0, x26
77518881 bl FlashReadPages
7752
- ldr x4, [x29, 104]
7753
-.L1079:
8882
+ ldr x2, [x19, 3424]
8883
+ add x3, x2, x26
8884
+ ldr w0, [x2, x26]
8885
+ cmn w0, #1
8886
+ bne .L1114
8887
+.L1115:
8888
+ mov w0, -1
8889
+ str w0, [sp, 172]
8890
+.L1122:
8891
+ ldr w0, [sp, 172]
8892
+ cmn w0, #1
8893
+ beq .L1105
8894
+ ubfx x0, x0, 10, 16
8895
+ bl P2V_block_in_plane
8896
+ and w26, w0, 65535
8897
+ ldrh w0, [x19, 244]
8898
+ mov w25, w26
8899
+ cmp w0, w26, uxth
8900
+ bhi .L1127
8901
+ ldr x1, [sp, 120]
8902
+ adrp x0, .LC9
8903
+ mov w2, 2066
8904
+ add x0, x0, :lo12:.LC9
8905
+ bl sftl_printk
8906
+.L1127:
8907
+ ldr x1, [x19, 72]
8908
+ ubfiz x0, x26, 1, 16
8909
+ ldrh w0, [x1, x0]
8910
+ cbz w0, .L1128
8911
+ mov w0, w25
8912
+ b .L1188
8913
+.L1113:
8914
+ ldp w1, w0, [sp, 176]
8915
+ cmp w1, w0
8916
+ bne .L1105
8917
+ add x1, sp, 172
8918
+ mov w0, w25
8919
+ mov w2, 1
8920
+ bl log2phys
8921
+.L1105:
8922
+ ldr x0, [sp, 96]
8923
+ add x0, x0, 1
8924
+ str x0, [sp, 96]
8925
+ b .L1104
8926
+.L1114:
8927
+ ldr x0, [sp, 104]
8928
+ ldr w4, [x0, 8]
8929
+ cmp w4, w25
8930
+ bne .L1115
8931
+ ldr w0, [x0, 4]
8932
+ str w0, [sp, 112]
8933
+ uxtw x1, w0
8934
+ ldr w0, [x19, 3708]
8935
+ stp x3, x2, [sp, 136]
8936
+ str w4, [sp, 156]
8937
+ bl ftl_cmp_data_ver
8938
+ cbz w0, .L1115
8939
+ ldp w1, w0, [sp, 172]
8940
+ ldr w5, [sp, 180]
8941
+ ldr w4, [sp, 156]
8942
+ cmp w0, w5
8943
+ ldp x3, x2, [sp, 136]
8944
+ bne .L1117
8945
+ mov w0, w4
8946
+.L1187:
8947
+ bl FtlReUsePrevPpa
8948
+ b .L1115
8949
+.L1117:
8950
+ cmp w0, w1
8951
+ beq .L1115
8952
+ cmn w0, #1
8953
+ beq .L1118
8954
+ str w0, [x3, 4]
8955
+ mov w2, 0
8956
+ ldr x1, [x3, 16]
8957
+ str x1, [sp, 104]
8958
+ ldr x0, [x19, 3424]
8959
+ mov w1, 1
8960
+ add x0, x0, x26
8961
+ bl FlashReadPages
8962
+.L1119:
77548963 adrp x0, .LANCHOR0
77558964 add x0, x0, :lo12:.LANCHOR0
7756
- ldr x1, [x0, 3432]
7757
- ldr w1, [x1, x23]
8965
+ ldr x1, [x0, 3424]
8966
+ ldr w1, [x1, x26]
77588967 cmn w1, #1
7759
- beq .L1080
7760
- ldr w3, [x4, 4]
7761
- ldr w0, [x0, 3716]
7762
- mov w1, w3
8968
+ beq .L1120
8969
+ ldr x1, [sp, 104]
8970
+ ldr w0, [x0, 3708]
8971
+ ldr w26, [x1, 4]
8972
+ mov w1, w26
77638973 bl ftl_cmp_data_ver
7764
- cbz w0, .L1080
7765
- ldr w0, [x29, 144]
7766
- mov w1, w3
8974
+ cbz w0, .L1120
8975
+ ldr w0, [sp, 112]
8976
+ mov w1, w26
77678977 bl ftl_cmp_data_ver
7768
- cbz w0, .L1075
7769
-.L1080:
7770
- ldr w1, [x29, 172]
7771
- b .L1152
7772
-.L1078:
7773
- str w0, [x3]
7774
- b .L1079
7775
-.L1072:
7776
- ldp w1, w0, [x29, 176]
7777
- cmp w1, w0
7778
- beq .L1082
7779
- cmn w3, #1
7780
- beq .L1084
7781
- ldr w0, [x19, 252]
7782
- cmp w0, w3, lsr 10
7783
- bhi .L1084
7784
- adrp x0, .LC109
7785
- mov w1, w3
7786
- add x0, x0, :lo12:.LC109
7787
-.L1155:
7788
- bl sftl_printk
7789
- b .L1066
7790
-.L1084:
7791
- mov w2, 1
7792
- add x1, x29, 180
8978
+ cbz w0, .L1115
8979
+.L1120:
8980
+ ldr w1, [sp, 172]
77938981 mov w0, w25
8982
+ b .L1187
8983
+.L1118:
8984
+ str w0, [x2, x26]
8985
+ b .L1119
8986
+.L1112:
8987
+ ldp w1, w0, [sp, 176]
8988
+ cmp w1, w0
8989
+ beq .L1122
8990
+ cmn w2, #1
8991
+ beq .L1124
8992
+ ldr w0, [x19, 252]
8993
+ cmp w0, w2, lsr 10
8994
+ bhi .L1124
8995
+ adrp x0, .LC110
8996
+ mov w1, w2
8997
+ add x0, x0, :lo12:.LC110
8998
+.L1190:
8999
+ bl sftl_printk
9000
+ b .L1105
9001
+.L1124:
9002
+ add x1, sp, 180
9003
+ mov w0, w25
9004
+ mov w2, 1
77949005 bl log2phys
7795
- ldr w4, [x29, 176]
7796
- cmn w4, #1
7797
- beq .L1082
7798
- ldr w0, [x29, 172]
7799
- cmp w4, w0
7800
- beq .L1097
7801
- lsr w0, w4, 10
9006
+ ldr w26, [sp, 176]
9007
+ cmn w26, #1
9008
+ beq .L1122
9009
+ ldr w0, [sp, 172]
9010
+ cmp w26, w0
9011
+ beq .L1122
9012
+ ubfx x0, x26, 10, 16
78029013 bl P2V_block_in_plane
7803
- ldrh w1, [x19, 24]
7804
- and w0, w0, 65535
7805
- cmp w1, w0
7806
- beq .L1087
7807
- ldrh w1, [x19, 80]
7808
- cmp w1, w0
7809
- beq .L1087
7810
- ldrh w1, [x19, 128]
7811
- cmp w1, w0
7812
- bne .L1082
7813
-.L1087:
7814
- ldr x0, [x19, 3432]
9014
+ ldrh w2, [x19, 24]
9015
+ and w1, w0, 65535
9016
+ cmp w2, w0, uxth
9017
+ beq .L1126
9018
+ ldrh w0, [x19, 80]
9019
+ cmp w0, w1
9020
+ beq .L1126
9021
+ ldrh w0, [x19, 128]
9022
+ cmp w0, w1
9023
+ bne .L1122
9024
+.L1126:
9025
+ ldr x0, [x19, 3424]
78159026 mov w2, 0
78169027 mov w1, 1
7817
- str w4, [x0, 4]
9028
+ str w26, [x0, 4]
78189029 ldr x3, [x0, 16]
7819
- ldr x0, [x19, 3432]
7820
- str x3, [x29, 144]
9030
+ str x3, [sp, 104]
9031
+ ldr x0, [x19, 3424]
78219032 bl FlashReadPages
7822
- ldr x0, [x19, 3432]
9033
+ ldr x0, [x19, 3424]
78239034 ldr w0, [x0]
78249035 cmn w0, #1
7825
- beq .L1082
7826
- ldr x3, [x29, 144]
9036
+ beq .L1122
9037
+ ldr x3, [sp, 104]
78279038 mov w0, w21
78289039 ldr w1, [x3, 4]
78299040 bl ftl_cmp_data_ver
7830
- cbnz w0, .L1082
7831
- mov w2, 1
7832
- add x1, x29, 176
9041
+ cbnz w0, .L1122
9042
+ add x1, sp, 176
78339043 mov w0, w25
9044
+ mov w2, 1
78349045 bl log2phys
7835
- b .L1082
7836
-.L1089:
7837
- adrp x0, .LC110
7838
- mov w1, w25
7839
- add x0, x0, :lo12:.LC110
7840
- b .L1155
7841
-.L1068:
7842
- ldr w0, [x19, 3756]
9046
+ b .L1122
9047
+.L1128:
9048
+ mov w1, w26
9049
+ ldr x0, [sp, 128]
9050
+ b .L1190
9051
+.L1107:
9052
+ ldr w0, [x19, 3748]
78439053 cmp w0, 31
7844
- bhi .L1090
7845
- ldr x1, [x29, 112]
7846
- str w5, [x1, w0, uxtw 2]
9054
+ bhi .L1129
9055
+ add x1, x19, 3752
9056
+ str w25, [x1, w0, uxtw 2]
78479057 add w0, w0, 1
7848
- str w0, [x19, 3756]
7849
-.L1090:
9058
+ str w0, [x19, 3748]
9059
+.L1129:
78509060 ldrh w0, [x20]
78519061 bl decrement_vpc_count
7852
- ldr w0, [x19, 3716]
9062
+ ldr w0, [x19, 3708]
78539063 cmn w0, #1
7854
- bne .L1091
7855
-.L1154:
7856
- str w21, [x19, 3716]
7857
- b .L1066
7858
-.L1091:
7859
- cmp w21, w0
7860
- bcs .L1066
7861
- b .L1154
7862
-.L1094:
7863
- add w0, w0, 1
7864
- and w0, w0, 65535
7865
- b .L1093
7866
-.L1067:
7867
- strb w27, [x20, 6]
7868
- strh w22, [x20, 2]
7869
- b .L1157
7870
-.L1098:
9064
+ bne .L1130
9065
+.L1189:
9066
+ str w21, [x19, 3708]
9067
+ b .L1105
9068
+.L1130:
9069
+ cmp w0, w21
9070
+ bls .L1105
9071
+ b .L1189
9072
+.L1138:
9073
+ mov x0, x1
9074
+ b .L1132
9075
+.L1135:
9076
+ mov w0, 0
78719077 ldp x19, x20, [sp, 16]
78729078 ldp x21, x22, [sp, 32]
78739079 ldp x23, x24, [sp, 48]
78749080 ldp x25, x26, [sp, 64]
78759081 ldp x27, x28, [sp, 80]
78769082 ldp x29, x30, [sp], 192
9083
+ hint 29 // autiasp
78779084 ret
78789085 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock
9086
+ .section .rodata.str1.1
9087
+.LC112:
9088
+ .string "...%s enter...\n"
9089
+.LC113:
9090
+ .string "FtlCheckVpc2 %x = %x %x\n"
9091
+.LC114:
9092
+ .string "free blk vpc error %x = %x %x\n"
9093
+ .text
78799094 .align 2
78809095 .global ftl_check_vpc
78819096 .type ftl_check_vpc, %function
78829097 ftl_check_vpc:
7883
- stp x29, x30, [sp, -128]!
7884
- add x29, sp, 0
9098
+ hint 34 // bti c
9099
+ .section __patchable_function_entries
9100
+ .align 3
9101
+ .8byte .LPFE97
9102
+ .text
9103
+.LPFE97:
9104
+ nop
9105
+ nop
9106
+ hint 25 // paciasp
9107
+ stp x29, x30, [sp, -112]!
9108
+ mrs x0, sp_el0
9109
+ mov x29, sp
78859110 stp x19, x20, [sp, 16]
78869111 adrp x20, .LANCHOR0
9112
+ add x20, x20, :lo12:.LANCHOR0
78879113 stp x21, x22, [sp, 32]
7888
- adrp x21, __stack_chk_guard
7889
- stp x23, x24, [sp, 48]
7890
- add x0, x21, :lo12:__stack_chk_guard
7891
- stp x25, x26, [sp, 64]
7892
- add x25, x20, :lo12:.LANCHOR0
7893
- stp x27, x28, [sp, 80]
9114
+ mov w19, 0
78949115 adrp x22, .LANCHOR1
7895
- mov w24, 0
7896
- adrp x23, check_vpc_table
7897
- ldr x1, [x0]
7898
- str x1, [x29, 120]
7899
- mov x1,0
7900
- add x19, x23, :lo12:check_vpc_table
7901
- add x1, x22, :lo12:.LANCHOR1
7902
- adrp x0, .LC111
7903
- add x1, x1, 544
7904
- add x0, x0, :lo12:.LC111
9116
+ stp x23, x24, [sp, 48]
9117
+ add x22, x22, :lo12:.LANCHOR1
9118
+ adrp x21, check_vpc_table
9119
+ stp x25, x26, [sp, 64]
9120
+ add x21, x21, :lo12:check_vpc_table
9121
+ stp x27, x28, [sp, 80]
9122
+ ldr x1, [x0, 1376]
9123
+ str x1, [sp, 104]
9124
+ mov x1, 0
9125
+ adrp x0, .LC112
9126
+ add x1, x22, 457
9127
+ add x0, x0, :lo12:.LC112
79059128 bl sftl_printk
9129
+ mov x0, x21
79069130 mov w2, 8192
79079131 mov w1, 0
7908
- mov x0, x19
79099132 bl ftl_memset
7910
-.L1159:
7911
- ldr w0, [x25, 2624]
7912
- cmp w24, w0
7913
- bcc .L1161
7914
- adrp x26, .LC112
7915
- add x24, x20, :lo12:.LANCHOR0
7916
- add x27, x23, :lo12:check_vpc_table
7917
- add x26, x26, :lo12:.LC112
7918
- mov w25, 0
7919
- mov w19, 0
7920
- mov w5, 65535
7921
-.L1162:
7922
- ldrh w0, [x24, 244]
9133
+.L1194:
9134
+ ldr w0, [x20, 2624]
79239135 cmp w0, w19
7924
- bhi .L1164
7925
- ldr x19, [x24, 2592]
7926
- cbz x19, .L1165
7927
- ldr x0, [x24, 2560]
7928
- adrp x26, .LC113
7929
- add x20, x20, :lo12:.LANCHOR0
7930
- add x23, x23, :lo12:check_vpc_table
7931
- sub x19, x19, x0
7932
- mov x0, -6148914691236517206
7933
- asr x19, x19, 1
7934
- movk x0, 0xaaab, lsl 0
7935
- add x26, x26, :lo12:.LC113
7936
- ldrh w27, [x24, 228]
7937
- mov w28, 6
9136
+ bhi .L1196
9137
+ adrp x23, .LC113
9138
+ add x23, x23, :lo12:.LC113
79389139 mov w24, 0
7939
- mul x19, x19, x0
9140
+ mov w19, 0
9141
+ mov w26, 65535
9142
+ mov w27, 1
9143
+.L1197:
9144
+ ldrh w0, [x20, 244]
9145
+ cmp w0, w19
9146
+ bhi .L1199
9147
+ ldr x19, [x20, 2592]
9148
+ cbz x19, .L1200
9149
+ ldr x1, [x20, 2560]
9150
+ adrp x25, .LC114
9151
+ ldrh w26, [x20, 228]
9152
+ add x25, x25, :lo12:.LC114
9153
+ sub x19, x19, x1
9154
+ mov x1, -6148914691236517206
9155
+ movk x1, 0xaaab, lsl 0
9156
+ mov w23, 0
9157
+ asr x19, x19, 1
9158
+ mov w27, 6
9159
+ mov w28, 65535
9160
+ mul x19, x19, x1
79409161 and w19, w19, 65535
7941
-.L1166:
7942
- cmp w24, w27
7943
- bne .L1168
7944
-.L1165:
7945
- cbz w25, .L1158
7946
- add x1, x22, :lo12:.LANCHOR1
7947
- adrp x0, .LC8
9162
+.L1201:
9163
+ cmp w23, w26
9164
+ bne .L1203
9165
+.L1200:
9166
+ cbz w24, .L1193
9167
+ adrp x0, .LC9
9168
+ add x1, x22, 457
9169
+ add x0, x0, :lo12:.LC9
79489170 mov w2, 2394
7949
- add x1, x1, 544
7950
- add x0, x0, :lo12:.LC8
79519171 bl sftl_printk
7952
-.L1158:
7953
- add x21, x21, :lo12:__stack_chk_guard
7954
- ldr x1, [x29, 120]
7955
- ldr x0, [x21]
7956
- eor x0, x1, x0
7957
- cbz x0, .L1170
9172
+.L1193:
9173
+ mrs x0, sp_el0
9174
+ ldr x1, [sp, 104]
9175
+ ldr x2, [x0, 1376]
9176
+ subs x1, x1, x2
9177
+ mov x2, 0
9178
+ beq .L1205
79589179 bl __stack_chk_fail
7959
-.L1161:
9180
+.L1196:
9181
+ add x1, sp, 100
9182
+ mov w0, w19
79609183 mov w2, 0
7961
- add x1, x29, 116
7962
- mov w0, w24
79639184 bl log2phys
7964
- ldr w0, [x29, 116]
9185
+ ldr w0, [sp, 100]
79659186 cmn w0, #1
7966
- beq .L1160
7967
- lsr w0, w0, 10
9187
+ beq .L1195
9188
+ ubfx x0, x0, 10, 16
79689189 bl P2V_block_in_plane
79699190 and x0, x0, 65535
7970
- ldrh w1, [x19, x0, lsl 1]
9191
+ ldrh w1, [x21, x0, lsl 1]
79719192 add w1, w1, 1
7972
- strh w1, [x19, x0, lsl 1]
7973
-.L1160:
7974
- add w24, w24, 1
7975
- b .L1159
7976
-.L1164:
7977
- ldr x0, [x24, 72]
7978
- ubfiz x4, x19, 1, 16
9193
+ strh w1, [x21, x0, lsl 1]
9194
+.L1195:
9195
+ add w19, w19, 1
9196
+ b .L1194
9197
+.L1199:
9198
+ ldr x0, [x20, 72]
9199
+ ubfiz x25, x19, 1, 16
9200
+ ldrh w3, [x21, w19, sxtw 1]
79799201 sxtw x28, w19
7980
- str x4, [x29, 96]
7981
- ldrh w3, [x27, x28, lsl 1]
7982
- ldrh w2, [x0, x4]
9202
+ ldrh w2, [x0, x25]
79839203 cmp w2, w3
7984
- beq .L1163
7985
- mov x0, x26
7986
- str w5, [x29, 108]
9204
+ beq .L1198
9205
+ mov x0, x23
79879206 mov w1, w19
79889207 bl sftl_printk
7989
- ldr x0, [x24, 72]
7990
- ldr x4, [x29, 96]
7991
- ldr w5, [x29, 108]
7992
- ldrh w0, [x0, x4]
7993
- cmp w0, w5
7994
- beq .L1163
7995
- ldrh w1, [x27, x28, lsl 1]
9208
+ ldr x0, [x20, 72]
9209
+ ldrh w0, [x0, x25]
9210
+ cmp w0, w26
9211
+ beq .L1198
9212
+ ldrh w1, [x21, x28, lsl 1]
79969213 cmp w1, w0
7997
- csinc w25, w25, wzr, ls
7998
-.L1163:
9214
+ csel w24, w24, w27, ls
9215
+.L1198:
79999216 add w19, w19, 1
80009217 and w19, w19, 65535
8001
- b .L1162
8002
-.L1168:
9218
+ b .L1197
9219
+.L1203:
80039220 ldr x1, [x20, 72]
80049221 ubfiz x0, x19, 1, 16
80059222 ldrh w2, [x1, x0]
8006
- cbz w2, .L1167
8007
- ldrh w3, [x23, w19, sxtw 1]
8008
- mov w25, 1
9223
+ cbz w2, .L1202
9224
+ ldrh w3, [x21, w19, sxtw 1]
9225
+ mov w24, 1
80099226 mov w1, w19
8010
- mov x0, x26
9227
+ mov x0, x25
80119228 bl sftl_printk
8012
-.L1167:
9229
+.L1202:
9230
+ umull x19, w19, w27
80139231 ldr x0, [x20, 2560]
8014
- umull x19, w19, w28
80159232 ldrh w19, [x0, x19]
8016
- mov w0, 65535
8017
- cmp w19, w0
8018
- beq .L1165
8019
- add w24, w24, 1
8020
- and w24, w24, 65535
8021
- b .L1166
8022
-.L1170:
9233
+ cmp w19, w28
9234
+ beq .L1200
9235
+ add w23, w23, 1
9236
+ and w23, w23, 65535
9237
+ b .L1201
9238
+.L1205:
80239239 ldp x19, x20, [sp, 16]
80249240 ldp x21, x22, [sp, 32]
80259241 ldp x23, x24, [sp, 48]
80269242 ldp x25, x26, [sp, 64]
80279243 ldp x27, x28, [sp, 80]
8028
- ldp x29, x30, [sp], 128
9244
+ ldp x29, x30, [sp], 112
9245
+ hint 29 // autiasp
80299246 ret
80309247 .size ftl_check_vpc, .-ftl_check_vpc
9248
+ .section .rodata.str1.1
9249
+.LC115:
9250
+ .string "ftl_scan_all_data = %x\n"
9251
+.LC116:
9252
+ .string "scan lpa = %x ppa= %x\n"
9253
+.LC117:
9254
+ .string "lpa = %x,addr= %x,spare= %x %x %x %x data=%x %x\n"
9255
+ .text
80319256 .align 2
80329257 .global ftl_scan_all_data
80339258 .type ftl_scan_all_data, %function
80349259 ftl_scan_all_data:
9260
+ hint 34 // bti c
9261
+ .section __patchable_function_entries
9262
+ .align 3
9263
+ .8byte .LPFE98
9264
+ .text
9265
+.LPFE98:
9266
+ nop
9267
+ nop
9268
+ hint 25 // paciasp
80359269 sub sp, sp, #96
9270
+ mrs x0, sp_el0
80369271 stp x29, x30, [sp, 16]
80379272 add x29, sp, 16
8038
- stp x23, x24, [sp, 64]
8039
- adrp x24, .LANCHOR0
8040
- add x23, x24, :lo12:.LANCHOR0
80419273 stp x19, x20, [sp, 32]
8042
- add x19, x23, 3720
8043
- stp x21, x22, [sp, 48]
80449274 mov w20, 0
8045
- adrp x22, __stack_chk_guard
8046
- add x0, x22, :lo12:__stack_chk_guard
8047
- ldr x1, [x0]
8048
- str x1, [x29, 72]
8049
- mov x1,0
8050
- adrp x0, .LC114
8051
- add x0, x0, :lo12:.LC114
8052
- bl sftl_printk
8053
-.L1185:
8054
- add x0, x24, :lo12:.LANCHOR0
8055
- ldr w0, [x0, 2624]
8056
- cmp w20, w0
8057
- bcc .L1191
8058
- add x0, x22, :lo12:__stack_chk_guard
8059
- ldr x1, [x29, 72]
8060
- ldr x0, [x0]
8061
- eor x0, x1, x0
8062
- cbz x0, .L1192
8063
- bl __stack_chk_fail
8064
-.L1191:
8065
- mov w2, 0
8066
- add x1, x29, 68
8067
- mov w0, w20
8068
- bl log2phys
8069
- tst x20, 2047
8070
- bne .L1186
8071
- ldr w2, [x29, 68]
9275
+ stp x21, x22, [sp, 48]
9276
+ adrp x21, .LANCHOR0
9277
+ add x21, x21, :lo12:.LANCHOR0
9278
+ str x23, [sp, 64]
9279
+ adrp x22, .LC116
9280
+ add x19, x21, 3712
9281
+ add x22, x22, :lo12:.LC116
9282
+ ldr x1, [x0, 1376]
9283
+ str x1, [sp, 88]
9284
+ mov x1, 0
80729285 adrp x0, .LC115
8073
- mov w1, w20
80749286 add x0, x0, :lo12:.LC115
80759287 bl sftl_printk
8076
-.L1186:
8077
- ldr w1, [x29, 68]
8078
- cmn w1, #1
8079
- beq .L1188
8080
- ldr x0, [x23, 3456]
9288
+.L1220:
9289
+ ldr w0, [x21, 2624]
9290
+ cmp w0, w20
9291
+ bhi .L1226
9292
+ mrs x0, sp_el0
9293
+ ldr x1, [sp, 88]
9294
+ ldr x2, [x0, 1376]
9295
+ subs x1, x1, x2
9296
+ mov x2, 0
9297
+ beq .L1227
9298
+ bl __stack_chk_fail
9299
+.L1226:
9300
+ add x1, sp, 84
9301
+ mov w0, w20
80819302 mov w2, 0
8082
- ldr x21, [x23, 3520]
8083
- stp wzr, w1, [x19]
9303
+ bl log2phys
9304
+ tst x20, 2047
9305
+ bne .L1221
9306
+ ldr w2, [sp, 84]
9307
+ mov w1, w20
9308
+ mov x0, x22
9309
+ bl sftl_printk
9310
+.L1221:
9311
+ ldr w0, [sp, 84]
9312
+ cmn w0, #1
9313
+ beq .L1223
9314
+ stp wzr, w0, [x19]
9315
+ mov w2, 0
9316
+ ldr x0, [x21, 3448]
80849317 mov w1, 1
8085
- stp x0, x21, [x19, 8]
9318
+ ldr x23, [x21, 3512]
9319
+ str x0, [x19, 8]
80869320 mov x0, x19
9321
+ str x23, [x19, 16]
80879322 str w20, [x19, 24]
80889323 bl FlashReadPages
8089
- ldr w1, [x19]
8090
- cmp w1, 256
8091
- ccmn w1, #1, 4, ne
8092
- beq .L1189
8093
- ldr w0, [x21, 8]
8094
- cmp w20, w0
8095
- beq .L1188
8096
-.L1189:
8097
- ldp x1, x0, [x19, 8]
8098
- ldr w2, [x1, 4]
9324
+ ldr w0, [x19]
9325
+ cmp w0, 256
9326
+ ccmn w0, #1, 4, ne
9327
+ beq .L1224
9328
+ ldr w0, [x23, 8]
9329
+ cmp w0, w20
9330
+ beq .L1223
9331
+.L1224:
9332
+ ldp x0, x1, [x19, 8]
9333
+ ldr w2, [x0, 4]
80999334 str w2, [sp]
8100
- ldp w3, w4, [x0]
8101
- ldp w5, w6, [x0, 8]
8102
- adrp x0, .LC116
8103
- ldr w7, [x1]
8104
- add x0, x0, :lo12:.LC116
8105
- ldr w2, [x19, 4]
9335
+ ldr w7, [x0]
9336
+ adrp x0, .LC117
9337
+ ldp w3, w4, [x1]
9338
+ add x0, x0, :lo12:.LC117
9339
+ ldp w5, w6, [x1, 8]
81069340 mov w1, w20
9341
+ ldr w2, [x19, 4]
81079342 bl sftl_printk
8108
-.L1188:
9343
+.L1223:
81099344 add w20, w20, 1
8110
- b .L1185
8111
-.L1192:
9345
+ b .L1220
9346
+.L1227:
9347
+ ldp x29, x30, [sp, 16]
81129348 ldp x19, x20, [sp, 32]
81139349 ldp x21, x22, [sp, 48]
8114
- ldp x23, x24, [sp, 64]
8115
- ldp x29, x30, [sp, 16]
9350
+ ldr x23, [sp, 64]
81169351 add sp, sp, 96
9352
+ hint 29 // autiasp
81179353 ret
81189354 .size ftl_scan_all_data, .-ftl_scan_all_data
9355
+ .section .rodata.str1.1
9356
+.LC118:
9357
+ .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n"
9358
+ .text
81199359 .align 2
81209360 .global FtlGcScanTempBlk
81219361 .type FtlGcScanTempBlk, %function
81229362 FtlGcScanTempBlk:
9363
+ hint 34 // bti c
9364
+ .section __patchable_function_entries
9365
+ .align 3
9366
+ .8byte .LPFE99
9367
+ .text
9368
+.LPFE99:
9369
+ nop
9370
+ nop
9371
+ hint 25 // paciasp
81239372 stp x29, x30, [sp, -160]!
8124
- add x29, sp, 0
9373
+ mov x29, sp
81259374 stp x21, x22, [sp, 32]
8126
- adrp x22, __stack_chk_guard
9375
+ adrp x22, .LANCHOR2
9376
+ add x22, x22, :lo12:.LANCHOR2
81279377 stp x19, x20, [sp, 16]
8128
- mov x19, x0
8129
- stp x25, x26, [sp, 64]
8130
- add x0, x22, :lo12:__stack_chk_guard
9378
+ mov x20, x0
9379
+ mrs x0, sp_el0
81319380 stp x23, x24, [sp, 48]
8132
- mov w25, w1
9381
+ stp x25, x26, [sp, 64]
81339382 stp x27, x28, [sp, 80]
8134
- adrp x21, .LANCHOR2
8135
- str x22, [x29, 96]
8136
- ldr x1, [x0]
8137
- str x1, [x29, 152]
8138
- mov x1,0
8139
- add x0, x21, :lo12:.LANCHOR2
8140
- ldrh w28, [x0, 4]
9383
+ ldrh w28, [x22, 4]
9384
+ str w1, [sp, 104]
9385
+ ldr x1, [x0, 1376]
9386
+ str x1, [sp, 152]
9387
+ mov x1, 0
81419388 mov w0, 65535
81429389 cmp w28, w0
8143
- beq .L1219
8144
- cbnz w28, .L1195
8145
-.L1196:
8146
- bl FtlGcPageVarInit
8147
- b .L1197
8148
-.L1219:
8149
- mov w28, 0
8150
-.L1195:
9390
+ beq .L1253
9391
+ cbz w28, .L1231
9392
+.L1230:
81519393 adrp x0, .LANCHOR0+306
9394
+ ldr w1, [sp, 104]
81529395 ldrh w0, [x0, #:lo12:.LANCHOR0+306]
8153
- cmp w0, w25
8154
- beq .L1196
8155
-.L1197:
8156
- adrp x26, .LANCHOR0
8157
- add x22, x26, :lo12:.LANCHOR0
8158
- mov w24, 0
8159
-.L1212:
8160
- ldrh w1, [x19]
8161
- mov w0, 65535
8162
- strb wzr, [x19, 8]
8163
- cmp w1, w0
8164
- beq .L1198
8165
-.L1215:
8166
- add x0, x26, :lo12:.LANCHOR0
8167
- add x6, x19, 16
8168
- mov w20, 0
8169
- mov w11, 65535
8170
- mov w7, 4
8171
- ldrh w9, [x0, 314]
8172
- ldrh w10, [x0, 316]
8173
- ldrh w0, [x0, 236]
8174
- add x0, x0, 8
8175
- add x0, x19, x0, lsl 1
8176
-.L1199:
8177
- cmp x0, x6
8178
- bne .L1201
8179
- ldr x0, [x22, 3432]
8180
- mov w2, 0
8181
- mov w1, w20
8182
- mov x23, 0
8183
- bl FlashReadPages
8184
- ubfiz x0, x20, 5, 16
8185
- str x0, [x29, 104]
8186
-.L1202:
8187
- ldr x0, [x29, 104]
8188
- cmp x0, x23
8189
- bne .L1213
8190
- add w4, w28, 1
8191
- add w24, w24, 1
8192
- and w28, w4, 65535
8193
- cmp w25, w24
8194
- bls .L1214
8195
-.L1216:
8196
- ldrh w0, [x22, 306]
8197
- cmp w0, w28
8198
- bhi .L1215
8199
-.L1198:
8200
- add x21, x21, :lo12:.LANCHOR2
8201
- strh w28, [x19, 2]
8202
- strb wzr, [x19, 6]
8203
- mov w0, -1
8204
- mov w2, 0
8205
- mov w1, w28
8206
- strh w0, [x21, 4]
8207
- mov x0, x19
8208
- bl ftl_sb_update_avl_pages
8209
- b .L1217
8210
-.L1201:
8211
- ldrh w1, [x6]
8212
- cmp w1, w11
8213
- beq .L1200
8214
- ldr x5, [x22, 3432]
8215
- ubfiz x8, x20, 5, 16
8216
- orr w1, w28, w1, lsl 10
8217
- add x5, x5, x8
8218
- str w1, [x5, 4]
8219
- mul w1, w20, w9
8220
- ldr x2, [x22, 3432]
8221
- ldr x5, [x22, 3256]
8222
- sdiv w1, w1, w7
8223
- add x2, x2, x8
8224
- add x1, x5, x1, sxtw 2
8225
- str x1, [x2, 8]
8226
- mul w1, w20, w10
8227
- ldr x5, [x22, 3264]
8228
- add w20, w20, 1
8229
- and w20, w20, 65535
8230
- sdiv w1, w1, w7
8231
- add x1, x5, x1, sxtw 2
8232
- str x1, [x2, 16]
8233
-.L1200:
8234
- add x6, x6, 2
8235
- b .L1199
8236
-.L1213:
8237
- ldr x0, [x22, 3432]
8238
- add x1, x0, x23
8239
- ldr w0, [x0, x23]
8240
- ldr w27, [x1, 4]
8241
- ldr x20, [x1, 16]
8242
- cbnz w0, .L1203
8243
- ldrh w0, [x20]
8244
- mov w1, 65535
82459396 cmp w0, w1
8246
- bne .L1204
8247
-.L1229:
8248
- ldrh w1, [x19]
9397
+ bne .L1232
9398
+.L1231:
9399
+ bl FtlGcPageVarInit
9400
+.L1232:
9401
+ adrp x19, .LANCHOR0
9402
+ add x19, x19, :lo12:.LANCHOR0
9403
+ mov w24, 0
9404
+ mov w26, 65535
9405
+.L1248:
9406
+ ldrh w0, [x20]
9407
+ strb wzr, [x20, 8]
9408
+ cmp w0, w26
9409
+ beq .L1233
9410
+ add x0, x20, 16
9411
+ str x0, [sp, 96]
9412
+.L1234:
9413
+ ldrh w7, [x19, 236]
9414
+ mov x1, 0
9415
+ ldrh w8, [x19, 314]
9416
+ mov w21, 0
9417
+ ldrh w9, [x19, 316]
9418
+ mov w5, 4
9419
+.L1235:
9420
+ ldr x0, [x19, 3424]
9421
+ cmp w7, w1, uxth
9422
+ bhi .L1237
9423
+ mov x23, 0
9424
+ mov w1, w21
9425
+ mov w2, 0
9426
+ bl FlashReadPages
9427
+.L1238:
9428
+ cmp w21, w23, uxth
9429
+ bhi .L1249
9430
+ ldr w0, [sp, 104]
9431
+ add w3, w28, 1
9432
+ add w24, w24, 1
9433
+ and w28, w3, 65535
9434
+ cmp w0, w24
9435
+ bhi .L1250
9436
+ ldrh w0, [x22, 4]
9437
+ cmp w0, w26
9438
+ beq .L1250
9439
+ add w0, w0, w24
9440
+ strh w0, [x22, 4]
9441
+ ldrh w0, [x19, 306]
9442
+ cmp w0, w28
9443
+ bls .L1233
9444
+.L1251:
9445
+ mrs x0, sp_el0
9446
+ ldr x1, [sp, 152]
9447
+ ldr x2, [x0, 1376]
9448
+ subs x1, x1, x2
9449
+ mov x2, 0
9450
+ beq .L1252
9451
+ bl __stack_chk_fail
9452
+.L1253:
82499453 mov w28, 0
8250
- ldr x0, [x22, 72]
9454
+ b .L1230
9455
+.L1237:
9456
+ ldr x2, [sp, 96]
9457
+ ldrh w4, [x2, x1, lsl 1]
9458
+ cmp w4, w26
9459
+ beq .L1236
9460
+ ubfiz x6, x21, 5, 16
9461
+ orr w4, w28, w4, lsl 10
9462
+ add x0, x0, x6
9463
+ str w4, [x0, 4]
9464
+ mul w0, w21, w8
9465
+ ldr x2, [x19, 3424]
9466
+ sdiv w0, w0, w5
9467
+ ldr x4, [x19, 3256]
9468
+ add x2, x2, x6
9469
+ add x0, x4, w0, sxtw 2
9470
+ str x0, [x2, 8]
9471
+ mul w0, w21, w9
9472
+ add w21, w21, 1
9473
+ ldr x4, [x19, 3264]
9474
+ and w21, w21, 65535
9475
+ sdiv w0, w0, w5
9476
+ add x0, x4, w0, sxtw 2
9477
+ str x0, [x2, 16]
9478
+.L1236:
9479
+ add x1, x1, 1
9480
+ b .L1235
9481
+.L1249:
9482
+ ldr x0, [x19, 3424]
9483
+ lsl x27, x23, 5
9484
+ add x1, x0, x23, lsl 5
9485
+ ldr w0, [x0, x27]
9486
+ ldr w5, [x1, 4]
9487
+ ldr x25, [x1, 16]
9488
+ cbnz w0, .L1239
9489
+ ldrh w0, [x25]
9490
+ cmp w0, w26
9491
+ beq .L1263
9492
+ ldr w1, [x19, 2624]
9493
+ ldr w0, [x25, 8]
9494
+ cmp w0, w1
9495
+ bls .L1241
9496
+.L1263:
9497
+ ldrh w1, [x20]
9498
+ mov w28, 0
9499
+ ldr x0, [x19, 72]
82519500 strh wzr, [x0, x1, lsl 1]
8252
- ldrh w0, [x19]
9501
+ ldrh w0, [x20]
82539502 bl INSERT_FREE_LIST
82549503 mov w0, -1
8255
- strh w0, [x19]
8256
- strh w0, [x22, 176]
9504
+ strh w0, [x20]
9505
+ strh w0, [x19, 176]
82579506 bl FtlGcPageVarInit
8258
- b .L1212
8259
-.L1204:
8260
- ldr w0, [x20, 8]
8261
- ldr w1, [x22, 2624]
8262
- cmp w0, w1
8263
- bhi .L1229
8264
- add x1, x29, 116
9507
+ b .L1248
9508
+.L1241:
9509
+ add x1, sp, 116
82659510 mov w2, 0
9511
+ str w5, [sp, 108]
82669512 bl log2phys
8267
- ldr w0, [x20, 12]
8268
- ldr w1, [x29, 116]
9513
+ ldr w0, [x25, 12]
9514
+ ldr w1, [sp, 116]
9515
+ ldr w5, [sp, 108]
82699516 cmp w0, w1
8270
- beq .L1207
8271
-.L1209:
8272
- ldr w2, [x20, 8]
8273
-.L1230:
8274
- ldr w0, [x20, 12]
8275
- mov w1, w27
8276
- add x23, x23, 32
9517
+ beq .L1243
9518
+.L1245:
9519
+ ldr w2, [x25, 8]
9520
+.L1264:
9521
+ ldr w0, [x25, 12]
9522
+ mov w1, w5
9523
+ add x23, x23, 1
82779524 bl FtlGcUpdatePage
8278
- b .L1202
8279
-.L1207:
9525
+ b .L1238
9526
+.L1243:
82809527 cmn w0, #1
8281
- beq .L1209
8282
- str w0, [x29, 124]
9528
+ beq .L1245
9529
+ str w0, [sp, 124]
82839530 mov w2, 0
8284
- ldr x0, [x22, 3488]
9531
+ ldr x0, [x19, 3480]
9532
+ str x0, [sp, 128]
9533
+ ldr x0, [x19, 3520]
82859534 mov w1, 1
8286
- str x0, [x29, 128]
8287
- ldr x0, [x22, 3528]
8288
- str x0, [x29, 136]
8289
- add x0, x29, 120
9535
+ str w5, [sp, 108]
9536
+ str x0, [sp, 136]
9537
+ add x0, sp, 120
82909538 bl FlashReadPages
8291
- ldrh w1, [x22, 262]
9539
+ ldr w5, [sp, 108]
9540
+ ldrh w1, [x19, 262]
9541
+ ldr x2, [sp, 128]
9542
+ ldr x0, [x19, 3424]
9543
+ lsl w1, w1, 7
9544
+ sub x2, x2, #4
9545
+ add x27, x0, x27
82929546 mov x0, 0
8293
- ldr x2, [x22, 3432]
8294
- ldr x6, [x29, 128]
8295
- ubfiz x1, x1, 9, 16
8296
- add x2, x2, x23
8297
-.L1210:
8298
- cmp x0, x1
8299
- beq .L1209
8300
- ldr x7, [x2, 8]
8301
- ldr w8, [x7, x0]
8302
- add x0, x0, 4
8303
- add x7, x6, x0
8304
- ldr w7, [x7, -4]
8305
- cmp w8, w7
8306
- beq .L1210
8307
- ldrh w1, [x19]
8308
- adrp x0, .LC117
8309
- ldr w2, [x29, 124]
8310
- add x0, x0, :lo12:.LC117
9547
+.L1246:
9548
+ cmp w1, w0
9549
+ bls .L1245
9550
+ ldr x6, [x27, 8]
9551
+ ldr w7, [x6, x0, lsl 2]
9552
+ add x0, x0, 1
9553
+ ldr w6, [x2, x0, lsl 2]
9554
+ cmp w7, w6
9555
+ beq .L1246
9556
+ ldrh w1, [x20]
9557
+ adrp x0, .LC118
9558
+ ldr w2, [sp, 124]
9559
+ add x0, x0, :lo12:.LC118
83119560 bl sftl_printk
8312
- b .L1229
8313
-.L1203:
9561
+ b .L1263
9562
+.L1239:
83149563 mov w2, -1
8315
- b .L1230
8316
-.L1214:
8317
- add x1, x21, :lo12:.LANCHOR2
8318
- mov w2, 65535
8319
- ldrh w0, [x1, 4]
8320
- cmp w0, w2
8321
- beq .L1216
8322
- add w0, w0, w24
8323
- strh w0, [x1, 4]
8324
- ldrh w0, [x22, 306]
9564
+ b .L1264
9565
+.L1250:
9566
+ ldrh w0, [x19, 306]
83259567 cmp w0, w28
8326
- bls .L1216
8327
-.L1217:
8328
- ldr x1, [x29, 96]
9568
+ bhi .L1234
9569
+.L1233:
9570
+ strh w28, [x20, 2]
83299571 mov w0, -1
8330
- add x22, x1, :lo12:__stack_chk_guard
8331
- ldr x2, [x29, 152]
8332
- ldr x1, [x22]
8333
- eor x1, x2, x1
8334
- cbz x1, .L1218
8335
- bl __stack_chk_fail
8336
-.L1218:
9572
+ strb wzr, [x20, 6]
9573
+ mov w1, w28
9574
+ mov w2, 0
9575
+ strh w0, [x22, 4]
9576
+ mov x0, x20
9577
+ bl ftl_sb_update_avl_pages
9578
+ b .L1251
9579
+.L1252:
9580
+ mov w0, -1
83379581 ldp x19, x20, [sp, 16]
83389582 ldp x21, x22, [sp, 32]
83399583 ldp x23, x24, [sp, 48]
83409584 ldp x25, x26, [sp, 64]
83419585 ldp x27, x28, [sp, 80]
83429586 ldp x29, x30, [sp], 160
9587
+ hint 29 // autiasp
83439588 ret
83449589 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk
83459590 .align 2
83469591 .global FtlReadRefresh
83479592 .type FtlReadRefresh, %function
83489593 FtlReadRefresh:
9594
+ hint 34 // bti c
9595
+ .section __patchable_function_entries
9596
+ .align 3
9597
+ .8byte .LPFE100
9598
+ .text
9599
+.LPFE100:
9600
+ nop
9601
+ nop
9602
+ hint 25 // paciasp
83499603 stp x29, x30, [sp, -160]!
8350
- add x29, sp, 0
9604
+ mrs x0, sp_el0
9605
+ mov x29, sp
83519606 stp x19, x20, [sp, 16]
8352
- adrp x20, __stack_chk_guard
8353
- stp x21, x22, [sp, 32]
8354
- add x0, x20, :lo12:__stack_chk_guard
8355
- ldr x1, [x0]
8356
- str x1, [x29, 152]
8357
- mov x1,0
8358
- adrp x1, .LANCHOR0
8359
- add x0, x1, :lo12:.LANCHOR0
8360
- add x2, x0, 2712
8361
- ldr w3, [x2, 80]
8362
- cbz w3, .L1232
8363
- ldr w1, [x0, 2624]
8364
- ldr w3, [x2, 84]
8365
- cmp w3, w1
8366
- bcs .L1233
8367
- mov x19, x0
8368
- mov w21, 2048
8369
-.L1238:
8370
- add x22, x19, 2712
9607
+ adrp x19, .LANCHOR0
9608
+ add x19, x19, :lo12:.LANCHOR0
9609
+ str x21, [sp, 32]
9610
+ ldr x1, [x0, 1376]
9611
+ str x1, [sp, 152]
9612
+ mov x1, 0
9613
+ ldr w0, [x19, 2624]
9614
+ add x1, x19, 2712
9615
+ ldr w2, [x1, 80]
9616
+ cbz w2, .L1266
9617
+ ldr w2, [x1, 84]
9618
+ cmp w2, w0
9619
+ bcs .L1267
9620
+ mov w20, 2048
9621
+.L1272:
83719622 ldr w1, [x19, 2624]
8372
- ldr w0, [x22, 84]
9623
+ add x21, x19, 2712
9624
+ ldr w0, [x21, 84]
83739625 cmp w0, w1
8374
- bcc .L1234
8375
-.L1237:
9626
+ bcc .L1268
9627
+.L1271:
83769628 mov w0, -1
8377
-.L1231:
8378
- add x20, x20, :lo12:__stack_chk_guard
8379
- ldr x2, [x29, 152]
8380
- ldr x1, [x20]
8381
- eor x1, x2, x1
8382
- cbz x1, .L1243
9629
+.L1265:
9630
+ mrs x1, sp_el0
9631
+ ldr x2, [sp, 152]
9632
+ ldr x3, [x1, 1376]
9633
+ subs x2, x2, x3
9634
+ mov x3, 0
9635
+ beq .L1276
83839636 bl __stack_chk_fail
8384
-.L1234:
8385
- add x1, x29, 52
9637
+.L1268:
9638
+ add x1, sp, 52
83869639 mov w2, 0
83879640 bl log2phys
8388
- ldr w0, [x22, 84]
8389
- ldr w1, [x29, 52]
9641
+ ldr w1, [sp, 52]
9642
+ ldr w0, [x21, 84]
83909643 add w0, w0, 1
8391
- str w0, [x22, 84]
9644
+ str w0, [x21, 84]
83929645 cmn w1, #1
8393
- beq .L1236
8394
- str w0, [x29, 80]
9646
+ beq .L1270
9647
+ str w0, [sp, 80]
83959648 mov w2, 0
8396
- ldr x0, [x19, 3504]
8397
- str x0, [x29, 64]
8398
- add x0, x29, 88
8399
- str x0, [x29, 72]
8400
- add x0, x29, 160
8401
- str w1, [x29, 60]
9649
+ ldr x0, [x19, 3496]
9650
+ str x0, [sp, 64]
9651
+ add x0, sp, 88
9652
+ stp wzr, w1, [sp, 56]
84029653 mov w1, 1
8403
- str wzr, [x0, -104]!
9654
+ str x0, [sp, 72]
9655
+ add x0, sp, 56
84049656 bl FlashReadPages
8405
- ldr w0, [x29, 56]
9657
+ ldr w0, [sp, 56]
84069658 cmp w0, 256
8407
- bne .L1237
8408
- ldr w0, [x29, 52]
8409
- lsr w0, w0, 10
9659
+ bne .L1271
9660
+ ldr w0, [sp, 52]
9661
+ ubfx x0, x0, 10, 16
84109662 bl P2V_block_in_plane
84119663 bl FtlGcRefreshBlock
8412
- b .L1237
8413
-.L1236:
8414
- subs w21, w21, #1
8415
- bne .L1238
8416
- b .L1237
8417
-.L1233:
8418
- ldr w0, [x0, 2628]
8419
- stp w0, wzr, [x2, 76]
8420
- str wzr, [x2, 84]
8421
-.L1246:
9664
+ b .L1271
9665
+.L1270:
9666
+ subs w20, w20, #1
9667
+ bne .L1272
9668
+ b .L1271
9669
+.L1267:
9670
+ ldr w0, [x19, 2628]
9671
+ str w0, [x1, 76]
9672
+ str xzr, [x1, 80]
9673
+.L1279:
84229674 mov w0, 0
8423
- b .L1231
8424
-.L1232:
8425
- ldr w4, [x0, 2684]
9675
+ b .L1265
9676
+.L1266:
9677
+ ldr w2, [x19, 2684]
84269678 mov w3, 10000
8427
- ldr w5, [x0, 2628]
8428
- mov w6, 31
8429
- cmp w4, w3
8430
- ldr w7, [x2, 76]
9679
+ mov w5, 31
9680
+ ldr w6, [x1, 76]
9681
+ cmp w2, w3
84319682 mov w3, 63
8432
- csel w6, w6, w3, hi
8433
- add w3, w5, 1048576
8434
- cmp w7, w3
8435
- bhi .L1242
8436
- ldr w3, [x0, 2624]
8437
- mov w8, 1000
8438
- lsr w4, w4, 10
8439
- add w4, w4, 1
8440
- mul w3, w3, w8
8441
- udiv w3, w3, w4
8442
- add w3, w3, w7
8443
- cmp w5, w3
8444
- bhi .L1242
8445
- ldrh w0, [x0, 2540]
8446
- tst w6, w0
8447
- bne .L1246
8448
- ldr w2, [x2, 100]
8449
- cmp w0, w2
8450
- beq .L1246
8451
-.L1242:
8452
- add x0, x1, :lo12:.LANCHOR0
8453
- add x1, x0, 2712
8454
- ldrh w0, [x0, 2540]
8455
- str w0, [x1, 100]
8456
- str w5, [x1, 76]
8457
- mov w0, 1
8458
- str wzr, [x1, 84]
8459
- str w0, [x1, 80]
8460
- b .L1246
8461
-.L1243:
9683
+ csel w5, w5, w3, hi
9684
+ ldr w3, [x19, 2628]
9685
+ ldrh w4, [x19, 2540]
9686
+ add w7, w3, 1048576
9687
+ cmp w6, w7
9688
+ bhi .L1275
9689
+ mov w7, 1000
9690
+ lsr w2, w2, 10
9691
+ add w2, w2, 1
9692
+ mul w0, w0, w7
9693
+ udiv w0, w0, w2
9694
+ add w0, w0, w6
9695
+ cmp w3, w0
9696
+ bhi .L1275
9697
+ tst w5, w4
9698
+ bne .L1279
9699
+ ldr w0, [x1, 100]
9700
+ cmp w0, w4
9701
+ beq .L1279
9702
+.L1275:
9703
+ mov x0, 1
9704
+ str w3, [x19, 2788]
9705
+ str x0, [x19, 2792]
9706
+ str w4, [x19, 2812]
9707
+ b .L1279
9708
+.L1276:
84629709 ldp x19, x20, [sp, 16]
8463
- ldp x21, x22, [sp, 32]
9710
+ ldr x21, [sp, 32]
84649711 ldp x29, x30, [sp], 160
9712
+ hint 29 // autiasp
84659713 ret
84669714 .size FtlReadRefresh, .-FtlReadRefresh
84679715 .align 2
84689716 .global l2p_flush
84699717 .type l2p_flush, %function
84709718 l2p_flush:
9719
+ hint 34 // bti c
9720
+ .section __patchable_function_entries
9721
+ .align 3
9722
+ .8byte .LPFE101
9723
+ .text
9724
+.LPFE101:
9725
+ nop
9726
+ nop
9727
+ hint 25 // paciasp
84719728 stp x29, x30, [sp, -32]!
8472
- add x29, sp, 0
9729
+ mov x29, sp
84739730 stp x19, x20, [sp, 16]
84749731 adrp x20, .LANCHOR0
84759732 add x20, x20, :lo12:.LANCHOR0
84769733 mov w19, 0
84779734 bl FtlWriteDump_data
8478
-.L1250:
9735
+.L1283:
84799736 ldrh w0, [x20, 342]
84809737 cmp w0, w19
8481
- bhi .L1252
9738
+ bhi .L1285
84829739 mov w0, 0
84839740 ldp x19, x20, [sp, 16]
84849741 ldp x29, x30, [sp], 32
9742
+ hint 29 // autiasp
84859743 ret
8486
-.L1252:
9744
+.L1285:
84879745 ldr x1, [x20, 2608]
84889746 ubfiz x0, x19, 4, 16
84899747 add x0, x1, x0
84909748 ldr w0, [x0, 4]
8491
- tbz w0, #31, .L1251
9749
+ tbz w0, #31, .L1284
84929750 mov w0, w19
84939751 bl flush_l2p_region
8494
-.L1251:
9752
+.L1284:
84959753 add w19, w19, 1
84969754 and w19, w19, 65535
8497
- b .L1250
9755
+ b .L1283
84989756 .size l2p_flush, .-l2p_flush
84999757 .align 2
85009758 .global FtlVendorPartWrite
85019759 .type FtlVendorPartWrite, %function
85029760 FtlVendorPartWrite:
9761
+ hint 34 // bti c
9762
+ .section __patchable_function_entries
9763
+ .align 3
9764
+ .8byte .LPFE102
9765
+ .text
9766
+.LPFE102:
9767
+ nop
9768
+ nop
9769
+ hint 25 // paciasp
85039770 stp x29, x30, [sp, -224]!
8504
- add x29, sp, 0
9771
+ mov x29, sp
85059772 stp x19, x20, [sp, 16]
85069773 adrp x19, .LANCHOR0
8507
- stp x21, x22, [sp, 32]
85089774 add x19, x19, :lo12:.LANCHOR0
8509
- stp x25, x26, [sp, 64]
8510
- adrp x22, __stack_chk_guard
8511
- stp x27, x28, [sp, 80]
8512
- mov w26, w0
9775
+ stp x21, x22, [sp, 32]
9776
+ mov w21, w0
9777
+ mrs x0, sp_el0
85139778 stp x23, x24, [sp, 48]
8514
- add x0, x22, :lo12:__stack_chk_guard
8515
- mov w28, w1
8516
- ldr x1, [x0]
8517
- str x1, [x29, 216]
8518
- mov x1,0
9779
+ mov w20, w1
9780
+ ldrh w22, [x19, 312]
9781
+ stp x25, x26, [sp, 64]
9782
+ stp x27, x28, [sp, 80]
9783
+ lsr w22, w21, w22
9784
+ ldr x1, [x0, 1376]
9785
+ str x1, [sp, 216]
9786
+ mov x1, 0
85199787 ldrh w0, [x19, 300]
8520
- add w1, w26, w28
9788
+ add w1, w21, w20
85219789 cmp w1, w0
8522
- bhi .L1263
8523
- ldrh w23, [x19, 312]
8524
- mov x25, x2
8525
- add x27, x19, 3888
8526
- mov w24, 0
8527
- lsr w23, w26, w23
8528
-.L1256:
8529
- cbnz w28, .L1261
8530
-.L1254:
8531
- add x22, x22, :lo12:__stack_chk_guard
8532
- mov w0, w24
8533
- ldr x2, [x29, 216]
8534
- ldr x1, [x22]
8535
- eor x1, x2, x1
8536
- cbz x1, .L1262
9790
+ bhi .L1296
9791
+ mov x24, x2
9792
+ add x27, x19, 3880
9793
+ mov w25, 0
9794
+ mov w28, -1
9795
+.L1289:
9796
+ cbnz w20, .L1294
9797
+.L1287:
9798
+ mrs x0, sp_el0
9799
+ ldr x1, [sp, 216]
9800
+ ldr x2, [x0, 1376]
9801
+ subs x1, x1, x2
9802
+ mov x2, 0
9803
+ beq .L1295
85379804 bl __stack_chk_fail
8538
-.L1261:
9805
+.L1294:
85399806 ldrh w1, [x19, 262]
8540
- ldr x0, [x19, 3600]
8541
- udiv w21, w26, w1
8542
- ldr w2, [x0, w23, uxtw 2]
8543
- and w0, w28, 65535
8544
- msub w21, w21, w1, w26
8545
- sub w20, w1, w21
8546
- and w20, w20, 65535
8547
- cmp w28, w20
8548
- csel w20, w0, w20, cc
8549
- cbz w2, .L1258
8550
- cmp w20, w1
8551
- beq .L1258
8552
- ldr x0, [x19, 3472]
8553
- str x0, [x29, 128]
8554
- add x0, x29, 152
8555
- str w2, [x29, 124]
9807
+ ldr x0, [x19, 3592]
9808
+ udiv w23, w21, w1
9809
+ ldr w2, [x0, w22, uxtw 2]
9810
+ msub w23, w23, w1, w21
9811
+ sub w0, w1, w23
9812
+ and w26, w0, 65535
9813
+ cmp w20, w0, uxth
9814
+ bcs .L1290
9815
+ and w26, w20, 65535
9816
+.L1290:
9817
+ ldr x0, [x19, 3464]
9818
+ cbz w2, .L1291
9819
+ cmp w1, w26
9820
+ beq .L1291
9821
+ str x0, [sp, 128]
9822
+ add x0, sp, 152
9823
+ str w2, [sp, 124]
85569824 mov w2, 1
8557
- str x0, [x29, 136]
85589825 mov w1, w2
8559
- add x0, x29, 120
9826
+ str x0, [sp, 136]
9827
+ add x0, sp, 120
85609828 bl FlashReadPages
8561
-.L1259:
8562
- lsl w4, w20, 9
8563
- ldr x0, [x19, 3472]
8564
- lsl w21, w21, 9
9829
+.L1292:
9830
+ lsl w4, w26, 9
9831
+ sbfiz x23, x23, 9, 23
9832
+ ldr x0, [x19, 3464]
85659833 mov w2, w4
8566
- asr w21, w21, 2
8567
- mov x1, x25
8568
- str w4, [x29, 108]
8569
- add x0, x0, x21, sxtw 2
9834
+ mov x1, x24
9835
+ str w4, [sp, 108]
9836
+ add x0, x0, x23
85709837 bl ftl_memcpy
8571
- sub w28, w28, w20
8572
- ldr x2, [x19, 3472]
8573
- mov w1, w23
9838
+ ldr x2, [x19, 3464]
9839
+ mov w1, w22
85749840 mov x0, x27
8575
- add w26, w26, w20
8576
- add w23, w23, 1
9841
+ sub w20, w20, w26
9842
+ add w21, w21, w26
9843
+ add w22, w22, 1
85779844 bl FtlMapWritePage
9845
+ ldr w4, [sp, 108]
85789846 cmn w0, #1
8579
- ldr w4, [x29, 108]
8580
- csinv w24, w24, wzr, ne
8581
- add x25, x25, x4, sxtw
8582
- b .L1256
8583
-.L1258:
9847
+ csel w25, w25, w28, ne
9848
+ add x24, x24, w4, sxtw
9849
+ b .L1289
9850
+.L1291:
85849851 ldrh w2, [x19, 314]
85859852 mov w1, 0
8586
- ldr x0, [x19, 3472]
85879853 bl ftl_memset
8588
- b .L1259
8589
-.L1263:
8590
- mov w24, -1
8591
- b .L1254
8592
-.L1262:
9854
+ b .L1292
9855
+.L1296:
9856
+ mov w25, -1
9857
+ b .L1287
9858
+.L1295:
9859
+ mov w0, w25
85939860 ldp x19, x20, [sp, 16]
85949861 ldp x21, x22, [sp, 32]
85959862 ldp x23, x24, [sp, 48]
85969863 ldp x25, x26, [sp, 64]
85979864 ldp x27, x28, [sp, 80]
85989865 ldp x29, x30, [sp], 224
9866
+ hint 29 // autiasp
85999867 ret
86009868 .size FtlVendorPartWrite, .-FtlVendorPartWrite
86019869 .align 2
86029870 .global Ftl_save_ext_data
86039871 .type Ftl_save_ext_data, %function
86049872 Ftl_save_ext_data:
9873
+ hint 34 // bti c
9874
+ .section __patchable_function_entries
9875
+ .align 3
9876
+ .8byte .LPFE103
9877
+ .text
9878
+.LPFE103:
9879
+ nop
9880
+ nop
86059881 adrp x0, .LANCHOR0
86069882 add x0, x0, :lo12:.LANCHOR0
86079883 mov w1, 19539
86089884 movk w1, 0x4654, lsl 16
86099885 ldr w3, [x0, 2712]
86109886 cmp w3, w1
8611
- bne .L1271
8612
- stp x29, x30, [sp, -16]!
9887
+ bne .L1304
86139888 add x2, x0, 2712
9889
+ hint 25 // paciasp
9890
+ stp x29, x30, [sp, -16]!
86149891 mov w1, 87
8615
- add x29, sp, 0
86169892 movk w1, 0x5000, lsl 16
9893
+ mov x29, sp
86179894 str w1, [x2, 4]
86189895 ldr w1, [x0, 2652]
86199896 str w1, [x2, 88]
....@@ -8642,60 +9919,67 @@
86429919 mov w0, 0
86439920 bl FtlVendorPartWrite
86449921 ldp x29, x30, [sp], 16
9922
+ hint 29 // autiasp
86459923 ret
8646
-.L1271:
9924
+.L1304:
86479925 ret
86489926 .size Ftl_save_ext_data, .-Ftl_save_ext_data
86499927 .align 2
86509928 .global FtlEctTblFlush
86519929 .type FtlEctTblFlush, %function
86529930 FtlEctTblFlush:
8653
- adrp x1, .LANCHOR0
8654
- add x3, x1, :lo12:.LANCHOR0
8655
- ldrh w2, [x3, 3952]
8656
- cmp w2, 31
8657
- bhi .L1278
8658
- add w2, w2, 1
8659
- strh w2, [x3, 3952]
8660
- mov w2, 1
8661
-.L1275:
8662
- cbnz w0, .L1276
8663
- add x0, x1, :lo12:.LANCHOR0
8664
- ldr x0, [x0, 3552]
8665
- ldr w3, [x0, 20]
8666
- ldr w0, [x0, 16]
8667
- add w2, w2, w3
8668
- cmp w0, w2
8669
- bcc .L1280
8670
-.L1276:
8671
- add x0, x1, :lo12:.LANCHOR0
9931
+ hint 34 // bti c
9932
+ .section __patchable_function_entries
9933
+ .align 3
9934
+ .8byte .LPFE104
9935
+ .text
9936
+.LPFE104:
9937
+ nop
9938
+ nop
9939
+ adrp x2, .LANCHOR0
9940
+ add x2, x2, :lo12:.LANCHOR0
9941
+ ldrh w1, [x2, 3944]
9942
+ cmp w1, 31
9943
+ bhi .L1311
9944
+ add w1, w1, 1
9945
+ mov w3, 1
9946
+ strh w1, [x2, 3944]
9947
+.L1308:
9948
+ ldr x1, [x2, 3544]
9949
+ ldr w4, [x1, 16]
9950
+ cbnz w0, .L1309
9951
+ ldr w0, [x1, 20]
9952
+ add w3, w3, w0
9953
+ cmp w3, w4
9954
+ bhi .L1313
9955
+.L1309:
9956
+ hint 25 // paciasp
86729957 stp x29, x30, [sp, -16]!
8673
- add x29, sp, 0
8674
- ldr x1, [x0, 3552]
8675
- ldr w2, [x1, 16]
8676
- str w2, [x1, 20]
8677
- mov w2, 17221
8678
- movk w2, 0x4254, lsl 16
8679
- str w2, [x1]
8680
- ldr x2, [x0, 3552]
8681
- ldrh w1, [x0, 3536]
9958
+ mov w0, 17221
9959
+ mov x29, sp
9960
+ movk w0, 0x4254, lsl 16
9961
+ str w0, [x1]
9962
+ str w4, [x1, 20]
9963
+ ldr x0, [x2, 3544]
9964
+ ldrh w1, [x2, 3528]
9965
+ str wzr, [x0, 4]
86829966 lsl w3, w1, 9
8683
- str wzr, [x2, 4]
8684
- str w3, [x2, 12]
8685
- ldr w3, [x2, 8]
9967
+ str w3, [x0, 12]
9968
+ ldr w3, [x0, 8]
9969
+ ldr x2, [x2, 3544]
86869970 add w3, w3, 1
8687
- str w3, [x2, 8]
8688
- ldr x2, [x0, 3552]
9971
+ str w3, [x0, 8]
86899972 mov w0, 64
86909973 bl FtlVendorPartWrite
86919974 bl Ftl_save_ext_data
86929975 mov w0, 0
86939976 ldp x29, x30, [sp], 16
9977
+ hint 29 // autiasp
86949978 ret
8695
-.L1278:
8696
- mov w2, 32
8697
- b .L1275
8698
-.L1280:
9979
+.L1311:
9980
+ mov w3, 32
9981
+ b .L1308
9982
+.L1313:
86999983 mov w0, 0
87009984 ret
87019985 .size FtlEctTblFlush, .-FtlEctTblFlush
....@@ -8703,497 +9987,580 @@
87039987 .global sftl_vendor_write
87049988 .type sftl_vendor_write, %function
87059989 sftl_vendor_write:
9990
+ hint 34 // bti c
9991
+ .section __patchable_function_entries
9992
+ .align 3
9993
+ .8byte .LPFE105
9994
+ .text
9995
+.LPFE105:
9996
+ nop
9997
+ nop
9998
+ hint 25 // paciasp
87069999 stp x29, x30, [sp, -16]!
870710000 add w0, w0, 256
8708
- add x29, sp, 0
10001
+ mov x29, sp
870910002 bl FtlVendorPartWrite
871010003 ldp x29, x30, [sp], 16
10004
+ hint 29 // autiasp
871110005 ret
871210006 .size sftl_vendor_write, .-sftl_vendor_write
10007
+ .section .rodata.str1.1
10008
+.LC119:
10009
+ .string "FtlVendorPartRead refresh = %x phyAddr = %x\n"
10010
+ .text
871310011 .align 2
871410012 .global FtlVendorPartRead
871510013 .type FtlVendorPartRead, %function
871610014 FtlVendorPartRead:
10015
+ hint 34 // bti c
10016
+ .section __patchable_function_entries
10017
+ .align 3
10018
+ .8byte .LPFE106
10019
+ .text
10020
+.LPFE106:
10021
+ nop
10022
+ nop
10023
+ hint 25 // paciasp
871710024 stp x29, x30, [sp, -224]!
871810025 adrp x3, .LANCHOR0
8719
- add x3, x3, :lo12:.LANCHOR0
8720
- add x29, sp, 0
8721
- stp x21, x22, [sp, 32]
8722
- mov w22, w1
8723
- stp x23, x24, [sp, 48]
8724
- mov w23, w0
8725
- stp x25, x26, [sp, 64]
8726
- adrp x0, __stack_chk_guard
8727
- stp x19, x20, [sp, 16]
8728
- add x1, x0, :lo12:__stack_chk_guard
10026
+ mov x29, sp
872910027 stp x27, x28, [sp, 80]
8730
- mov x25, x2
8731
- str x0, [x29, 104]
8732
- ldr x2, [x1]
8733
- str x2, [x29, 216]
8734
- mov x2,0
8735
- ldrh w1, [x3, 300]
8736
- add w2, w23, w22
8737
- cmp w2, w1
8738
- bhi .L1294
8739
- ldrh w21, [x3, 312]
8740
- adrp x26, .LC118
8741
- mov x28, x3
8742
- add x26, x26, :lo12:.LC118
10028
+ add x28, x3, :lo12:.LANCHOR0
10029
+ stp x19, x20, [sp, 16]
10030
+ mov w20, w0
10031
+ mrs x0, sp_el0
10032
+ stp x21, x22, [sp, 32]
10033
+ mov w19, w1
10034
+ ldrh w21, [x28, 312]
10035
+ stp x23, x24, [sp, 48]
10036
+ stp x25, x26, [sp, 64]
10037
+ lsr w21, w20, w21
10038
+ ldr x1, [x0, 1376]
10039
+ str x1, [sp, 216]
10040
+ mov x1, 0
10041
+ ldrh w0, [x28, 300]
10042
+ add w1, w20, w19
10043
+ cmp w1, w0
10044
+ bhi .L1327
10045
+ adrp x26, .LC119
10046
+ mov x22, x2
10047
+ add x26, x26, :lo12:.LC119
874310048 mov w24, 0
8744
- lsr w21, w23, w21
8745
-.L1286:
8746
- cbnz w22, .L1292
8747
-.L1284:
8748
- ldr x1, [x29, 104]
8749
- mov w0, w24
8750
- add x1, x1, :lo12:__stack_chk_guard
8751
- ldr x2, [x29, 216]
8752
- ldr x1, [x1]
8753
- eor x1, x2, x1
8754
- cbz x1, .L1293
10049
+.L1319:
10050
+ cbnz w19, .L1325
10051
+.L1317:
10052
+ mrs x0, sp_el0
10053
+ ldr x1, [sp, 216]
10054
+ ldr x2, [x0, 1376]
10055
+ subs x1, x1, x2
10056
+ mov x2, 0
10057
+ beq .L1326
875510058 bl __stack_chk_fail
8756
-.L1292:
8757
- ldrh w19, [x28, 262]
8758
- ldr x0, [x28, 3600]
8759
- udiv w20, w23, w19
10059
+.L1325:
10060
+ ldr x0, [x28, 3592]
876010061 ldr w4, [x0, w21, uxtw 2]
8761
- and w0, w22, 65535
8762
- msub w20, w20, w19, w23
8763
- sub w19, w19, w20
8764
- and w19, w19, 65535
8765
- cmp w22, w19
8766
- csel w19, w0, w19, cc
8767
- lsl w27, w19, 9
8768
- cbz w4, .L1288
8769
- ldr x0, [x28, 3472]
10062
+ ldrh w0, [x28, 262]
10063
+ udiv w23, w20, w0
10064
+ msub w23, w23, w0, w20
10065
+ sub w0, w0, w23
10066
+ and w25, w0, 65535
10067
+ cmp w19, w0, uxth
10068
+ bcs .L1320
10069
+ and w25, w19, 65535
10070
+.L1320:
10071
+ lsl w27, w25, 9
10072
+ cbz w4, .L1321
10073
+ ldr x0, [x28, 3464]
10074
+ str x0, [sp, 128]
10075
+ add x0, sp, 152
877010076 mov w2, 1
8771
- str x0, [x29, 128]
8772
- add x0, x29, 152
8773
- str w4, [x29, 100]
877410077 mov w1, w2
8775
- str w4, [x29, 124]
8776
- str x0, [x29, 136]
8777
- add x0, x29, 120
10078
+ str w4, [sp, 108]
10079
+ str w4, [sp, 124]
10080
+ str x0, [sp, 136]
10081
+ add x0, sp, 120
877810082 bl FlashReadPages
8779
- ldr w0, [x29, 120]
8780
- ldr w4, [x29, 100]
10083
+ ldr w0, [sp, 120]
10084
+ ldr w4, [sp, 108]
878110085 cmn w0, #1
8782
- ldr w0, [x28, 3720]
10086
+ ldr w0, [x28, 3712]
878310087 csinv w24, w24, wzr, ne
878410088 cmp w0, 256
8785
- bne .L1290
10089
+ bne .L1323
878610090 mov w2, w4
878710091 mov w1, w21
878810092 mov x0, x26
878910093 bl sftl_printk
8790
- ldr x2, [x28, 3472]
10094
+ ldr x2, [x28, 3464]
879110095 mov w1, w21
8792
- add x0, x28, 3888
10096
+ add x0, x28, 3880
879310097 bl FtlMapWritePage
8794
-.L1290:
8795
- ldr x1, [x28, 3472]
8796
- lsl w20, w20, 9
8797
- asr w20, w20, 2
10098
+.L1323:
10099
+ ldr x1, [x28, 3464]
10100
+ sbfiz x23, x23, 9, 23
879810101 mov w2, w27
8799
- mov x0, x25
8800
- add x1, x1, x20, sxtw 2
10102
+ mov x0, x22
10103
+ add x1, x1, x23
880110104 bl ftl_memcpy
8802
-.L1291:
10105
+.L1324:
880310106 add w21, w21, 1
8804
- sub w22, w22, w19
8805
- add w23, w23, w19
8806
- add x25, x25, x27, sxtw
8807
- b .L1286
8808
-.L1288:
10107
+ sub w19, w19, w25
10108
+ add w20, w20, w25
10109
+ add x22, x22, w27, sxtw
10110
+ b .L1319
10111
+.L1321:
880910112 mov w2, w27
10113
+ mov x0, x22
881010114 mov w1, 0
8811
- mov x0, x25
881210115 bl ftl_memset
8813
- b .L1291
8814
-.L1294:
10116
+ b .L1324
10117
+.L1327:
881510118 mov w24, -1
8816
- b .L1284
8817
-.L1293:
10119
+ b .L1317
10120
+.L1326:
10121
+ mov w0, w24
881810122 ldp x19, x20, [sp, 16]
881910123 ldp x21, x22, [sp, 32]
882010124 ldp x23, x24, [sp, 48]
882110125 ldp x25, x26, [sp, 64]
882210126 ldp x27, x28, [sp, 80]
882310127 ldp x29, x30, [sp], 224
10128
+ hint 29 // autiasp
882410129 ret
882510130 .size FtlVendorPartRead, .-FtlVendorPartRead
10131
+ .section .rodata.str1.1
10132
+.LC120:
10133
+ .string "no ect"
10134
+ .text
882610135 .align 2
882710136 .global FtlLoadEctTbl
882810137 .type FtlLoadEctTbl, %function
882910138 FtlLoadEctTbl:
10139
+ hint 34 // bti c
10140
+ .section __patchable_function_entries
10141
+ .align 3
10142
+ .8byte .LPFE107
10143
+ .text
10144
+.LPFE107:
10145
+ nop
10146
+ nop
10147
+ hint 25 // paciasp
883010148 stp x29, x30, [sp, -32]!
883110149 mov w0, 64
8832
- add x29, sp, 0
10150
+ mov x29, sp
883310151 str x19, [sp, 16]
883410152 adrp x19, .LANCHOR0
883510153 add x19, x19, :lo12:.LANCHOR0
8836
- ldrh w1, [x19, 3536]
8837
- ldr x2, [x19, 3552]
10154
+ ldrh w1, [x19, 3528]
10155
+ ldr x2, [x19, 3544]
883810156 bl FtlVendorPartRead
8839
- ldr x0, [x19, 3552]
10157
+ ldr x0, [x19, 3544]
884010158 ldr w1, [x0]
884110159 mov w0, 17221
884210160 movk w0, 0x4254, lsl 16
884310161 cmp w1, w0
8844
- beq .L1297
8845
- adrp x1, .LC119
8846
- adrp x0, .LC77
8847
- add x1, x1, :lo12:.LC119
8848
- add x0, x0, :lo12:.LC77
10162
+ beq .L1330
10163
+ adrp x1, .LC120
10164
+ adrp x0, .LC78
10165
+ add x1, x1, :lo12:.LC120
10166
+ add x0, x0, :lo12:.LC78
884910167 bl sftl_printk
8850
- ldr x0, [x19, 3552]
10168
+ ldr x0, [x19, 3544]
885110169 mov w1, 0
8852
- ldrh w2, [x19, 3536]
10170
+ ldrh w2, [x19, 3528]
885310171 lsl w2, w2, 9
885410172 bl ftl_memset
8855
-.L1297:
10173
+.L1330:
885610174 mov w0, 0
885710175 ldr x19, [sp, 16]
885810176 ldp x29, x30, [sp], 32
10177
+ hint 29 // autiasp
885910178 ret
886010179 .size FtlLoadEctTbl, .-FtlLoadEctTbl
886110180 .align 2
886210181 .global Ftl_load_ext_data
886310182 .type Ftl_load_ext_data, %function
886410183 Ftl_load_ext_data:
10184
+ hint 34 // bti c
10185
+ .section __patchable_function_entries
10186
+ .align 3
10187
+ .8byte .LPFE108
10188
+ .text
10189
+.LPFE108:
10190
+ nop
10191
+ nop
10192
+ hint 25 // paciasp
886510193 stp x29, x30, [sp, -48]!
886610194 mov w1, 1
8867
- mov w0, 0
8868
- add x29, sp, 0
10195
+ mov x29, sp
886910196 stp x19, x20, [sp, 16]
887010197 adrp x19, .LANCHOR0
8871
- add x20, x19, :lo12:.LANCHOR0
8872
- stp x21, x22, [sp, 32]
8873
- add x22, x20, 2712
8874
- mov w21, 19539
8875
- mov x2, x22
10198
+ add x19, x19, :lo12:.LANCHOR0
10199
+ str x21, [sp, 32]
10200
+ add x21, x19, 2712
10201
+ mov x2, x21
10202
+ mov w0, 0
887610203 bl FtlVendorPartRead
8877
- ldr w0, [x20, 2712]
8878
- movk w21, 0x4654, lsl 16
8879
- cmp w0, w21
8880
- beq .L1300
10204
+ mov w20, 19539
10205
+ ldr w0, [x19, 2712]
10206
+ movk w20, 0x4654, lsl 16
10207
+ cmp w0, w20
10208
+ beq .L1333
10209
+ mov x0, x21
888110210 mov w2, 512
888210211 mov w1, 0
8883
- mov x0, x22
888410212 bl ftl_memset
8885
- str w21, [x20, 2712]
8886
-.L1300:
8887
- add x0, x19, :lo12:.LANCHOR0
8888
- mov w2, 19539
8889
- movk w2, 0x4654, lsl 16
8890
- ldr w3, [x0, 2712]
8891
- cmp w3, w2
8892
- bne .L1301
8893
- ldr w2, [x0, 2800]
8894
- str w2, [x0, 2652]
8895
- ldr w2, [x0, 2804]
8896
- str w2, [x0, 2656]
8897
- ldr w2, [x0, 2720]
8898
- str w2, [x0, 2648]
8899
- ldr w2, [x0, 2724]
8900
- str w2, [x0, 2636]
8901
- ldr w2, [x0, 2728]
8902
- str w2, [x0, 2628]
8903
- ldr w2, [x0, 2732]
8904
- str w2, [x0, 2644]
8905
- ldr w2, [x0, 2740]
8906
- str w2, [x0, 2672]
8907
- ldr w2, [x0, 2744]
8908
- str w2, [x0, 2680]
8909
- ldr w2, [x0, 2748]
8910
- str w2, [x0, 2632]
8911
- ldr w2, [x0, 2752]
8912
- ldr w1, [x0, 2760]
8913
- str w2, [x0, 2640]
8914
- ldr w2, [x0, 2756]
8915
- str w1, [x0, 2688]
8916
- str w2, [x0, 2684]
8917
-.L1301:
8918
- add x0, x19, :lo12:.LANCHOR0
8919
- ldr w2, [x0, 2672]
8920
- ldrh w1, [x0, 296]
8921
- ldr w3, [x0, 2668]
8922
- madd w1, w1, w3, w2
8923
- ldrh w2, [x0, 244]
8924
- udiv w1, w1, w2
8925
- str w1, [x0, 2676]
10213
+ str w20, [x19, 2712]
10214
+.L1333:
10215
+ ldr w1, [x19, 2800]
10216
+ str w1, [x19, 2652]
10217
+ ldr w1, [x19, 2804]
10218
+ ldr w2, [x19, 2744]
10219
+ str w1, [x19, 2656]
10220
+ ldr w1, [x19, 2720]
10221
+ str w1, [x19, 2648]
10222
+ ldr w1, [x19, 2724]
10223
+ str w2, [x19, 2680]
10224
+ ldr w2, [x19, 2748]
10225
+ str w2, [x19, 2632]
10226
+ ldr w2, [x19, 2752]
10227
+ str w1, [x19, 2636]
10228
+ ldr w1, [x19, 2728]
10229
+ ldr w0, [x19, 2760]
10230
+ str w1, [x19, 2628]
10231
+ ldr w1, [x19, 2732]
10232
+ str w2, [x19, 2640]
10233
+ ldr w2, [x19, 2756]
10234
+ str w1, [x19, 2644]
10235
+ ldr w1, [x19, 2740]
10236
+ str w2, [x19, 2684]
10237
+ ldr w2, [x19, 2668]
10238
+ str w0, [x19, 2688]
10239
+ ldrh w0, [x19, 296]
10240
+ str w1, [x19, 2672]
10241
+ ldr x21, [sp, 32]
10242
+ madd w0, w0, w2, w1
10243
+ ldrh w1, [x19, 244]
10244
+ udiv w0, w0, w1
10245
+ str w0, [x19, 2676]
892610246 ldp x19, x20, [sp, 16]
8927
- ldp x21, x22, [sp, 32]
892810247 ldp x29, x30, [sp], 48
10248
+ hint 29 // autiasp
892910249 ret
893010250 .size Ftl_load_ext_data, .-Ftl_load_ext_data
893110251 .align 2
893210252 .global sftl_vendor_read
893310253 .type sftl_vendor_read, %function
893410254 sftl_vendor_read:
10255
+ hint 34 // bti c
10256
+ .section __patchable_function_entries
10257
+ .align 3
10258
+ .8byte .LPFE109
10259
+ .text
10260
+.LPFE109:
10261
+ nop
10262
+ nop
10263
+ hint 25 // paciasp
893510264 stp x29, x30, [sp, -16]!
893610265 add w0, w0, 256
8937
- add x29, sp, 0
10266
+ mov x29, sp
893810267 bl FtlVendorPartRead
893910268 ldp x29, x30, [sp], 16
10269
+ hint 29 // autiasp
894010270 ret
894110271 .size sftl_vendor_read, .-sftl_vendor_read
894210272 .align 2
894310273 .global FtlMapBlkWriteDump_data
894410274 .type FtlMapBlkWriteDump_data, %function
894510275 FtlMapBlkWriteDump_data:
8946
- ldr w1, [x0, 56]
8947
- cbz w1, .L1313
10276
+ hint 34 // bti c
10277
+ .section __patchable_function_entries
10278
+ .align 3
10279
+ .8byte .LPFE110
10280
+ .text
10281
+.LPFE110:
10282
+ nop
10283
+ nop
10284
+ hint 25 // paciasp
894810285 stp x29, x30, [sp, -48]!
8949
- adrp x1, .LANCHOR0
8950
- add x2, x1, :lo12:.LANCHOR0
8951
- add x29, sp, 0
10286
+ mov x29, sp
895210287 stp x19, x20, [sp, 16]
895310288 mov x19, x0
895410289 str x21, [sp, 32]
8955
- add x0, x2, 3720
8956
- mov x21, x1
8957
- ldrh w20, [x19, 6]
8958
- ldr x4, [x2, 3520]
8959
- sub w20, w20, #1
8960
- ldr x3, [x2, 3464]
8961
- and w20, w20, 65535
8962
- ldr x5, [x19, 40]
8963
- stp x3, x4, [x0, 8]
8964
- ubfiz x4, x20, 2, 16
10290
+ ldr w0, [x0, 56]
10291
+ cbz w0, .L1337
10292
+ ldrh w1, [x19, 6]
10293
+ adrp x20, .LANCHOR0
10294
+ add x20, x20, :lo12:.LANCHOR0
896510295 str wzr, [x19, 56]
8966
- ldr w4, [x5, x4]
8967
- str w4, [x0, 4]
8968
- cbz w4, .L1307
10296
+ sub w1, w1, #1
10297
+ add x0, x20, 3712
10298
+ ldr x2, [x19, 40]
10299
+ and w21, w1, 65535
10300
+ ubfiz x1, x1, 2, 16
10301
+ ldr x3, [x20, 3456]
10302
+ ldr x4, [x20, 3512]
10303
+ stp x3, x4, [x0, 8]
10304
+ ldr w1, [x2, x1]
10305
+ str w1, [x0, 4]
10306
+ cbz w1, .L1339
896910307 mov w2, 1
897010308 mov w1, w2
897110309 bl FlashReadPages
8972
-.L1308:
8973
- add x1, x21, :lo12:.LANCHOR0
10310
+.L1340:
10311
+ ldr x2, [x20, 3720]
10312
+ mov w1, w21
897410313 mov x0, x19
8975
- ldr x2, [x1, 3728]
8976
- mov w1, w20
897710314 bl FtlMapWritePage
8978
- ldr x21, [sp, 32]
10315
+.L1337:
897910316 ldp x19, x20, [sp, 16]
10317
+ ldr x21, [sp, 32]
898010318 ldp x29, x30, [sp], 48
10319
+ hint 29 // autiasp
898110320 ret
8982
-.L1307:
8983
- ldrh w2, [x2, 314]
8984
- mov w1, 255
10321
+.L1339:
10322
+ ldrh w2, [x20, 314]
898510323 mov x0, x3
10324
+ mov w1, 255
898610325 bl ftl_memset
8987
- b .L1308
8988
-.L1313:
8989
- ret
10326
+ b .L1340
899010327 .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data
10328
+ .section .rodata.str1.1
10329
+.LC121:
10330
+ .string "FtlVpcTblFlush error = %x error count = %d\n"
10331
+ .text
899110332 .align 2
899210333 .global FtlVpcTblFlush
899310334 .type FtlVpcTblFlush, %function
899410335 FtlVpcTblFlush:
10336
+ hint 34 // bti c
10337
+ .section __patchable_function_entries
10338
+ .align 3
10339
+ .8byte .LPFE111
10340
+ .text
10341
+.LPFE111:
10342
+ nop
10343
+ nop
10344
+ hint 25 // paciasp
899510345 stp x29, x30, [sp, -80]!
8996
- add x29, sp, 0
10346
+ mov x29, sp
899710347 stp x19, x20, [sp, 16]
10348
+ adrp x19, .LANCHOR0
10349
+ add x19, x19, :lo12:.LANCHOR0
899810350 stp x21, x22, [sp, 32]
8999
- adrp x22, .LANCHOR0
9000
- add x19, x22, :lo12:.LANCHOR0
9001
- stp x25, x26, [sp, 64]
9002
- stp x23, x24, [sp, 48]
10351
+ add x21, x19, 2560
900310352 add x20, x19, 2512
9004
- add x23, x19, 2696
9005
- mov w21, 0
9006
- ldr x26, [x19, 3520]
10353
+ stp x23, x24, [sp, 48]
10354
+ adrp x23, .LANCHOR1
10355
+ add x23, x23, :lo12:.LANCHOR1
10356
+ str x25, [sp, 64]
10357
+ add x23, x23, 471
10358
+ ldr x22, [x19, 3512]
10359
+ str x22, [x19, 3728]
10360
+ ldr x0, [x19, 3448]
10361
+ str x0, [x19, 3720]
10362
+ ldrh w0, [x21, 136]
900710363 mov w24, 65535
9008
- ldr x0, [x19, 3456]
9009
- str x0, [x19, 3728]
9010
- ldrh w0, [x19, 2696]
9011
- str x26, [x19, 3736]
9012
- strh w0, [x26, 2]
10364
+ strh w0, [x22, 2]
901310365 mov w0, -3932
9014
- strh w0, [x26]
9015
- str wzr, [x26, 12]
9016
- ldr w0, [x19, 2704]
9017
- stp w0, wzr, [x26, 4]
9018
- mov w0, 19539
9019
- ldrh w1, [x19, 24]
9020
- movk w0, 0x4654, lsl 16
9021
- str w0, [x19, 2512]
9022
- mov w0, 87
9023
- ldrb w2, [x19, 30]
9024
- strh w1, [x19, 2526]
9025
- movk w0, 0x5000, lsl 16
9026
- ldrh w1, [x19, 26]
9027
- str w0, [x19, 2516]
9028
- ldrh w0, [x19, 2702]
10366
+ strh w0, [x22]
10367
+ ldr w0, [x21, 144]
10368
+ str w0, [x22, 4]
10369
+ mov x0, 19539
10370
+ str xzr, [x22, 8]
10371
+ movk x0, 0x4654, lsl 16
10372
+ ldrb w1, [x19, 30]
10373
+ movk x0, 0x57, lsl 32
10374
+ movk x0, 0x5000, lsl 48
10375
+ str x0, [x19, 2512]
10376
+ ldrh w0, [x21, 142]
902910377 strh w0, [x19, 2520]
9030
- orr w1, w2, w1, lsl 6
903110378 ldrh w0, [x19, 258]
903210379 strb w0, [x19, 2522]
9033
- strh w1, [x19, 2528]
9034
- ldrh w1, [x19, 80]
9035
- ldrb w2, [x19, 86]
9036
- strh w1, [x19, 2530]
9037
- ldrh w1, [x19, 82]
10380
+ ldrh w0, [x19, 24]
10381
+ strh w0, [x19, 2526]
10382
+ ldrh w0, [x19, 26]
10383
+ orr w0, w1, w0, lsl 6
10384
+ strh w0, [x19, 2528]
903810385 ldrb w0, [x19, 32]
903910386 strb w0, [x19, 2523]
9040
- orr w1, w2, w1, lsl 6
10387
+ ldrh w0, [x19, 80]
10388
+ ldrb w1, [x19, 86]
10389
+ strh w0, [x19, 2530]
10390
+ ldrh w0, [x19, 82]
10391
+ ldrh w2, [x19, 314]
10392
+ orr w0, w1, w0, lsl 6
10393
+ strh w0, [x19, 2532]
904110394 ldrb w0, [x19, 88]
9042
- strh w1, [x19, 2532]
904310395 strb w0, [x19, 2524]
9044
- ldrh w1, [x19, 128]
10396
+ ldrh w0, [x19, 128]
10397
+ ldrb w1, [x19, 134]
10398
+ strh w0, [x19, 2534]
10399
+ ldrh w0, [x19, 130]
10400
+ orr w0, w1, w0, lsl 6
10401
+ strh w0, [x19, 2536]
904510402 ldrb w0, [x19, 136]
9046
- ldrb w2, [x19, 134]
9047
- strh w1, [x19, 2534]
10403
+ mov w1, 255
904810404 strb w0, [x19, 2525]
9049
- ldrh w1, [x19, 130]
905010405 ldr w0, [x19, 2668]
905110406 str w0, [x19, 2544]
905210407 ldr w0, [x19, 2660]
9053
- orr w1, w2, w1, lsl 6
905410408 str w0, [x19, 2552]
905510409 ldr w0, [x19, 2664]
9056
- ldrh w2, [x19, 314]
905710410 str w0, [x19, 2548]
9058
- ldr x0, [x19, 3728]
9059
- strh w1, [x19, 2536]
9060
- mov w1, 255
10411
+ ldr x0, [x19, 3720]
906110412 bl ftl_memset
9062
- ldr x0, [x19, 3728]
10413
+ ldr x0, [x19, 3720]
906310414 mov x1, x20
906410415 mov w2, 48
9065
- mov x20, x23
9066
- adrp x23, .LANCHOR1
9067
- add x23, x23, :lo12:.LANCHOR1
9068
- add x23, x23, 560
10416
+ mov w20, 0
906910417 bl ftl_memcpy
907010418 ldrh w2, [x19, 244]
907110419 ldr x1, [x19, 72]
9072
- ldr x0, [x19, 3728]
10420
+ ldr x0, [x19, 3720]
907310421 lsl w2, w2, 1
907410422 add x0, x0, 48
907510423 bl ftl_memcpy
907610424 mov w0, 0
907710425 bl FtlUpdateVaildLpn
9078
-.L1317:
9079
- ldrh w2, [x20, 2]
9080
- ldrh w1, [x20]
9081
- ldr x0, [x19, 3456]
10426
+.L1346:
10427
+ ldrh w1, [x21, 136]
10428
+ ldrh w2, [x21, 138]
10429
+ ldr x0, [x19, 3448]
10430
+ str x0, [x19, 3720]
10431
+ ldr x0, [x19, 3512]
908210432 str x0, [x19, 3728]
9083
- ldr x0, [x19, 3520]
9084
- str x0, [x19, 3736]
908510433 orr w0, w2, w1, lsl 10
9086
- str w0, [x19, 3724]
10434
+ str w0, [x19, 3716]
908710435 ldrh w0, [x19, 308]
908810436 sub w0, w0, #1
908910437 cmp w2, w0
9090
- blt .L1318
9091
- ldrh w24, [x20, 4]
9092
- strh wzr, [x20, 2]
9093
- strh w1, [x20, 4]
10438
+ blt .L1347
10439
+ ldrh w24, [x21, 140]
10440
+ strh wzr, [x21, 138]
10441
+ strh w1, [x21, 140]
909410442 bl FtlFreeSysBlkQueueOut
909510443 ldr w1, [x19, 2660]
9096
- str w1, [x20, 8]
10444
+ str w1, [x21, 144]
909710445 add w2, w1, 1
909810446 str w2, [x19, 2660]
909910447 ubfiz w2, w0, 10, 16
9100
- str w2, [x19, 3724]
9101
- strh w0, [x20]
9102
- strh w0, [x26, 2]
9103
- str w1, [x26, 4]
9104
-.L1318:
10448
+ str w2, [x19, 3716]
10449
+ strh w0, [x22, 2]
10450
+ str w1, [x22, 4]
10451
+ strh w0, [x21, 136]
10452
+.L1347:
910510453 ldrh w1, [x19, 314]
9106
- ldr x0, [x19, 3456]
10454
+ ldr x0, [x19, 3448]
910710455 bl js_hash
9108
- str w0, [x26, 12]
10456
+ str w0, [x22, 12]
910910457 mov w3, 1
9110
- add x0, x19, 3720
10458
+ add x0, x19, 3712
911110459 mov w1, w3
911210460 mov w2, w3
911310461 bl FlashProgPages
9114
- ldrh w0, [x20, 2]
9115
- ldr w1, [x19, 3720]
10462
+ ldrh w0, [x21, 138]
10463
+ ldr w1, [x19, 3712]
911610464 add w0, w0, 1
911710465 and w0, w0, 65535
9118
- strh w0, [x20, 2]
10466
+ strh w0, [x21, 138]
911910467 cmn w1, #1
9120
- bne .L1319
10468
+ bne .L1348
912110469 cmp w0, 1
9122
- bne .L1320
9123
- adrp x0, .LC8
9124
- mov w2, 1145
10470
+ bne .L1350
912510471 mov x1, x23
9126
- add x0, x0, :lo12:.LC8
10472
+ mov w2, 1145
10473
+ adrp x0, .LC9
10474
+ add x0, x0, :lo12:.LC9
912710475 bl sftl_printk
9128
-.L1320:
9129
- ldrh w0, [x20, 2]
10476
+ ldrh w0, [x21, 138]
913010477 cmp w0, 1
9131
- bne .L1321
10478
+ bne .L1350
913210479 ldrh w0, [x19, 308]
913310480 sub w0, w0, #1
9134
- strh w0, [x20, 2]
9135
-.L1321:
9136
- add w21, w21, 1
9137
- and w21, w21, 65535
9138
- cmp w21, 3
9139
- bls .L1317
9140
- add x22, x22, :lo12:.LANCHOR0
9141
- adrp x0, .LC120
9142
- mov w2, w21
9143
- add x0, x0, :lo12:.LC120
9144
- ldr w1, [x22, 3724]
10481
+ strh w0, [x21, 138]
10482
+.L1350:
10483
+ add w20, w20, 1
10484
+ and w20, w20, 65535
10485
+ cmp w20, 3
10486
+ bls .L1346
10487
+ ldr w1, [x19, 3716]
10488
+ adrp x0, .LC121
10489
+ mov w2, w20
10490
+ add x0, x0, :lo12:.LC121
914510491 bl sftl_printk
9146
-.L1323:
9147
- b .L1323
9148
-.L1319:
10492
+.L1353:
10493
+ b .L1353
10494
+.L1348:
914910495 cmp w0, 1
9150
- beq .L1317
10496
+ beq .L1346
915110497 cmp w1, 256
9152
- beq .L1317
10498
+ beq .L1346
915310499 mov w0, 65535
915410500 cmp w24, w0
9155
- beq .L1324
9156
- mov w1, 1
10501
+ beq .L1354
915710502 mov w0, w24
10503
+ mov w1, 1
915810504 bl FtlFreeSysBlkQueueIn
9159
-.L1324:
10505
+.L1354:
916010506 mov w0, 0
916110507 ldp x19, x20, [sp, 16]
916210508 ldp x21, x22, [sp, 32]
916310509 ldp x23, x24, [sp, 48]
9164
- ldp x25, x26, [sp, 64]
10510
+ ldr x25, [sp, 64]
916510511 ldp x29, x30, [sp], 80
10512
+ hint 29 // autiasp
916610513 ret
916710514 .size FtlVpcTblFlush, .-FtlVpcTblFlush
916810515 .align 2
916910516 .global FtlSysFlush
917010517 .type FtlSysFlush, %function
917110518 FtlSysFlush:
10519
+ hint 34 // bti c
10520
+ .section __patchable_function_entries
10521
+ .align 3
10522
+ .8byte .LPFE112
10523
+ .text
10524
+.LPFE112:
10525
+ nop
10526
+ nop
10527
+ hint 25 // paciasp
917210528 stp x29, x30, [sp, -16]!
9173
- add x29, sp, 0
10529
+ mov x29, sp
917410530 bl l2p_flush
917510531 mov w0, 1
917610532 bl FtlEctTblFlush
917710533 bl FtlVpcTblFlush
917810534 mov w0, 0
917910535 ldp x29, x30, [sp], 16
10536
+ hint 29 // autiasp
918010537 ret
918110538 .size FtlSysFlush, .-FtlSysFlush
918210539 .align 2
918310540 .global sftl_deinit
918410541 .type sftl_deinit, %function
918510542 sftl_deinit:
10543
+ hint 34 // bti c
10544
+ .section __patchable_function_entries
10545
+ .align 3
10546
+ .8byte .LPFE113
10547
+ .text
10548
+.LPFE113:
10549
+ nop
10550
+ nop
918610551 adrp x0, .LANCHOR2
918710552 ldr w0, [x0, #:lo12:.LANCHOR2]
918810553 cmp w0, 1
9189
- bne .L1337
10554
+ bne .L1367
10555
+ hint 25 // paciasp
919010556 stp x29, x30, [sp, -16]!
9191
- add x29, sp, 0
10557
+ mov x29, sp
919210558 bl FtlSysFlush
919310559 mov w0, 0
919410560 ldp x29, x30, [sp], 16
10561
+ hint 29 // autiasp
919510562 ret
9196
-.L1337:
10563
+.L1367:
919710564 mov w0, 0
919810565 ret
919910566 .size sftl_deinit, .-sftl_deinit
....@@ -9201,545 +10568,580 @@
920110568 .global sftl_discard
920210569 .type sftl_discard, %function
920310570 sftl_discard:
10571
+ hint 34 // bti c
10572
+ .section __patchable_function_entries
10573
+ .align 3
10574
+ .8byte .LPFE114
10575
+ .text
10576
+.LPFE114:
10577
+ nop
10578
+ nop
10579
+ hint 25 // paciasp
920410580 stp x29, x30, [sp, -64]!
9205
- add x29, sp, 0
10581
+ mov x29, sp
920610582 stp x19, x20, [sp, 16]
9207
- mov w20, w1
9208
- stp x21, x22, [sp, 32]
9209
- adrp x21, __stack_chk_guard
9210
- add x1, x21, :lo12:__stack_chk_guard
921110583 adrp x19, .LANCHOR0
9212
- ldr x2, [x1]
9213
- str x2, [x29, 56]
9214
- mov x2,0
9215
- add x2, x19, :lo12:.LANCHOR0
9216
- ldr w1, [x2, 344]
10584
+ add x19, x19, :lo12:.LANCHOR0
10585
+ str x21, [sp, 32]
10586
+ mov w20, w1
10587
+ mrs x1, sp_el0
10588
+ ldr x2, [x1, 1376]
10589
+ str x2, [sp, 56]
10590
+ mov x2, 0
10591
+ ldr w1, [x19, 344]
921710592 cmp w1, w0
9218
- bls .L1351
10593
+ bls .L1381
921910594 cmp w1, w20
9220
- bcc .L1351
9221
- add w3, w0, w20
9222
- cmp w1, w3
9223
- bcc .L1351
10595
+ bcc .L1381
10596
+ add w2, w0, w20
10597
+ cmp w1, w2
10598
+ bcc .L1381
922410599 cmp w20, 31
9225
- bhi .L1342
9226
-.L1359:
10600
+ bhi .L1372
10601
+.L1389:
922710602 mov w0, 0
9228
-.L1340:
9229
- add x21, x21, :lo12:__stack_chk_guard
9230
- ldr x2, [x29, 56]
9231
- ldr x1, [x21]
9232
- eor x1, x2, x1
9233
- cbz x1, .L1348
10603
+.L1370:
10604
+ mrs x1, sp_el0
10605
+ ldr x2, [sp, 56]
10606
+ ldr x3, [x1, 1376]
10607
+ subs x2, x2, x3
10608
+ mov x3, 0
10609
+ beq .L1378
923410610 bl __stack_chk_fail
9235
-.L1342:
9236
- ldrh w1, [x2, 262]
9237
- udiv w22, w0, w1
9238
- msub w0, w1, w22, w0
10611
+.L1372:
10612
+ ldrh w1, [x19, 262]
10613
+ udiv w21, w0, w1
10614
+ msub w0, w1, w21, w0
923910615 ands w0, w0, 65535
9240
- beq .L1343
10616
+ beq .L1373
924110617 sub w0, w1, w0
9242
- add w22, w22, 1
10618
+ add w21, w21, 1
924310619 cmp w0, w20
924410620 csel w0, w0, w20, ls
924510621 sub w20, w20, w0, uxth
9246
-.L1343:
9247
- add x19, x19, :lo12:.LANCHOR0
10622
+.L1373:
924810623 mov w0, -1
9249
- str w0, [x29, 52]
9250
-.L1344:
10624
+ str w0, [sp, 52]
10625
+.L1374:
925110626 ldrh w0, [x19, 262]
9252
- cmp w20, w0
9253
- bcs .L1346
9254
- ldr w0, [x19, 3956]
10627
+ cmp w0, w20
10628
+ bls .L1376
10629
+ ldr w0, [x19, 3948]
925510630 cmp w0, 32
9256
- bls .L1359
9257
- str wzr, [x19, 3956]
10631
+ bls .L1389
10632
+ str wzr, [x19, 3948]
925810633 bl l2p_flush
925910634 bl FtlVpcTblFlush
9260
- b .L1359
9261
-.L1346:
10635
+ b .L1389
10636
+.L1376:
10637
+ add x1, sp, 48
10638
+ mov w0, w21
926210639 mov w2, 0
9263
- add x1, x29, 48
9264
- mov w0, w22
926510640 bl log2phys
9266
- ldr w0, [x29, 48]
10641
+ ldr w0, [sp, 48]
926710642 cmn w0, #1
9268
- beq .L1345
9269
- ldr w0, [x19, 3956]
10643
+ beq .L1375
10644
+ ldr w0, [x19, 3948]
10645
+ add x1, sp, 52
927010646 mov w2, 1
9271
- add x1, x29, 52
927210647 add w0, w0, 1
9273
- str w0, [x19, 3956]
10648
+ str w0, [x19, 3948]
927410649 ldr w0, [x19, 2632]
927510650 add w0, w0, 1
927610651 str w0, [x19, 2632]
9277
- mov w0, w22
10652
+ mov w0, w21
927810653 bl log2phys
9279
- ldr w0, [x29, 48]
9280
- lsr w0, w0, 10
10654
+ ldr w0, [sp, 48]
10655
+ ubfx x0, x0, 10, 16
928110656 bl P2V_block_in_plane
928210657 bl decrement_vpc_count
9283
-.L1345:
10658
+.L1375:
928410659 ldrh w0, [x19, 262]
9285
- add w22, w22, 1
10660
+ add w21, w21, 1
928610661 sub w20, w20, w0
9287
- b .L1344
9288
-.L1351:
10662
+ b .L1374
10663
+.L1381:
928910664 mov w0, -1
9290
- b .L1340
9291
-.L1348:
10665
+ b .L1370
10666
+.L1378:
929210667 ldp x19, x20, [sp, 16]
9293
- ldp x21, x22, [sp, 32]
10668
+ ldr x21, [sp, 32]
929410669 ldp x29, x30, [sp], 64
10670
+ hint 29 // autiasp
929510671 ret
929610672 .size sftl_discard, .-sftl_discard
10673
+ .section .rodata.str1.1
10674
+.LC122:
10675
+ .string "FtlCheckVpc %x = %x %x\n"
10676
+ .text
929710677 .align 2
929810678 .global FtlVpcCheckAndModify
929910679 .type FtlVpcCheckAndModify, %function
930010680 FtlVpcCheckAndModify:
10681
+ hint 34 // bti c
10682
+ .section __patchable_function_entries
10683
+ .align 3
10684
+ .8byte .LPFE115
10685
+ .text
10686
+.LPFE115:
10687
+ nop
10688
+ nop
10689
+ hint 25 // paciasp
930110690 stp x29, x30, [sp, -96]!
9302
- add x29, sp, 0
10691
+ mrs x0, sp_el0
10692
+ mov x29, sp
930310693 stp x19, x20, [sp, 16]
9304
- adrp x20, .LANCHOR0
10694
+ adrp x19, .LANCHOR0
10695
+ add x19, x19, :lo12:.LANCHOR0
930510696 stp x21, x22, [sp, 32]
9306
- adrp x22, __stack_chk_guard
10697
+ adrp x22, .LANCHOR1
10698
+ add x22, x22, :lo12:.LANCHOR1
930710699 stp x23, x24, [sp, 48]
9308
- add x0, x22, :lo12:__stack_chk_guard
9309
- stp x25, x26, [sp, 64]
9310
- add x19, x20, :lo12:.LANCHOR0
9311
- adrp x23, .LANCHOR1
9312
- mov w21, 0
9313
- ldr x1, [x0]
9314
- str x1, [x29, 88]
9315
- mov x1,0
9316
- adrp x0, .LC111
9317
- add x1, x23, :lo12:.LANCHOR1
9318
- add x0, x0, :lo12:.LC111
9319
- add x1, x1, 576
10700
+ mov w20, 0
10701
+ str x25, [sp, 64]
10702
+ ldr x1, [x0, 1376]
10703
+ str x1, [sp, 88]
10704
+ mov x1, 0
10705
+ adrp x0, .LC112
10706
+ add x1, x22, 486
10707
+ add x0, x0, :lo12:.LC112
932010708 bl sftl_printk
9321
- ldr x0, [x19, 3560]
10709
+ ldr x0, [x19, 3552]
932210710 mov w1, 0
932310711 ldrh w2, [x19, 246]
932410712 lsl w2, w2, 1
932510713 bl ftl_memset
9326
-.L1361:
10714
+.L1391:
932710715 ldr w0, [x19, 2624]
9328
- cmp w21, w0
9329
- bcc .L1363
9330
- add x20, x20, :lo12:.LANCHOR0
9331
- adrp x24, .LC121
9332
- add x26, x20, 2592
9333
- add x24, x24, :lo12:.LC121
9334
- mov w19, 0
10716
+ cmp w0, w20
10717
+ bhi .L1393
10718
+ adrp x23, .LC122
10719
+ adrp x24, .LC9
10720
+ add x23, x23, :lo12:.LC122
10721
+ add x24, x24, :lo12:.LC9
10722
+ mov w20, 0
933510723 mov w25, 65535
9336
-.L1364:
9337
- ldrh w0, [x20, 244]
9338
- cmp w0, w19
9339
- bhi .L1370
10724
+.L1394:
10725
+ ldrh w0, [x19, 244]
10726
+ cmp w0, w20
10727
+ bhi .L1400
934010728 bl l2p_flush
9341
- add x22, x22, :lo12:__stack_chk_guard
934210729 bl FtlVpcTblFlush
9343
- ldr x1, [x29, 88]
9344
- ldr x0, [x22]
9345
- eor x0, x1, x0
9346
- cbz x0, .L1371
10730
+ mrs x0, sp_el0
10731
+ ldr x1, [sp, 88]
10732
+ ldr x2, [x0, 1376]
10733
+ subs x1, x1, x2
10734
+ mov x2, 0
10735
+ beq .L1401
934710736 bl __stack_chk_fail
9348
-.L1363:
10737
+.L1393:
10738
+ add x1, sp, 84
10739
+ mov w0, w20
934910740 mov w2, 0
9350
- add x1, x29, 84
9351
- mov w0, w21
935210741 bl log2phys
9353
- ldr w0, [x29, 84]
10742
+ ldr w0, [sp, 84]
935410743 cmn w0, #1
9355
- beq .L1362
9356
- lsr w0, w0, 10
10744
+ beq .L1392
10745
+ ubfx x0, x0, 10, 16
935710746 bl P2V_block_in_plane
9358
- ldr x2, [x19, 3560]
10747
+ ldr x2, [x19, 3552]
935910748 ubfiz x0, x0, 1, 16
936010749 ldrh w1, [x2, x0]
936110750 add w1, w1, 1
936210751 strh w1, [x2, x0]
9363
-.L1362:
9364
- add w21, w21, 1
9365
- b .L1361
9366
-.L1370:
9367
- ldr x0, [x20, 72]
9368
- ubfiz x21, x19, 1, 16
10752
+.L1392:
10753
+ add w20, w20, 1
10754
+ b .L1391
10755
+.L1400:
10756
+ ldr x0, [x19, 72]
10757
+ ubfiz x21, x20, 1, 16
936910758 ldrh w2, [x0, x21]
9370
- ldr x0, [x20, 3560]
10759
+ ldr x0, [x19, 3552]
937110760 ldrh w3, [x0, x21]
937210761 cmp w2, w3
9373
- beq .L1366
10762
+ beq .L1396
937410763 cmp w2, w25
9375
- beq .L1366
9376
- mov x0, x24
9377
- mov w1, w19
10764
+ beq .L1396
10765
+ mov x0, x23
10766
+ mov w1, w20
937810767 bl sftl_printk
9379
- ldrh w0, [x20, 24]
9380
- cmp w0, w19
9381
- beq .L1366
9382
- ldrh w0, [x20, 128]
9383
- cmp w0, w19
9384
- beq .L1366
9385
- ldrh w0, [x20, 80]
9386
- cmp w0, w19
9387
- beq .L1366
9388
- ldr x0, [x20, 72]
9389
- ldrh w1, [x0, x21]
9390
- cbnz w1, .L1368
9391
- ldr x1, [x20, 3560]
10768
+ ldrh w0, [x19, 24]
10769
+ cmp w0, w20
10770
+ beq .L1396
10771
+ ldrh w0, [x19, 128]
10772
+ cmp w0, w20
10773
+ beq .L1396
10774
+ ldrh w0, [x19, 80]
10775
+ cmp w0, w20
10776
+ beq .L1396
10777
+ ldr x0, [x19, 72]
10778
+ ldr x1, [x19, 3552]
10779
+ ldrh w2, [x0, x21]
939210780 ldrh w1, [x1, x21]
939310781 strh w1, [x0, x21]
9394
- mov w1, w19
9395
- mov x0, x26
10782
+ cbnz w2, .L1398
10783
+ mov w1, w20
10784
+ add x0, x19, 2592
939610785 bl List_remove_node
9397
- ldrh w0, [x20, 228]
9398
- cbnz w0, .L1369
9399
- add x1, x23, :lo12:.LANCHOR1
9400
- adrp x0, .LC8
10786
+ ldrh w0, [x19, 228]
10787
+ cbnz w0, .L1399
10788
+ add x1, x22, 486
10789
+ mov x0, x24
940110790 mov w2, 2330
9402
- add x1, x1, 576
9403
- add x0, x0, :lo12:.LC8
940410791 bl sftl_printk
9405
-.L1369:
9406
- ldrh w0, [x20, 228]
10792
+.L1399:
10793
+ ldrh w0, [x19, 228]
940710794 sub w0, w0, #1
9408
- strh w0, [x20, 228]
9409
- mov w0, w19
10795
+ strh w0, [x19, 228]
10796
+ mov w0, w20
941010797 bl INSERT_DATA_LIST
9411
-.L1366:
9412
- add w19, w19, 1
9413
- and w19, w19, 65535
9414
- b .L1364
9415
-.L1368:
9416
- ldr x1, [x20, 3560]
9417
- ldrh w1, [x1, x21]
9418
- strh w1, [x0, x21]
9419
- mov w0, w19
10798
+.L1396:
10799
+ add w20, w20, 1
10800
+ and w20, w20, 65535
10801
+ b .L1394
10802
+.L1398:
10803
+ mov w0, w20
942010804 bl update_vpc_list
9421
- b .L1366
9422
-.L1371:
10805
+ b .L1396
10806
+.L1401:
942310807 ldp x19, x20, [sp, 16]
942410808 ldp x21, x22, [sp, 32]
942510809 ldp x23, x24, [sp, 48]
9426
- ldp x25, x26, [sp, 64]
10810
+ ldr x25, [sp, 64]
942710811 ldp x29, x30, [sp], 96
10812
+ hint 29 // autiasp
942810813 ret
942910814 .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
943010815 .align 2
943110816 .global allocate_new_data_superblock
943210817 .type allocate_new_data_superblock, %function
943310818 allocate_new_data_superblock:
10819
+ hint 34 // bti c
10820
+ .section __patchable_function_entries
10821
+ .align 3
10822
+ .8byte .LPFE116
10823
+ .text
10824
+.LPFE116:
10825
+ nop
10826
+ nop
10827
+ hint 25 // paciasp
943410828 stp x29, x30, [sp, -48]!
9435
- add x29, sp, 0
10829
+ mov x29, sp
943610830 stp x19, x20, [sp, 16]
9437
- adrp x19, .LANCHOR0
10831
+ adrp x20, .LANCHOR0
10832
+ add x20, x20, :lo12:.LANCHOR0
943810833 str x21, [sp, 32]
943910834 mov x21, x0
9440
- ldrh w20, [x0]
9441
- add x0, x19, :lo12:.LANCHOR0
9442
- ldrh w0, [x0, 244]
9443
- cmp w0, w20
9444
- bcs .L1377
10835
+ ldrh w19, [x0]
10836
+ ldrh w0, [x20, 244]
10837
+ cmp w0, w19
10838
+ bcs .L1407
944510839 adrp x1, .LANCHOR1
944610840 add x1, x1, :lo12:.LANCHOR1
9447
- adrp x0, .LC8
10841
+ adrp x0, .LC9
10842
+ add x1, x1, 507
10843
+ add x0, x0, :lo12:.LC9
944810844 mov w2, 2766
9449
- add x1, x1, 600
9450
- add x0, x0, :lo12:.LC8
945110845 bl sftl_printk
9452
-.L1377:
10846
+.L1407:
945310847 mov w0, 65535
9454
- cmp w20, w0
9455
- beq .L1378
9456
- add x1, x19, :lo12:.LANCHOR0
9457
- ubfiz x0, x20, 1, 16
9458
- ldr x1, [x1, 72]
10848
+ cmp w19, w0
10849
+ beq .L1408
10850
+ ldr x1, [x20, 72]
10851
+ ubfiz x0, x19, 1, 16
945910852 ldrh w0, [x1, x0]
9460
- cbz w0, .L1379
9461
- mov w0, w20
10853
+ cbz w0, .L1409
10854
+ mov w0, w19
946210855 bl INSERT_DATA_LIST
9463
-.L1378:
9464
- add x2, x19, :lo12:.LANCHOR0
10856
+.L1408:
946510857 mov w0, 1
946610858 strb w0, [x21, 8]
10859
+ ldrh w0, [x20, 3698]
946710860 mov w1, 65535
9468
- ldrh w0, [x2, 3706]
946910861 cmp w0, w1
9470
- beq .L1380
9471
- cmp w20, w0
9472
- bne .L1381
9473
- ldr x2, [x2, 72]
9474
- ubfiz x1, x0, 1, 16
9475
- ldrh w1, [x2, x1]
9476
- cbz w1, .L1382
9477
-.L1381:
10862
+ beq .L1410
10863
+ cmp w0, w19
10864
+ bne .L1411
10865
+ ldr x1, [x20, 72]
10866
+ ubfiz x19, x19, 1, 16
10867
+ ldrh w1, [x1, x19]
10868
+ cbz w1, .L1412
10869
+.L1411:
947810870 bl update_vpc_list
9479
-.L1382:
9480
- add x19, x19, :lo12:.LANCHOR0
10871
+.L1412:
948110872 mov w0, -1
9482
- strh w0, [x19, 3706]
9483
-.L1380:
10873
+ strh w0, [x20, 3698]
10874
+.L1410:
948410875 mov x0, x21
948510876 bl allocate_data_superblock
948610877 bl l2p_flush
948710878 mov w0, 0
948810879 bl FtlEctTblFlush
948910880 bl FtlVpcTblFlush
9490
- ldr x21, [sp, 32]
949110881 mov w0, 0
949210882 ldp x19, x20, [sp, 16]
10883
+ ldr x21, [sp, 32]
949310884 ldp x29, x30, [sp], 48
10885
+ hint 29 // autiasp
949410886 ret
9495
-.L1379:
9496
- mov w0, w20
10887
+.L1409:
10888
+ mov w0, w19
949710889 bl INSERT_FREE_LIST
9498
- b .L1378
10890
+ b .L1408
949910891 .size allocate_new_data_superblock, .-allocate_new_data_superblock
10892
+ .section .rodata.str1.1
10893
+.LC123:
10894
+ .string "FtlProgPages error %x = %d\n"
10895
+.LC124:
10896
+ .string "Ftlwrite decrement_vpc_count %x = %d\n"
10897
+ .text
950010898 .align 2
950110899 .global FtlProgPages
950210900 .type FtlProgPages, %function
950310901 FtlProgPages:
9504
- stp x29, x30, [sp, -96]!
9505
- add x29, sp, 0
10902
+ hint 34 // bti c
10903
+ .section __patchable_function_entries
10904
+ .align 3
10905
+ .8byte .LPFE117
10906
+ .text
10907
+.LPFE117:
10908
+ nop
10909
+ nop
10910
+ hint 25 // paciasp
10911
+ stp x29, x30, [sp, -80]!
10912
+ mrs x2, sp_el0
10913
+ mov x29, sp
950610914 stp x19, x20, [sp, 16]
950710915 mov x20, x3
10916
+ mov x19, x0
950810917 stp x21, x22, [sp, 32]
9509
- mov w22, w1
10918
+ mov w21, w1
951010919 stp x23, x24, [sp, 48]
9511
- adrp x21, __stack_chk_guard
9512
- stp x25, x26, [sp, 64]
9513
- add x2, x21, :lo12:__stack_chk_guard
9514
- ubfiz x22, x22, 5, 32
9515
- mov x23, x0
9516
- ldr x3, [x2]
9517
- str x3, [x29, 88]
9518
- mov x3,0
9519
- add x22, x22, 4
10920
+ adrp x24, .LC123
10921
+ adrp x23, .LANCHOR0
10922
+ ldr x3, [x2, 1376]
10923
+ str x3, [sp, 72]
10924
+ mov x3, 0
10925
+ mov w2, 0
952010926 ldrb w3, [x20, 9]
9521
- adrp x24, .LC122
9522
- adrp x25, .LANCHOR0
9523
- add x19, x23, 4
9524
- add x22, x23, x22
9525
- add x24, x24, :lo12:.LC122
9526
- add x26, x25, :lo12:.LANCHOR0
9527
- mov w2, 0
10927
+ add x24, x24, :lo12:.LC123
10928
+ add x23, x23, :lo12:.LANCHOR0
952810929 bl FlashProgPages
9529
-.L1388:
9530
- cmp x22, x19
9531
- beq .L1394
9532
- sub x23, x19, #4
9533
- b .L1395
9534
-.L1390:
9535
- ldr w1, [x19]
9536
- mov x0, x24
9537
- bl sftl_printk
9538
- ldr w0, [x19]
9539
- lsr w0, w0, 10
9540
- bl P2V_block_in_plane
9541
- bl decrement_vpc_count
9542
- ldrh w0, [x20, 4]
9543
- cbnz w0, .L1389
9544
- mov x0, x20
9545
- bl allocate_new_data_superblock
9546
-.L1389:
9547
- mov x0, x20
9548
- bl get_new_active_ppa
9549
- str w0, [x19]
9550
- mov w2, 0
9551
- str w0, [x29, 84]
9552
- mov w1, 1
9553
- ldrb w3, [x20, 9]
9554
- mov x0, x23
9555
- bl FlashProgPages
9556
-.L1395:
9557
- ldr w2, [x19, -4]
9558
- cmp w2, 256
9559
- ccmn w2, #1, 4, ne
9560
- beq .L1390
9561
- ldrb w1, [x20, 6]
9562
- ldrh w0, [x26, 236]
9563
- cmp w1, w0
9564
- bcc .L1391
9565
- adrp x1, .LANCHOR1
9566
- add x1, x1, :lo12:.LANCHOR1
9567
- adrp x0, .LC8
9568
- mov w2, 985
9569
- add x1, x1, 632
9570
- add x0, x0, :lo12:.LC8
9571
- bl sftl_printk
9572
-.L1391:
9573
- add x1, x29, 96
9574
- ldr w0, [x23, 4]
9575
- mov w2, 1
9576
- str w0, [x1, -12]!
9577
- ldr w0, [x23, 24]
9578
- bl log2phys
9579
- ldr x0, [x23, 16]
9580
- ldr w4, [x0, 12]
9581
- lsr w0, w4, 10
9582
- bl P2V_block_in_plane
9583
- and w1, w0, 65535
9584
- mov w23, w1
9585
- cmn w4, #1
9586
- beq .L1392
9587
- add x2, x25, :lo12:.LANCHOR0
9588
- ubfiz x0, x1, 1, 16
9589
- ldr x2, [x2, 72]
9590
- ldrh w0, [x2, x0]
9591
- cbnz w0, .L1393
9592
- adrp x0, .LC123
9593
- mov w2, 0
9594
- add x0, x0, :lo12:.LC123
9595
- bl sftl_printk
9596
-.L1393:
9597
- mov w0, w23
9598
- bl decrement_vpc_count
9599
-.L1392:
9600
- add x19, x19, 32
9601
- b .L1388
9602
-.L1394:
10930
+ mov w1, 32
10931
+ umaddl x21, w21, w1, x19
10932
+.L1418:
10933
+ cmp x21, x19
10934
+ bne .L1425
960310935 adrp x0, .LANCHOR0+236
960410936 ldrb w1, [x20, 6]
960510937 ldrh w0, [x0, #:lo12:.LANCHOR0+236]
960610938 cmp w1, w0
9607
- bcc .L1387
10939
+ bcc .L1417
960810940 adrp x1, .LANCHOR1
960910941 add x1, x1, :lo12:.LANCHOR1
9610
- adrp x0, .LC8
10942
+ adrp x0, .LC9
10943
+ add x1, x1, 536
10944
+ add x0, x0, :lo12:.LC9
961110945 mov w2, 1000
9612
- add x1, x1, 632
9613
- add x0, x0, :lo12:.LC8
961410946 bl sftl_printk
9615
-.L1387:
9616
- add x21, x21, :lo12:__stack_chk_guard
9617
- ldr x1, [x29, 88]
9618
- ldr x0, [x21]
9619
- eor x0, x1, x0
9620
- cbz x0, .L1397
10947
+.L1417:
10948
+ mrs x0, sp_el0
10949
+ ldr x1, [sp, 72]
10950
+ ldr x2, [x0, 1376]
10951
+ subs x1, x1, x2
10952
+ mov x2, 0
10953
+ beq .L1427
962110954 bl __stack_chk_fail
9622
-.L1397:
10955
+.L1420:
10956
+ ldr w1, [x19, 4]
10957
+ mov x0, x24
10958
+ bl sftl_printk
10959
+ ldr w0, [x19, 4]
10960
+ ubfx x0, x0, 10, 16
10961
+ bl P2V_block_in_plane
10962
+ bl decrement_vpc_count
10963
+ ldrh w0, [x20, 4]
10964
+ cbnz w0, .L1419
10965
+ mov x0, x20
10966
+ bl allocate_new_data_superblock
10967
+.L1419:
10968
+ mov x0, x20
10969
+ bl get_new_active_ppa
10970
+ str w0, [x19, 4]
10971
+ mov w2, 0
10972
+ mov w1, 1
10973
+ str w0, [sp, 68]
10974
+ ldrb w3, [x20, 9]
10975
+ mov x0, x19
10976
+ bl FlashProgPages
10977
+.L1425:
10978
+ ldr w2, [x19]
10979
+ cmp w2, 256
10980
+ ccmn w2, #1, 4, ne
10981
+ beq .L1420
10982
+ ldrb w1, [x20, 6]
10983
+ ldrh w0, [x23, 236]
10984
+ cmp w1, w0
10985
+ bcc .L1421
10986
+ adrp x1, .LANCHOR1
10987
+ add x1, x1, :lo12:.LANCHOR1
10988
+ adrp x0, .LC9
10989
+ add x1, x1, 536
10990
+ add x0, x0, :lo12:.LC9
10991
+ mov w2, 985
10992
+ bl sftl_printk
10993
+.L1421:
10994
+ ldr w0, [x19, 4]
10995
+ add x1, sp, 68
10996
+ str w0, [sp, 68]
10997
+ mov w2, 1
10998
+ ldr w0, [x19, 24]
10999
+ bl log2phys
11000
+ ldr x0, [x19, 16]
11001
+ ldr w0, [x0, 12]
11002
+ cmn w0, #1
11003
+ beq .L1422
11004
+ ubfx x0, x0, 10, 16
11005
+ bl P2V_block_in_plane
11006
+ and w1, w0, 65535
11007
+ mov w22, w1
11008
+ ldr x2, [x23, 72]
11009
+ ubfiz x0, x22, 1, 16
11010
+ ldrh w0, [x2, x0]
11011
+ cbnz w0, .L1423
11012
+ adrp x0, .LC124
11013
+ mov w2, 0
11014
+ add x0, x0, :lo12:.LC124
11015
+ bl sftl_printk
11016
+.L1423:
11017
+ mov w0, w22
11018
+ bl decrement_vpc_count
11019
+.L1422:
11020
+ add x19, x19, 32
11021
+ b .L1418
11022
+.L1427:
962311023 ldp x19, x20, [sp, 16]
962411024 ldp x21, x22, [sp, 32]
962511025 ldp x23, x24, [sp, 48]
9626
- ldp x25, x26, [sp, 64]
9627
- ldp x29, x30, [sp], 96
11026
+ ldp x29, x30, [sp], 80
11027
+ hint 29 // autiasp
962811028 ret
962911029 .size FtlProgPages, .-FtlProgPages
963011030 .align 2
963111031 .global FtlGcFreeTempBlock
963211032 .type FtlGcFreeTempBlock, %function
963311033 FtlGcFreeTempBlock:
9634
- stp x29, x30, [sp, -96]!
9635
- mov w3, 65535
9636
- add x29, sp, 0
11034
+ hint 34 // bti c
11035
+ .section __patchable_function_entries
11036
+ .align 3
11037
+ .8byte .LPFE118
11038
+ .text
11039
+.LPFE118:
11040
+ nop
11041
+ nop
11042
+ hint 25 // paciasp
11043
+ stp x29, x30, [sp, -80]!
11044
+ mrs x1, sp_el0
11045
+ mov x29, sp
963711046 stp x19, x20, [sp, 16]
963811047 adrp x19, .LANCHOR0
11048
+ add x19, x19, :lo12:.LANCHOR0
963911049 stp x21, x22, [sp, 32]
9640
- adrp x21, __stack_chk_guard
964111050 stp x23, x24, [sp, 48]
9642
- add x1, x21, :lo12:__stack_chk_guard
9643
- stp x25, x26, [sp, 64]
9644
- ldr x2, [x1]
9645
- str x2, [x29, 88]
9646
- mov x2,0
9647
- add x2, x19, :lo12:.LANCHOR0
9648
- ldrh w4, [x2, 128]
9649
- ldrh w1, [x2, 306]
9650
- cmp w4, w3
9651
- bne .L1403
9652
-.L1410:
9653
- add x0, x19, :lo12:.LANCHOR0
11051
+ ldrh w3, [x19, 128]
11052
+ ldr x2, [x1, 1376]
11053
+ str x2, [sp, 72]
11054
+ mov x2, 0
11055
+ ldrh w1, [x19, 306]
965411056 mov w2, 65535
9655
- add x1, x0, 128
9656
- ldrh w3, [x0, 128]
9657
- str wzr, [x0, 3712]
965811057 cmp w3, w2
9659
- bne .L1424
9660
-.L1428:
11058
+ bne .L1433
11059
+.L1440:
11060
+ ldrh w2, [x19, 128]
11061
+ add x0, x19, 128
11062
+ str wzr, [x19, 3704]
11063
+ mov w1, 65535
11064
+ cmp w2, w1
11065
+ bne .L1454
11066
+.L1458:
966111067 mov w0, 0
9662
-.L1402:
9663
- add x21, x21, :lo12:__stack_chk_guard
9664
- ldr x2, [x29, 88]
9665
- ldr x1, [x21]
9666
- eor x1, x2, x1
9667
- cbz x1, .L1419
11068
+.L1432:
11069
+ mrs x1, sp_el0
11070
+ ldr x2, [sp, 72]
11071
+ ldr x3, [x1, 1376]
11072
+ subs x2, x2, x3
11073
+ mov x3, 0
11074
+ beq .L1449
966811075 bl __stack_chk_fail
9669
-.L1403:
11076
+.L1433:
967011077 adrp x20, .LANCHOR2
9671
- cbz w0, .L1406
9672
- add x0, x20, :lo12:.LANCHOR2
9673
- ldrh w4, [x0, 4]
9674
- cmp w4, w3
9675
- beq .L1407
9676
-.L1408:
9677
- mov w1, 2
9678
-.L1406:
967911078 add x20, x20, :lo12:.LANCHOR2
9680
- add x0, x19, :lo12:.LANCHOR0
9681
- add x0, x0, 128
11079
+ cbz w0, .L1436
11080
+ ldrh w0, [x20, 4]
11081
+ cmp w0, w2
11082
+ beq .L1437
11083
+.L1438:
11084
+ mov w1, 2
11085
+.L1436:
11086
+ add x0, x19, 128
968211087 bl FtlGcScanTempBlk
9683
- str w0, [x29, 84]
9684
- mov w0, 65535
968511088 ldrh w1, [x20, 4]
11089
+ str w0, [sp, 68]
11090
+ mov w0, 65535
968611091 cmp w1, w0
9687
- beq .L1410
11092
+ beq .L1440
968811093 mov w0, 1
9689
- b .L1402
9690
-.L1407:
9691
- strh wzr, [x0, 4]
9692
- ldrh w0, [x2, 228]
11094
+ b .L1432
11095
+.L1437:
11096
+ ldrh w0, [x19, 228]
11097
+ strh wzr, [x20, 4]
969311098 cmp w0, 17
9694
- bhi .L1408
9695
- b .L1406
9696
-.L1424:
9697
- ldrh w2, [x0, 3296]
9698
- ldrb w1, [x1, 7]
9699
- ldrh w0, [x0, 306]
9700
- mul w0, w1, w0
9701
- cmp w2, w0
9702
- beq .L1411
11099
+ bhi .L1438
11100
+ b .L1436
11101
+.L1454:
11102
+ ldrb w0, [x0, 7]
11103
+ ldrh w2, [x19, 306]
11104
+ ldrh w1, [x19, 3296]
11105
+ mul w0, w0, w2
11106
+ cmp w1, w0
11107
+ beq .L1441
970311108 adrp x1, .LANCHOR1
970411109 add x1, x1, :lo12:.LANCHOR1
9705
- adrp x0, .LC8
11110
+ adrp x0, .LC9
11111
+ add x1, x1, 549
11112
+ add x0, x0, :lo12:.LC9
970611113 mov w2, 164
9707
- add x1, x1, 648
9708
- add x0, x0, :lo12:.LC8
970911114 bl sftl_printk
9710
-.L1411:
9711
- add x0, x19, :lo12:.LANCHOR0
9712
- mov w22, 0
9713
- mov x20, x0
9714
- mov w26, 12
9715
- ldrb w1, [x0, 135]
9716
- ldrh w4, [x0, 306]
9717
- ldr x2, [x0, 72]
9718
- ldrh w3, [x0, 128]
9719
- mul w1, w1, w4
9720
- strh w1, [x2, x3, lsl 1]
9721
- ldr w2, [x0, 2648]
9722
- ldrh w1, [x0, 3296]
9723
- add w1, w1, w2
9724
- str w1, [x0, 2648]
9725
-.L1412:
9726
- ldrh w0, [x20, 3296]
9727
- cmp w0, w22
9728
- bhi .L1416
11115
+.L1441:
11116
+ ldrb w0, [x19, 135]
11117
+ mov w20, 0
11118
+ ldrh w3, [x19, 306]
11119
+ mov w24, 12
11120
+ ldrh w2, [x19, 128]
11121
+ ldr x1, [x19, 72]
11122
+ mul w0, w0, w3
11123
+ strh w0, [x1, x2, lsl 1]
11124
+ ldr w1, [x19, 2648]
11125
+ ldrh w0, [x19, 3296]
11126
+ add w0, w0, w1
11127
+ str w0, [x19, 2648]
11128
+.L1442:
11129
+ ldrh w0, [x19, 3296]
11130
+ cmp w0, w20
11131
+ bhi .L1446
972911132 mov w0, -1
973011133 bl decrement_vpc_count
9731
- ldrh w0, [x20, 128]
9732
- ldr x2, [x20, 72]
9733
- ubfiz x1, x0, 1, 16
9734
- ldrh w1, [x2, x1]
9735
- cbz w1, .L1417
11134
+ ldrh w2, [x19, 128]
11135
+ ldr x1, [x19, 72]
11136
+ ldrh w0, [x19, 128]
11137
+ ldrh w1, [x1, x2, lsl 1]
11138
+ cbz w1, .L1447
973611139 bl INSERT_DATA_LIST
9737
-.L1418:
9738
- add x19, x19, :lo12:.LANCHOR0
11140
+.L1448:
973911141 mov w20, -1
9740
- strh wzr, [x19, 3296]
974111142 strh w20, [x19, 128]
974211143 strh wzr, [x19, 3284]
11144
+ strh wzr, [x19, 3296]
974311145 bl l2p_flush
974411146 bl FtlVpcTblFlush
974511147 strh w20, [x19, 176]
....@@ -9747,65 +11149,74 @@
974711149 ldrh w1, [x19, 228]
974811150 add w0, w0, w0, lsl 1
974911151 cmp w1, w0, lsr 2
9750
- ble .L1428
11152
+ ble .L1458
975111153 mov w0, 20
975211154 strh w0, [x19, 3224]
9753
- b .L1428
9754
-.L1416:
9755
- umull x24, w22, w26
9756
- ldr x25, [x20, 3304]
9757
- ldr w1, [x20, 2624]
9758
- add x23, x25, x24
9759
- ldr w0, [x23, 8]
11155
+ b .L1458
11156
+.L1446:
11157
+ ldr x23, [x19, 3304]
11158
+ umull x22, w20, w24
11159
+ ldr w1, [x19, 2624]
11160
+ add x21, x23, x22
11161
+ ldr w0, [x21, 8]
976011162 cmp w0, w1
9761
- bcc .L1413
9762
-.L1426:
9763
- ldrh w0, [x20, 128]
9764
- b .L1427
9765
-.L1413:
9766
- add x1, x29, 84
11163
+ bcc .L1443
11164
+.L1456:
11165
+ ldrh w0, [x19, 128]
11166
+ b .L1457
11167
+.L1443:
11168
+ add x1, sp, 68
976711169 mov w2, 0
976811170 bl log2phys
9769
- ldr w0, [x25, x24]
9770
- ldr w1, [x29, 84]
11171
+ ldr w1, [sp, 68]
11172
+ ldr w0, [x23, x22]
977111173 cmp w0, w1
9772
- bne .L1415
9773
- lsr w0, w0, 10
11174
+ bne .L1445
11175
+ ubfx x0, x0, 10, 16
977411176 bl P2V_block_in_plane
9775
- mov w24, w0
9776
- ldr w0, [x23, 8]
11177
+ mov w22, w0
11178
+ ldr w0, [x21, 8]
11179
+ add x1, x21, 4
977711180 mov w2, 1
9778
- add x1, x23, 4
977911181 bl log2phys
9780
- mov w0, w24
9781
-.L1427:
11182
+ mov w0, w22
11183
+.L1457:
978211184 bl decrement_vpc_count
9783
- b .L1414
9784
-.L1415:
9785
- ldr w0, [x23, 4]
11185
+ b .L1444
11186
+.L1445:
11187
+ ldr w0, [x21, 4]
978611188 cmp w1, w0
9787
- bne .L1426
9788
-.L1414:
9789
- add w22, w22, 1
9790
- and w22, w22, 65535
9791
- b .L1412
9792
-.L1417:
11189
+ bne .L1456
11190
+.L1444:
11191
+ add w20, w20, 1
11192
+ and w20, w20, 65535
11193
+ b .L1442
11194
+.L1447:
979311195 bl INSERT_FREE_LIST
9794
- b .L1418
9795
-.L1419:
11196
+ b .L1448
11197
+.L1449:
979611198 ldp x19, x20, [sp, 16]
979711199 ldp x21, x22, [sp, 32]
979811200 ldp x23, x24, [sp, 48]
9799
- ldp x25, x26, [sp, 64]
9800
- ldp x29, x30, [sp], 96
11201
+ ldp x29, x30, [sp], 80
11202
+ hint 29 // autiasp
980111203 ret
980211204 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
980311205 .align 2
980411206 .global FtlGcPageRecovery
980511207 .type FtlGcPageRecovery, %function
980611208 FtlGcPageRecovery:
11209
+ hint 34 // bti c
11210
+ .section __patchable_function_entries
11211
+ .align 3
11212
+ .8byte .LPFE119
11213
+ .text
11214
+.LPFE119:
11215
+ nop
11216
+ nop
11217
+ hint 25 // paciasp
980711218 stp x29, x30, [sp, -32]!
9808
- add x29, sp, 0
11219
+ mov x29, sp
980911220 stp x19, x20, [sp, 16]
981011221 adrp x19, .LANCHOR0
981111222 add x19, x19, :lo12:.LANCHOR0
....@@ -9816,30 +11227,40 @@
981611227 ldrh w1, [x19, 130]
981711228 ldrh w0, [x19, 306]
981811229 cmp w1, w0
9819
- bcc .L1429
9820
- add x0, x19, 3640
11230
+ bcc .L1459
11231
+ add x0, x19, 3632
982111232 bl FtlMapBlkWriteDump_data
982211233 mov w0, 0
982311234 bl FtlGcFreeTempBlock
9824
- str wzr, [x19, 3712]
9825
-.L1429:
11235
+ str wzr, [x19, 3704]
11236
+.L1459:
982611237 ldp x19, x20, [sp, 16]
982711238 ldp x29, x30, [sp], 32
11239
+ hint 29 // autiasp
982811240 ret
982911241 .size FtlGcPageRecovery, .-FtlGcPageRecovery
983011242 .align 2
983111243 .global FtlPowerLostRecovery
983211244 .type FtlPowerLostRecovery, %function
983311245 FtlPowerLostRecovery:
11246
+ hint 34 // bti c
11247
+ .section __patchable_function_entries
11248
+ .align 3
11249
+ .8byte .LPFE120
11250
+ .text
11251
+.LPFE120:
11252
+ nop
11253
+ nop
11254
+ hint 25 // paciasp
983411255 stp x29, x30, [sp, -32]!
9835
- add x29, sp, 0
11256
+ mov x29, sp
983611257 stp x19, x20, [sp, 16]
983711258 adrp x19, .LANCHOR0
983811259 add x19, x19, :lo12:.LANCHOR0
983911260 add x20, x19, 24
984011261 add x19, x19, 80
984111262 mov x0, x20
9842
- str wzr, [x19, 3676]
11263
+ str wzr, [x19, 3668]
984311264 bl FtlRecoverySuperblock
984411265 mov x0, x20
984511266 bl FtlSlcSuperblockCheck
....@@ -9853,1712 +11274,1720 @@
985311274 mov w0, 0
985411275 ldp x19, x20, [sp, 16]
985511276 ldp x29, x30, [sp], 32
11277
+ hint 29 // autiasp
985611278 ret
985711279 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery
985811280 .align 2
985911281 .global Ftl_gc_temp_data_write_back
986011282 .type Ftl_gc_temp_data_write_back, %function
986111283 Ftl_gc_temp_data_write_back:
11284
+ hint 34 // bti c
11285
+ .section __patchable_function_entries
11286
+ .align 3
11287
+ .8byte .LPFE121
11288
+ .text
11289
+.LPFE121:
11290
+ nop
11291
+ nop
11292
+ hint 25 // paciasp
986211293 stp x29, x30, [sp, -32]!
9863
- adrp x11, .LANCHOR0
986411294 mov w3, 0
11295
+ mov x29, sp
11296
+ stp x19, x20, [sp, 16]
11297
+ adrp x19, .LANCHOR0
11298
+ add x19, x19, :lo12:.LANCHOR0
986511299 mov w2, 0
9866
- add x29, sp, 0
9867
- str x19, [sp, 16]
9868
- add x19, x11, :lo12:.LANCHOR0
11300
+ mov w20, 0
986911301 ldr w1, [x19, 3240]
9870
- ldr x0, [x19, 3440]
11302
+ ldr x0, [x19, 3432]
987111303 bl FlashProgPages
9872
- mov w10, 0
9873
-.L1435:
11304
+.L1465:
987411305 ldr w1, [x19, 3240]
9875
- cmp w10, w1
9876
- bcc .L1438
9877
- ldr x0, [x19, 3440]
11306
+ ldr x2, [x19, 3432]
11307
+ cmp w20, w1
11308
+ bcc .L1468
11309
+ mov x0, x2
987811310 bl FtlGcBufFree
9879
- str wzr, [x19, 3240]
988011311 ldrh w0, [x19, 132]
9881
- cbnz w0, .L1440
11312
+ str wzr, [x19, 3240]
11313
+ cbnz w0, .L1470
988211314 mov w0, 1
988311315 bl FtlGcFreeTempBlock
988411316 mov w0, 1
9885
-.L1434:
9886
- ldr x19, [sp, 16]
11317
+.L1464:
11318
+ ldp x19, x20, [sp, 16]
988711319 ldp x29, x30, [sp], 32
11320
+ hint 29 // autiasp
988811321 ret
9889
-.L1438:
9890
- ldr x2, [x19, 3440]
9891
- ubfiz x0, x10, 5, 16
9892
- add x1, x2, x0
9893
- ldr w2, [x2, x0]
11322
+.L1468:
11323
+ ubfiz x4, x20, 5, 16
11324
+ add x1, x2, x4
11325
+ ldr w2, [x2, x4]
989411326 ldr x3, [x1, 16]
9895
- cmn w2, #1
9896
- bne .L1436
9897
-.L1442:
989811327 ldr w1, [x1, 4]
989911328 ldr w0, [x3, 12]
11329
+ cmn w2, #1
11330
+ bne .L1466
11331
+.L1472:
11332
+ add w20, w20, 1
990011333 bl FtlGcUpdatePage
9901
- add w10, w10, 1
9902
- and w10, w10, 65535
9903
- b .L1435
9904
-.L1436:
11334
+ and w20, w20, 65535
11335
+ b .L1465
11336
+.L1466:
990511337 ldr w2, [x3, 8]
9906
- b .L1442
9907
-.L1440:
11338
+ b .L1472
11339
+.L1470:
990811340 mov w0, 0
9909
- b .L1434
11341
+ b .L1464
991011342 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
991111343 .align 2
991211344 .global Ftl_get_new_temp_ppa
991311345 .type Ftl_get_new_temp_ppa, %function
991411346 Ftl_get_new_temp_ppa:
11347
+ hint 34 // bti c
11348
+ .section __patchable_function_entries
11349
+ .align 3
11350
+ .8byte .LPFE122
11351
+ .text
11352
+.LPFE122:
11353
+ nop
11354
+ nop
11355
+ hint 25 // paciasp
991511356 stp x29, x30, [sp, -32]!
9916
- add x29, sp, 0
9917
- stp x19, x20, [sp, 16]
11357
+ mov w1, 65535
11358
+ mov x29, sp
11359
+ str x19, [sp, 16]
991811360 adrp x19, .LANCHOR0
9919
- add x0, x19, :lo12:.LANCHOR0
9920
- add x1, x0, 128
9921
- ldrh w2, [x0, 128]
9922
- mov w0, 65535
9923
- cmp w2, w0
9924
- beq .L1444
9925
- ldrh w0, [x1, 4]
9926
- cbnz w0, .L1445
9927
-.L1444:
9928
- add x20, x19, :lo12:.LANCHOR0
11361
+ add x19, x19, :lo12:.LANCHOR0
11362
+ ldrh w2, [x19, 128]
11363
+ cmp w2, w1
11364
+ beq .L1474
11365
+ ldrh w0, [x19, 132]
11366
+ cbnz w0, .L1475
11367
+.L1474:
992911368 mov w0, 0
993011369 bl FtlGcFreeTempBlock
9931
- add x0, x20, 128
11370
+ add x0, x19, 128
993211371 strb wzr, [x0, 8]
993311372 bl allocate_data_superblock
9934
- strh wzr, [x20, 3284]
9935
- strh wzr, [x20, 3296]
11373
+ strh wzr, [x19, 3284]
11374
+ strh wzr, [x19, 3296]
993611375 bl l2p_flush
993711376 mov w0, 0
993811377 bl FtlEctTblFlush
993911378 bl FtlVpcTblFlush
9940
-.L1445:
9941
- add x0, x19, :lo12:.LANCHOR0
9942
- add x0, x0, 128
11379
+.L1475:
11380
+ add x0, x19, 128
994311381 bl get_new_active_ppa
9944
- ldp x19, x20, [sp, 16]
11382
+ ldr x19, [sp, 16]
994511383 ldp x29, x30, [sp], 32
11384
+ hint 29 // autiasp
994611385 ret
994711386 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
11387
+ .section .rodata.str1.1
11388
+.LC125:
11389
+ .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n"
11390
+ .text
994811391 .align 2
994911392 .global rk_ftl_garbage_collect
995011393 .type rk_ftl_garbage_collect, %function
995111394 rk_ftl_garbage_collect:
11395
+ hint 34 // bti c
11396
+ .section __patchable_function_entries
11397
+ .align 3
11398
+ .8byte .LPFE123
11399
+ .text
11400
+.LPFE123:
11401
+ nop
11402
+ nop
11403
+ hint 25 // paciasp
995211404 stp x29, x30, [sp, -144]!
9953
- add x29, sp, 0
9954
- stp x19, x20, [sp, 16]
9955
- adrp x19, .LANCHOR0
11405
+ adrp x6, .LANCHOR0
11406
+ mov x29, sp
995611407 stp x23, x24, [sp, 48]
9957
- adrp x24, __stack_chk_guard
9958
- stp x27, x28, [sp, 80]
9959
- mov w27, w0
11408
+ add x23, x6, :lo12:.LANCHOR0
11409
+ stp x19, x20, [sp, 16]
996011410 stp x21, x22, [sp, 32]
9961
- add x0, x24, :lo12:__stack_chk_guard
996211411 stp x25, x26, [sp, 64]
9963
- str x24, [x29, 112]
9964
- ldr x1, [x0]
9965
- str x1, [x29, 136]
9966
- mov x1,0
9967
- add x0, x19, :lo12:.LANCHOR0
9968
- ldr w1, [x0, 3416]
9969
- cbnz w1, .L1527
9970
- ldrh w1, [x0, 2584]
9971
- cmp w1, 47
9972
- bls .L1527
9973
- adrp x1, .LANCHOR2+4
9974
- ldrh w2, [x1, #:lo12:.LANCHOR2+4]
11412
+ stp x27, x28, [sp, 80]
11413
+ str w0, [sp, 108]
11414
+ mrs x0, sp_el0
11415
+ ldr x1, [x0, 1376]
11416
+ str x1, [sp, 136]
11417
+ mov x1, 0
11418
+ ldr w0, [x23, 3408]
11419
+ cbnz w0, .L1554
11420
+ ldrh w0, [x23, 2584]
11421
+ cmp w0, 47
11422
+ bls .L1554
11423
+ adrp x0, .LANCHOR2+4
11424
+ ldrh w1, [x0, #:lo12:.LANCHOR2+4]
11425
+ mov w0, 65535
11426
+ cmp w1, w0
11427
+ bne .L1479
11428
+.L1482:
11429
+ ldrh w0, [x23, 224]
997511430 mov w1, 65535
9976
- cmp w2, w1
9977
- bne .L1449
9978
-.L1452:
9979
- add x0, x19, :lo12:.LANCHOR0
9980
- mov w2, 65535
9981
- ldrh w1, [x0, 224]
9982
- cmp w1, w2
9983
- bne .L1450
9984
-.L1451:
9985
- add x20, x19, :lo12:.LANCHOR0
11431
+ cmp w0, w1
11432
+ bne .L1480
11433
+.L1481:
998611434 bl FtlReadRefresh
9987
- mov w21, 65535
9988
- ldr w0, [x20, 3228]
9989
- ldrh w1, [x20, 176]
11435
+ ldr w1, [sp, 108]
11436
+ ldr w0, [x23, 3228]
11437
+ mov w19, 65535
11438
+ ldrh w2, [x23, 128]
999011439 add w0, w0, 1
9991
- add w0, w0, w27, lsl 7
9992
- str w0, [x20, 3228]
9993
- cmp w1, w21
9994
- bne .L1453
9995
- ldrh w21, [x20, 128]
9996
- cmp w21, w1
9997
- bne .L1530
9998
- ldrh w22, [x20, 226]
9999
- cmp w22, w21
10000
- bne .L1453
10001
- ldrh w1, [x20, 228]
11440
+ add w0, w0, w1, lsl 7
11441
+ ldrh w1, [x23, 176]
11442
+ str w0, [x23, 3228]
11443
+ and w1, w1, w2
11444
+ ldrh w2, [x23, 226]
11445
+ and w1, w1, w2
11446
+ and w20, w1, 65535
11447
+ cmp w19, w1, uxth
11448
+ bne .L1556
11449
+ ldrh w1, [x23, 228]
1000211450 mov w2, 1024
1000311451 cmp w1, 24
1000411452 mov w1, 5120
1000511453 csel w1, w1, w2, cc
1000611454 cmp w0, w1
10007
- bls .L1533
10008
- strh wzr, [x20, 3960]
10009
- str wzr, [x20, 3228]
11455
+ bls .L1483
11456
+ str wzr, [x23, 3228]
11457
+ strh wzr, [x23, 3952]
1001011458 bl GetSwlReplaceBlock
10011
- and w21, w0, 65535
10012
- cmp w21, w22
10013
- bne .L1534
10014
- ldrh w1, [x20, 228]
10015
- ldrh w0, [x20, 3226]
11459
+ and w20, w0, 65535
11460
+ cmp w19, w0, uxth
11461
+ bne .L1485
11462
+ ldrh w1, [x23, 228]
11463
+ ldrh w0, [x23, 3226]
1001611464 cmp w1, w0
10017
- bcs .L1456
11465
+ bcs .L1486
1001811466 mov w0, 64
1001911467 bl List_get_gc_head_node
10020
- and w0, w0, 65535
10021
- cmp w0, w21
10022
- beq .L1458
10023
- ldr x1, [x20, 72]
10024
- ubfiz x0, x0, 1, 16
10025
- ldrh w0, [x1, x0]
11468
+ and w1, w0, 65535
11469
+ cmp w20, w0, uxth
11470
+ beq .L1488
11471
+ ldr x0, [x23, 72]
11472
+ ubfiz x1, x1, 1, 16
11473
+ ldrh w0, [x0, x1]
1002611474 cmp w0, 7
10027
- bhi .L1459
11475
+ bhi .L1489
1002811476 mov w0, 0
1002911477 bl List_get_gc_head_node
10030
- and w22, w0, 65535
10031
- mov w0, 128
10032
- strh w0, [x20, 3226]
10033
- cmp w22, w21
10034
- bne .L1455
10035
-.L1458:
10036
- bl FtlGcReFreshBadBlk
10037
-.L1453:
10038
- cmp w27, 0
10039
- mov w1, 65535
10040
- ccmp w21, w1, 0, eq
10041
- bne .L1461
10042
- add x1, x19, :lo12:.LANCHOR0
10043
- ldrh w0, [x1, 228]
10044
- cmp w0, 24
10045
- bhi .L1535
10046
- cmp w0, 16
10047
- ldrh w20, [x1, 306]
10048
- bls .L1463
10049
- lsr w20, w20, 5
10050
-.L1462:
10051
- add x1, x19, :lo12:.LANCHOR0
10052
- ldrh w2, [x1, 3224]
10053
- cmp w2, w0
10054
- bcs .L1466
10055
- ldrh w0, [x1, 128]
10056
- mov w2, 65535
10057
- cmp w0, w2
10058
- bne .L1467
10059
- ldrh w2, [x1, 226]
10060
- cmp w2, w0
10061
- bne .L1467
10062
- ldrh w0, [x1, 3960]
10063
- cbnz w0, .L1468
10064
- ldr w2, [x1, 2624]
10065
- ldr w3, [x1, 2620]
10066
- add w2, w2, w2, lsl 1
10067
- cmp w3, w2, lsr 2
10068
- bcs .L1469
10069
-.L1468:
10070
- add x2, x19, :lo12:.LANCHOR0
10071
- ldrh w1, [x2, 2692]
10072
- add w1, w1, w1, lsl 1
10073
- asr w1, w1, 2
10074
- strh w1, [x2, 3224]
10075
-.L1470:
10076
- add x19, x19, :lo12:.LANCHOR0
10077
- str wzr, [x19, 3236]
10078
-.L1447:
10079
- ldr x1, [x29, 112]
10080
- add x24, x1, :lo12:__stack_chk_guard
10081
- ldr x2, [x29, 136]
10082
- ldr x1, [x24]
10083
- eor x1, x2, x1
10084
- cbz x1, .L1525
10085
- bl __stack_chk_fail
10086
-.L1449:
10087
- ldrh w0, [x0, 128]
10088
- cmp w0, w1
10089
- beq .L1452
11478
+ mov w2, 128
11479
+ strh w2, [x23, 3226]
11480
+ and w1, w0, 65535
11481
+ cmp w20, w0, uxth
11482
+ beq .L1488
11483
+ mov w20, w1
11484
+.L1485:
11485
+ ldr x1, [x23, 72]
11486
+ ubfiz x0, x20, 1, 16
11487
+ ldr x2, [x23, 2600]
11488
+ ldrh w3, [x1, x0]
11489
+ mov w1, w20
11490
+ ldrh w5, [x23, 3224]
11491
+ ldrh w4, [x2, x0]
11492
+ adrp x0, .LC125
11493
+ ldrh w2, [x23, 228]
11494
+ add x0, x0, :lo12:.LC125
11495
+ bl sftl_printk
11496
+ b .L1488
11497
+.L1479:
11498
+ ldrh w1, [x23, 128]
11499
+ cmp w1, w0
11500
+ beq .L1482
1009011501 mov w0, 1
1009111502 bl FtlGcFreeTempBlock
10092
- cbz w0, .L1452
11503
+ cbz w0, .L1482
1009311504 mov w0, 1
10094
- b .L1447
10095
-.L1450:
10096
- ldrh w3, [x0, 226]
10097
- cmp w3, w2
10098
- bne .L1451
10099
- strh w1, [x0, 226]
10100
- mov w1, -1
10101
- strh w1, [x0, 224]
10102
- b .L1451
10103
-.L1459:
10104
- mov w0, 64
10105
-.L1565:
10106
- strh w0, [x20, 3226]
10107
- b .L1458
10108
-.L1456:
10109
- mov w0, 80
10110
- b .L1565
10111
-.L1534:
10112
- mov w22, w21
10113
-.L1455:
10114
- add x0, x19, :lo12:.LANCHOR0
10115
- ubfiz x1, x22, 1, 32
10116
- mov w21, w22
10117
- ldr x2, [x0, 72]
10118
- ldr x3, [x0, 2600]
10119
- ldrh w5, [x0, 3224]
10120
- ldrh w4, [x3, x1]
10121
- ldrh w3, [x2, x1]
10122
- mov w1, w22
10123
- ldrh w2, [x0, 228]
10124
- adrp x0, .LC124
10125
- add x0, x0, :lo12:.LC124
10126
- bl sftl_printk
10127
- b .L1458
10128
-.L1530:
10129
- mov w21, w1
10130
- b .L1453
10131
-.L1533:
10132
- mov w21, w22
10133
- b .L1453
10134
-.L1463:
10135
- cmp w0, 12
10136
- bls .L1464
10137
- lsr w20, w20, 4
10138
- b .L1462
10139
-.L1464:
10140
- mov w1, w20
10141
- cmp w0, 9
10142
- lsr w20, w20, 2
10143
- csel w20, w20, w1, cs
10144
- b .L1462
10145
-.L1535:
10146
- mov w20, 1
10147
- b .L1462
10148
-.L1469:
10149
- mov w2, 18
10150
- strh w2, [x1, 3224]
10151
- b .L1470
10152
-.L1467:
10153
- add x1, x19, :lo12:.LANCHOR0
10154
- ldrh w0, [x1, 2692]
10155
- add w0, w0, w0, lsl 1
10156
- asr w0, w0, 2
10157
- strh w0, [x1, 3224]
10158
-.L1466:
10159
- add x0, x19, :lo12:.LANCHOR0
10160
- ldrh w0, [x0, 3312]
10161
- cbz w0, .L1536
10162
- add w20, w20, 32
10163
- and w20, w20, 65535
10164
-.L1536:
10165
- mov w21, 65535
10166
-.L1472:
10167
- add x0, x19, :lo12:.LANCHOR0
10168
- mov w2, 65535
10169
- ldrh w1, [x0, 176]
10170
- cmp w1, w2
11505
+ b .L1477
11506
+.L1480:
11507
+ ldrh w2, [x23, 226]
11508
+ cmp w2, w1
1017111509 bne .L1481
10172
- cmp w21, w1
10173
- beq .L1482
10174
- strh w21, [x0, 176]
10175
-.L1483:
10176
- add x5, x19, :lo12:.LANCHOR0
10177
- mov w1, 65535
10178
- ldrh w0, [x5, 176]
10179
- strb wzr, [x5, 184]
10180
- cmp w0, w1
10181
- beq .L1481
10182
- bl IsBlkInGcList
10183
- cbz w0, .L1486
11510
+ strh w0, [x23, 226]
1018411511 mov w0, -1
10185
- strh w0, [x5, 176]
10186
-.L1486:
10187
- add x22, x19, :lo12:.LANCHOR0
10188
- mov w0, 65535
10189
- add x23, x22, 176
10190
- ldrh w1, [x22, 176]
10191
- cmp w1, w0
10192
- beq .L1481
10193
- mov x0, x23
10194
- bl make_superblock
10195
- ldrh w1, [x22, 176]
10196
- ldr x0, [x22, 72]
10197
- strh wzr, [x22, 178]
10198
- strb wzr, [x22, 182]
10199
- strh wzr, [x22, 3962]
10200
- ldrh w0, [x0, x1, lsl 1]
10201
- strh w0, [x22, 3964]
10202
-.L1481:
10203
- add x0, x19, :lo12:.LANCHOR0
10204
- ldrh w1, [x0, 176]
10205
- ldrh w2, [x0, 24]
10206
- cmp w2, w1
10207
- beq .L1487
10208
- ldrh w2, [x0, 80]
10209
- cmp w2, w1
10210
- beq .L1487
10211
- ldrh w0, [x0, 128]
10212
- cmp w0, w1
10213
- bne .L1488
10214
-.L1487:
10215
- add x0, x19, :lo12:.LANCHOR0
10216
- mov w1, -1
10217
- strh w1, [x0, 176]
11512
+ strh w0, [x23, 224]
11513
+ b .L1481
11514
+.L1489:
11515
+ mov w0, 64
11516
+.L1584:
11517
+ strh w0, [x23, 3226]
1021811518 .L1488:
10219
- adrp x23, .LANCHOR1
10220
- add x23, x23, :lo12:.LANCHOR1
10221
- add x23, x23, 672
10222
-.L1523:
10223
- add x22, x19, :lo12:.LANCHOR0
11519
+ bl FtlGcReFreshBadBlk
11520
+.L1483:
11521
+ ldr w1, [sp, 108]
1022411522 mov w0, 65535
10225
- ldrh w25, [x22, 176]
10226
- cmp w25, w0
10227
- bne .L1489
10228
- mov w26, 2
10229
- str wzr, [x22, 3236]
10230
-.L1490:
10231
- ldrh w5, [x22, 3232]
10232
- mov w0, w5
10233
- bl List_get_gc_head_node
10234
- and w6, w0, 65535
10235
- strh w6, [x22, 176]
10236
- cmp w6, w25
11523
+ cmp w1, 0
11524
+ ccmp w20, w0, 0, eq
1023711525 bne .L1491
10238
- strh wzr, [x22, 3232]
10239
- mov w0, 8
10240
- b .L1447
10241
-.L1461:
10242
- add x0, x19, :lo12:.LANCHOR0
10243
- ldrh w2, [x0, 128]
10244
- cmp w2, w1
10245
- bne .L1539
10246
- ldrh w1, [x0, 226]
10247
- cmp w1, w2
10248
- bne .L1539
10249
- cmp w21, w1
10250
- bne .L1539
10251
- ldrh w1, [x0, 176]
10252
- cmp w1, w21
10253
- beq .L1473
10254
-.L1539:
10255
- mov w20, 1
10256
- b .L1472
10257
-.L1473:
10258
- ldrh w2, [x0, 228]
10259
- ldrh w1, [x0, 3224]
10260
- str wzr, [x0, 3236]
10261
- cmp w2, w1
10262
- bls .L1474
10263
- ldrh w1, [x0, 3960]
10264
- cbnz w1, .L1475
10265
- ldr w1, [x0, 2624]
10266
- ldr w2, [x0, 2620]
11526
+ ldrh w0, [x23, 228]
11527
+ cmp w0, 24
11528
+ bhi .L1559
11529
+ ldrh w19, [x23, 306]
11530
+ cmp w0, 16
11531
+ bls .L1493
11532
+ lsr w19, w19, 5
11533
+.L1492:
11534
+ ldrh w1, [x23, 3224]
11535
+ cmp w1, w0
11536
+ bcs .L1495
11537
+ ldrh w1, [x23, 226]
11538
+ ldrh w0, [x23, 128]
11539
+ and w0, w0, w1
11540
+ mov w1, 65535
11541
+ cmp w1, w0, uxth
11542
+ bne .L1496
11543
+ ldrh w0, [x23, 3952]
11544
+ cbnz w0, .L1497
11545
+ ldr w1, [x23, 2624]
11546
+ ldr w2, [x23, 2620]
1026711547 add w1, w1, w1, lsl 1
1026811548 cmp w2, w1, lsr 2
10269
- bcs .L1476
10270
-.L1475:
10271
- add x1, x19, :lo12:.LANCHOR0
10272
- ldrh w0, [x1, 2692]
11549
+ bcs .L1560
11550
+.L1497:
11551
+ ldrh w1, [x23, 2692]
11552
+ add w1, w1, w1, lsl 1
11553
+ lsr w1, w1, 2
11554
+.L1498:
11555
+ strh w1, [x23, 3224]
11556
+ str wzr, [x23, 3236]
11557
+.L1477:
11558
+ mrs x1, sp_el0
11559
+ ldr x2, [sp, 136]
11560
+ ldr x3, [x1, 1376]
11561
+ subs x2, x2, x3
11562
+ mov x3, 0
11563
+ beq .L1552
11564
+ bl __stack_chk_fail
11565
+.L1486:
11566
+ mov w0, 80
11567
+ b .L1584
11568
+.L1556:
11569
+ mov w20, w19
11570
+ b .L1483
11571
+.L1493:
11572
+ cmp w0, 12
11573
+ bls .L1494
11574
+ lsr w19, w19, 4
11575
+ b .L1492
11576
+.L1494:
11577
+ cmp w0, 8
11578
+ bls .L1492
11579
+ lsr w19, w19, 2
11580
+ b .L1492
11581
+.L1559:
11582
+ mov w19, 1
11583
+ b .L1492
11584
+.L1560:
11585
+ mov w1, 18
11586
+ b .L1498
11587
+.L1496:
11588
+ ldrh w0, [x23, 2692]
1027311589 add w0, w0, w0, lsl 1
1027411590 asr w0, w0, 2
10275
- strh w0, [x1, 3224]
10276
-.L1477:
11591
+ strh w0, [x23, 3224]
11592
+.L1495:
11593
+ ldrh w0, [x23, 3312]
11594
+ cbz w0, .L1561
11595
+ add w19, w19, 32
11596
+ and w19, w19, 65535
11597
+.L1561:
11598
+ mov w20, 65535
11599
+.L1500:
11600
+ ldrh w0, [x23, 176]
11601
+ mov w1, 65535
11602
+ cmp w0, w1
11603
+ bne .L1508
11604
+ cmp w20, w0
11605
+ beq .L1509
11606
+ strh w20, [x23, 176]
11607
+.L1510:
11608
+ ldrh w0, [x23, 176]
11609
+ add x21, x23, 176
11610
+ strb wzr, [x21, 8]
11611
+ mov w1, 65535
11612
+ cmp w0, w1
11613
+ beq .L1508
11614
+ bl IsBlkInGcList
11615
+ cbz w0, .L1513
11616
+ mov w0, -1
11617
+ strh w0, [x23, 176]
11618
+.L1508:
11619
+ ldrh w0, [x23, 176]
11620
+ ldrh w1, [x23, 24]
11621
+ cmp w1, w0
11622
+ beq .L1514
11623
+ ldrh w1, [x23, 80]
11624
+ cmp w1, w0
11625
+ beq .L1514
11626
+ ldrh w1, [x23, 128]
11627
+ cmp w1, w0
11628
+ bne .L1515
11629
+.L1514:
11630
+ mov w0, -1
11631
+ strh w0, [x23, 176]
11632
+.L1515:
11633
+ adrp x21, .LANCHOR1
11634
+ add x21, x21, :lo12:.LANCHOR1
11635
+ add x21, x21, 568
11636
+.L1550:
11637
+ ldrh w24, [x23, 176]
11638
+ mov w0, 65535
11639
+ cmp w24, w0
11640
+ bne .L1516
11641
+ mov w25, 2
11642
+ str wzr, [x23, 3236]
11643
+.L1517:
11644
+ ldrh w22, [x23, 3232]
11645
+ mov w0, w22
11646
+ bl List_get_gc_head_node
11647
+ and w26, w0, 65535
11648
+ strh w26, [x23, 176]
11649
+ cmp w26, w24
11650
+ bne .L1518
11651
+ mov w0, 8
11652
+ strh wzr, [x23, 3232]
11653
+ b .L1477
11654
+.L1491:
11655
+ ldrh w19, [x23, 128]
11656
+ ldrh w1, [x23, 226]
11657
+ and w19, w19, w1
11658
+ and w19, w20, w19
11659
+ cmp w19, w0
11660
+ bne .L1562
11661
+ ldrh w0, [x23, 176]
11662
+ cmp w0, w19
11663
+ beq .L1501
11664
+.L1505:
11665
+ mov w20, w19
11666
+.L1562:
11667
+ mov w19, 1
11668
+ b .L1500
11669
+.L1501:
11670
+ ldrh w1, [x23, 228]
11671
+ ldrh w0, [x23, 3224]
11672
+ str wzr, [x23, 3236]
11673
+ cmp w1, w0
11674
+ bls .L1502
11675
+ ldrh w0, [x23, 3952]
11676
+ cbnz w0, .L1503
11677
+ ldr w0, [x23, 2624]
11678
+ ldr w1, [x23, 2620]
11679
+ add w0, w0, w0, lsl 1
11680
+ cmp w1, w0, lsr 2
11681
+ bcs .L1563
11682
+.L1503:
11683
+ ldrh w0, [x23, 2692]
11684
+ add w0, w0, w0, lsl 1
11685
+ lsr w0, w0, 2
11686
+.L1504:
11687
+ strh w0, [x23, 3224]
1027711688 bl FtlReadRefresh
1027811689 mov w0, 0
1027911690 bl List_get_gc_head_node
10280
- add x1, x19, :lo12:.LANCHOR0
11691
+ ldr x1, [x23, 72]
1028111692 ubfiz x0, x0, 1, 16
10282
- ldr x2, [x1, 72]
10283
- ldrh w0, [x2, x0]
11693
+ ldrh w0, [x1, x0]
1028411694 cmp w0, 4
10285
- bls .L1474
10286
- ldrh w0, [x1, 3960]
10287
- b .L1447
10288
-.L1476:
10289
- mov w1, 18
10290
- strh w1, [x0, 3224]
11695
+ bls .L1502
11696
+.L1585:
11697
+ ldrh w0, [x23, 3952]
1029111698 b .L1477
10292
-.L1474:
10293
- add x20, x19, :lo12:.LANCHOR0
10294
- ldrh w0, [x20, 3960]
10295
- cbnz w0, .L1539
10296
- ldrh w5, [x20, 2692]
10297
- add w0, w5, w5, lsl 1
11699
+.L1563:
11700
+ mov w0, 18
11701
+ b .L1504
11702
+.L1502:
11703
+ ldrh w0, [x23, 3952]
11704
+ cbnz w0, .L1505
11705
+ ldrh w20, [x23, 2692]
11706
+ add w0, w20, w20, lsl 1
1029811707 asr w0, w0, 2
10299
- strh w0, [x20, 3224]
11708
+ strh w0, [x23, 3224]
1030011709 mov w0, 0
1030111710 bl List_get_gc_head_node
10302
- ldr x1, [x20, 72]
11711
+ ldr x1, [x23, 72]
1030311712 ubfiz x0, x0, 1, 16
10304
- ldrh w2, [x20, 236]
11713
+ ldrh w2, [x23, 236]
1030511714 ldrh w1, [x1, x0]
10306
- ldrh w0, [x20, 308]
11715
+ ldrh w0, [x23, 308]
1030711716 mul w0, w0, w2
1030811717 mov w2, 2
1030911718 sdiv w0, w0, w2
1031011719 cmp w1, w0
10311
- ble .L1479
10312
- ldrh w0, [x20, 228]
10313
- sub w5, w5, #1
10314
- cmp w0, w5
10315
- blt .L1479
11720
+ ble .L1506
11721
+ ldrh w0, [x23, 228]
11722
+ sub w20, w20, #1
11723
+ cmp w0, w20
11724
+ blt .L1506
1031611725 bl FtlReadRefresh
10317
- ldrh w0, [x20, 3960]
10318
- b .L1447
10319
-.L1479:
10320
- cbnz w1, .L1539
10321
- add x19, x19, :lo12:.LANCHOR0
11726
+ b .L1585
11727
+.L1506:
11728
+ cbnz w1, .L1505
1032211729 mov w0, -1
1032311730 bl decrement_vpc_count
10324
- ldrh w0, [x19, 228]
11731
+ ldrh w0, [x23, 228]
1032511732 add w0, w0, 1
10326
- b .L1447
10327
-.L1482:
10328
- ldrh w1, [x0, 226]
10329
- cmp w1, w21
10330
- beq .L1483
10331
- ldr x2, [x0, 72]
10332
- ubfiz x1, x1, 1, 16
10333
- ldrh w1, [x2, x1]
10334
- cbnz w1, .L1484
10335
- mov w1, -1
10336
- strh w1, [x0, 226]
10337
-.L1484:
10338
- add x0, x19, :lo12:.LANCHOR0
10339
- ldrh w1, [x0, 226]
10340
- strh w1, [x0, 176]
10341
- mov w1, -1
10342
- strh w1, [x0, 226]
10343
- b .L1483
10344
-.L1491:
10345
- mov w0, w6
11733
+ b .L1477
11734
+.L1509:
11735
+ ldrh w0, [x23, 226]
11736
+ cmp w0, w20
11737
+ beq .L1510
11738
+ ldr x1, [x23, 72]
11739
+ ubfiz x0, x0, 1, 16
11740
+ ldrh w0, [x1, x0]
11741
+ cbnz w0, .L1511
11742
+ mov w0, -1
11743
+ strh w0, [x23, 226]
11744
+.L1511:
11745
+ ldrh w0, [x23, 226]
11746
+ strh w0, [x23, 176]
11747
+ mov w0, -1
11748
+ strh w0, [x23, 226]
11749
+ b .L1510
11750
+.L1518:
11751
+ mov w0, w26
1034611752 bl IsBlkInGcList
10347
- add w5, w5, 1
10348
- cbz w0, .L1492
10349
- strh w5, [x22, 3232]
10350
- b .L1490
10351
-.L1492:
10352
- ldrh w4, [x22, 236]
10353
- ubfiz x1, x6, 1, 16
10354
- ldrh w0, [x22, 306]
10355
- and w5, w5, 65535
10356
- ldr x2, [x22, 72]
10357
- strh w5, [x22, 3232]
10358
- mul w0, w0, w4
10359
- ldrh w3, [x2, x1]
10360
- sdiv w4, w0, w26
10361
- cmp w3, w4
10362
- bgt .L1494
10363
- cmp w5, 48
10364
- bls .L1495
10365
- cmp w3, 8
10366
- bls .L1495
10367
- ldrh w3, [x22, 3284]
10368
- cmp w3, 35
10369
- bhi .L1495
10370
-.L1494:
10371
- strh wzr, [x22, 3232]
10372
-.L1495:
10373
- ldrh w1, [x2, x1]
11753
+ add w1, w22, 1
11754
+ and w1, w1, 65535
11755
+ strh w1, [x23, 3232]
11756
+ cbnz w0, .L1517
11757
+ ldrh w5, [x23, 236]
11758
+ ubfiz x2, x26, 1, 16
11759
+ ldrh w0, [x23, 306]
11760
+ ldr x3, [x23, 72]
11761
+ mul w0, w0, w5
11762
+ ldrh w4, [x3, x2]
11763
+ sdiv w5, w0, w25
11764
+ cmp w4, w5
11765
+ bgt .L1521
11766
+ cmp w1, 48
11767
+ bls .L1522
11768
+ cmp w4, 8
11769
+ bls .L1522
11770
+ ldrh w1, [x23, 3284]
11771
+ cmp w1, 35
11772
+ bhi .L1522
11773
+.L1521:
11774
+ strh wzr, [x23, 3232]
11775
+.L1522:
11776
+ ldrh w1, [x3, x2]
1037411777 cmp w0, w1
10375
- bgt .L1496
10376
- cmp w21, w25
10377
- bne .L1496
10378
- ldrh w0, [x22, 3232]
11778
+ bgt .L1523
11779
+ cmp w20, w24
11780
+ bne .L1523
11781
+ ldrh w0, [x23, 3232]
1037911782 cmp w0, 3
10380
- bhi .L1496
11783
+ bhi .L1523
1038111784 mov w0, -1
10382
- strh wzr, [x22, 3232]
10383
- strh w0, [x22, 176]
10384
-.L1566:
10385
- ldrh w0, [x22, 3960]
10386
- b .L1447
10387
-.L1496:
10388
- cbnz w1, .L1497
11785
+ strh w0, [x23, 176]
11786
+ strh wzr, [x23, 3232]
11787
+ b .L1585
11788
+.L1523:
11789
+ cbnz w1, .L1524
1038911790 mov w0, -1
1039011791 bl decrement_vpc_count
10391
- ldrh w0, [x22, 3232]
11792
+ ldrh w0, [x23, 3232]
1039211793 add w0, w0, 1
10393
- strh w0, [x22, 3232]
10394
- b .L1490
10395
-.L1497:
10396
- add x0, x19, :lo12:.LANCHOR0
10397
- strb wzr, [x0, 184]
10398
- ldrh w0, [x0, 24]
10399
- cmp w0, w6
10400
- bne .L1498
10401
- adrp x0, .LC8
11794
+ strh w0, [x23, 3232]
11795
+ b .L1517
11796
+.L1524:
11797
+ ldrh w0, [x23, 24]
11798
+ strb wzr, [x23, 184]
11799
+ cmp w0, w26
11800
+ bne .L1525
11801
+ adrp x0, .LC9
11802
+ mov x1, x21
11803
+ add x0, x0, :lo12:.LC9
1040211804 mov w2, 717
10403
- mov x1, x23
10404
- add x0, x0, :lo12:.LC8
1040511805 bl sftl_printk
10406
-.L1498:
10407
- add x0, x19, :lo12:.LANCHOR0
10408
- ldrh w1, [x0, 176]
10409
- ldrh w0, [x0, 80]
11806
+.L1525:
11807
+ ldrh w1, [x23, 176]
11808
+ ldrh w0, [x23, 80]
1041011809 cmp w1, w0
10411
- bne .L1499
10412
- adrp x0, .LC8
11810
+ bne .L1526
11811
+ adrp x0, .LC9
11812
+ mov x1, x21
11813
+ add x0, x0, :lo12:.LC9
1041311814 mov w2, 718
10414
- mov x1, x23
10415
- add x0, x0, :lo12:.LC8
1041611815 bl sftl_printk
10417
-.L1499:
10418
- add x0, x19, :lo12:.LANCHOR0
10419
- ldrh w1, [x0, 176]
10420
- ldrh w0, [x0, 128]
11816
+.L1526:
11817
+ ldrh w1, [x23, 176]
11818
+ ldrh w0, [x23, 128]
1042111819 cmp w1, w0
10422
- bne .L1500
10423
- adrp x0, .LC8
11820
+ bne .L1527
11821
+ adrp x0, .LC9
11822
+ mov x1, x21
11823
+ add x0, x0, :lo12:.LC9
1042411824 mov w2, 719
10425
- mov x1, x23
10426
- add x0, x0, :lo12:.LC8
1042711825 bl sftl_printk
10428
-.L1500:
10429
- add x22, x19, :lo12:.LANCHOR0
10430
- add x25, x22, 176
10431
- mov x0, x25
11826
+.L1527:
11827
+ add x22, x23, 176
11828
+ mov x0, x22
1043211829 bl make_superblock
10433
- ldrh w1, [x22, 176]
10434
- ldr x0, [x22, 72]
10435
- strh wzr, [x22, 3962]
11830
+ ldrh w1, [x23, 176]
11831
+ ldr x0, [x23, 72]
11832
+ strh wzr, [x23, 3954]
1043611833 ldrh w0, [x0, x1, lsl 1]
10437
- strh w0, [x22, 3964]
10438
- strh wzr, [x22, 178]
10439
- strb wzr, [x22, 182]
10440
-.L1489:
10441
- add x1, x19, :lo12:.LANCHOR0
11834
+ strh wzr, [x23, 178]
11835
+ strb wzr, [x23, 182]
11836
+ strh w0, [x23, 3956]
11837
+.L1516:
1044211838 mov w0, 1
10443
- str w0, [x1, 3416]
10444
- ldrh w26, [x1, 306]
10445
- cbz w27, .L1501
10446
- ldrh w0, [x1, 236]
10447
- ldrh w2, [x1, 176]
10448
- ldr x1, [x1, 72]
10449
- mul w0, w0, w26
11839
+ str w0, [x23, 3408]
11840
+ ldrh w0, [x23, 306]
11841
+ str w0, [sp, 104]
11842
+ ldr w0, [sp, 108]
11843
+ cbz w0, .L1528
11844
+ ldr w1, [sp, 104]
11845
+ ldrh w0, [x23, 236]
11846
+ ldrh w2, [x23, 176]
11847
+ mul w0, w0, w1
11848
+ ldr x1, [x23, 72]
1045011849 ldrh w1, [x1, x2, lsl 1]
1045111850 sub w0, w0, w1
1045211851 mov w1, 4
1045311852 sdiv w0, w0, w1
10454
- add w20, w20, w0
10455
- and w20, w20, 65535
10456
-.L1501:
10457
- add x0, x19, :lo12:.LANCHOR0
10458
- ldrh w0, [x0, 178]
10459
- add w1, w0, w20
10460
- cmp w1, w26
10461
- ble .L1502
10462
- sub w20, w26, w0
10463
- and w20, w20, 65535
10464
-.L1502:
10465
- mov w28, 0
10466
-.L1503:
10467
- cmp w20, w28, uxth
10468
- bls .L1511
10469
- add x0, x19, :lo12:.LANCHOR0
11853
+ add w19, w0, w19
11854
+ and w19, w19, 65535
11855
+.L1528:
11856
+ ldrh w0, [x23, 178]
11857
+ ldr w2, [sp, 104]
11858
+ add w1, w0, w19
11859
+ cmp w1, w2
11860
+ ble .L1529
11861
+ sub w0, w2, w0
11862
+ and w19, w0, 65535
11863
+.L1529:
11864
+ add x26, x23, 176
11865
+ mov w27, 0
11866
+.L1530:
11867
+ ldrh w0, [x26, 2]
11868
+ cmp w19, w27, uxth
11869
+ bls .L1538
11870
+ ldrh w7, [x23, 236]
11871
+ add w1, w0, w27
11872
+ mov x4, x26
1047011873 mov w22, 0
10471
- add x3, x0, 192
10472
- mov w1, 0
10473
- mov w6, 65535
10474
- ldrh w4, [x0, 178]
10475
- ldrh w7, [x0, 236]
10476
- add w4, w4, w28
10477
- b .L1512
10478
-.L1505:
10479
- ldrh w2, [x3]
10480
- cmp w2, w6
10481
- beq .L1504
10482
- ldr x5, [x0, 3272]
11874
+ mov w2, 0
11875
+ mov w5, 65535
11876
+ b .L1539
11877
+.L1532:
11878
+ ldrh w3, [x4, 16]
11879
+ cmp w3, w5
11880
+ beq .L1531
1048311881 ubfiz x8, x22, 5, 16
1048411882 add w22, w22, 1
10485
- orr w2, w4, w2, lsl 10
10486
- add x5, x5, x8
11883
+ add x0, x0, x8
1048711884 and w22, w22, 65535
10488
- str w2, [x5, 4]
10489
-.L1504:
10490
- add w1, w1, 1
10491
- add x3, x3, 2
10492
- and w1, w1, 65535
10493
-.L1512:
10494
- cmp w1, w7
10495
- bne .L1505
10496
- add x24, x19, :lo12:.LANCHOR0
11885
+ orr w3, w1, w3, lsl 10
11886
+ str w3, [x0, 4]
11887
+.L1531:
11888
+ add w2, w2, 1
11889
+ add x4, x4, 2
11890
+ and w2, w2, 65535
11891
+.L1539:
11892
+ ldr x0, [x23, 3272]
11893
+ cmp w2, w7
11894
+ bne .L1532
11895
+ ldrb w2, [x26, 8]
1049711896 mov w1, w22
10498
- mov x25, 0
10499
- ldrb w2, [x24, 184]
10500
- ldr x0, [x24, 3272]
11897
+ mov x24, 0
1050111898 bl FlashReadPages
10502
- ubfiz x0, x22, 5, 16
10503
- mov x22, x24
10504
- str x0, [x29, 120]
10505
-.L1506:
10506
- ldr x0, [x29, 120]
10507
- cmp x0, x25
10508
- bne .L1510
10509
- add w28, w28, 1
10510
- b .L1503
10511
-.L1510:
10512
- ldr x0, [x22, 3272]
10513
- add x1, x0, x25
10514
- ldr w0, [x0, x25]
11899
+ adrp x0, .LC9
11900
+ add x0, x0, :lo12:.LC9
11901
+ str x0, [sp, 112]
11902
+.L1533:
11903
+ cmp w22, w24, uxth
11904
+ bhi .L1537
11905
+ add w27, w27, 1
11906
+ b .L1530
11907
+.L1537:
11908
+ ldr x0, [x23, 3272]
11909
+ lsl x28, x24, 5
11910
+ add x1, x0, x24, lsl 5
11911
+ ldr w0, [x0, x28]
1051511912 cmn w0, #1
10516
- beq .L1507
10517
- ldr x24, [x1, 16]
11913
+ beq .L1534
11914
+ ldr x25, [x1, 16]
1051811915 mov w0, 61589
10519
- ldrh w1, [x24]
11916
+ ldrh w1, [x25]
1052011917 cmp w1, w0
10521
- bne .L1507
10522
- ldr w5, [x24, 8]
10523
- cmn w5, #1
10524
- bne .L1508
10525
- str w5, [x29, 104]
11918
+ bne .L1534
11919
+ ldr w4, [x25, 8]
11920
+ cmn w4, #1
11921
+ bne .L1535
11922
+ ldr x0, [sp, 112]
11923
+ mov x1, x21
1052611924 mov w2, 753
10527
- mov x1, x23
10528
- adrp x0, .LC8
10529
- add x0, x0, :lo12:.LC8
11925
+ str w4, [sp, 120]
1053011926 bl sftl_printk
10531
- ldr w5, [x29, 104]
10532
-.L1508:
11927
+ ldr w4, [sp, 120]
11928
+.L1535:
11929
+ add x1, sp, 128
1053311930 mov w2, 0
10534
- add x1, x29, 128
10535
- mov w0, w5
11931
+ mov w0, w4
1053611932 bl log2phys
10537
- ldr x0, [x22, 3272]
10538
- ldr w1, [x29, 128]
10539
- add x0, x0, x25
11933
+ ldr x0, [x23, 3272]
11934
+ ldr w1, [sp, 128]
11935
+ add x0, x0, x28
1054011936 ldr w2, [x0, 4]
1054111937 cmp w2, w1
10542
- bne .L1507
10543
- ldrh w1, [x22, 3962]
10544
- ldr x2, [x22, 3440]
11938
+ bne .L1534
11939
+ ldrh w1, [x23, 3954]
11940
+ ldr x2, [x23, 3432]
1054511941 add w1, w1, 1
10546
- strh w1, [x22, 3962]
10547
- ldr w1, [x22, 3240]
11942
+ strh w1, [x23, 3954]
11943
+ ldr w1, [x23, 3240]
1054811944 ldr w0, [x0, 24]
1054911945 add x1, x2, x1, lsl 5
10550
- str x1, [x29, 104]
11946
+ str x1, [sp, 120]
1055111947 str w0, [x1, 24]
1055211948 bl Ftl_get_new_temp_ppa
10553
- ldr x1, [x29, 104]
11949
+ ldr x1, [sp, 120]
1055411950 str w0, [x1, 4]
10555
- ldr w0, [x22, 3240]
10556
- ldr x1, [x22, 3440]
10557
- add x0, x1, x0, lsl 5
10558
- ldr x1, [x22, 3272]
10559
- add x1, x1, x25
11951
+ ldr w0, [x23, 3240]
11952
+ ldr x1, [x23, 3272]
11953
+ ldr x2, [x23, 3432]
11954
+ add x1, x1, x28
11955
+ add x0, x2, x0, lsl 5
1056011956 ldr x2, [x1, 8]
1056111957 str x2, [x0, 8]
11958
+ add x2, x23, 128
11959
+ str x2, [sp, 120]
1056211960 ldr x1, [x1, 16]
1056311961 str x1, [x0, 16]
10564
- ldr w0, [x29, 128]
11962
+ ldr w0, [sp, 128]
1056511963 mov w1, 1
10566
- str w0, [x24, 12]
10567
- ldrh w0, [x22, 128]
10568
- strh w0, [x24, 2]
10569
- ldr w0, [x22, 2664]
10570
- str w0, [x24, 4]
10571
- ldr w0, [x22, 3240]
11964
+ str w0, [x25, 12]
11965
+ ldrh w0, [x23, 128]
11966
+ strh w0, [x25, 2]
11967
+ ldr w0, [x23, 2664]
11968
+ str w0, [x25, 4]
11969
+ ldr w0, [x23, 3240]
1057211970 add w0, w0, 1
10573
- str w0, [x22, 3240]
10574
- ldr x0, [x22, 3272]
10575
- add x0, x0, x25
11971
+ str w0, [x23, 3240]
11972
+ ldr x0, [x23, 3272]
11973
+ add x0, x0, x28
1057611974 bl FtlGcBufAlloc
10577
- ldrb w1, [x22, 135]
10578
- ldr w0, [x22, 3240]
11975
+ ldr x2, [sp, 120]
11976
+ ldr w0, [x23, 3240]
11977
+ ldrb w1, [x2, 7]
1057911978 cmp w1, w0
10580
- beq .L1509
10581
- ldrh w0, [x22, 132]
10582
- cbnz w0, .L1507
10583
-.L1509:
11979
+ beq .L1536
11980
+ ldrh w0, [x2, 4]
11981
+ cbnz w0, .L1534
11982
+.L1536:
1058411983 bl Ftl_gc_temp_data_write_back
10585
- cbz w0, .L1507
10586
- add x19, x19, :lo12:.LANCHOR0
10587
- mov w0, -1
10588
- strh wzr, [x19, 178]
10589
- strh w0, [x19, 176]
10590
- str wzr, [x19, 3416]
10591
- ldrh w0, [x19, 3960]
10592
- b .L1447
10593
-.L1507:
10594
- add x25, x25, 32
10595
- b .L1506
10596
-.L1511:
10597
- add x22, x19, :lo12:.LANCHOR0
10598
- ldrh w0, [x22, 178]
10599
- add w20, w20, w0
10600
- and w20, w20, 65535
10601
- strh w20, [x22, 178]
10602
- cmp w26, w20
10603
- bhi .L1513
10604
- ldr w0, [x22, 3240]
10605
- cbz w0, .L1514
11984
+ cbz w0, .L1534
11985
+ mov w0, 65535
11986
+ str w0, [x23, 176]
11987
+ str wzr, [x23, 3408]
11988
+ b .L1585
11989
+.L1534:
11990
+ add x24, x24, 1
11991
+ b .L1533
11992
+.L1538:
11993
+ add w19, w19, w0
11994
+ ldr w0, [sp, 104]
11995
+ and w19, w19, 65535
11996
+ strh w19, [x26, 2]
11997
+ cmp w0, w19
11998
+ bhi .L1540
11999
+ ldr w0, [x23, 3240]
12000
+ cbz w0, .L1541
1060612001 bl Ftl_gc_temp_data_write_back
10607
- cbz w0, .L1514
10608
- str wzr, [x22, 3416]
10609
- b .L1566
10610
-.L1514:
10611
- add x0, x19, :lo12:.LANCHOR0
10612
- ldrh w1, [x0, 3962]
10613
- cbnz w1, .L1515
10614
- ldrh w2, [x0, 176]
10615
- ldr x1, [x0, 72]
10616
- ldrh w1, [x1, x2, lsl 1]
10617
- cbz w1, .L1515
10618
- mov x20, x0
10619
- mov w22, 0
10620
-.L1516:
10621
- ldr w0, [x20, 2624]
10622
- cmp w22, w0
10623
- bcs .L1521
12002
+ cbz w0, .L1541
12003
+ str wzr, [x23, 3408]
12004
+ b .L1585
12005
+.L1541:
12006
+ ldrh w0, [x23, 3954]
12007
+ cbnz w0, .L1542
12008
+ ldrh w1, [x23, 176]
12009
+ ldr x0, [x23, 72]
12010
+ ldrh w0, [x0, x1, lsl 1]
12011
+ cbz w0, .L1542
12012
+ mov w19, 0
12013
+ b .L1543
12014
+.L1546:
12015
+ add x1, sp, 132
12016
+ mov w0, w19
1062412017 mov w2, 0
10625
- add x1, x29, 132
10626
- mov w0, w22
1062712018 bl log2phys
10628
- ldr w0, [x29, 132]
12019
+ ldr w0, [sp, 132]
1062912020 cmn w0, #1
10630
- beq .L1517
10631
- lsr w0, w0, 10
12021
+ beq .L1544
12022
+ ubfx x0, x0, 10, 16
1063212023 bl P2V_block_in_plane
10633
- ldrh w1, [x20, 176]
12024
+ ldrh w1, [x23, 176]
1063412025 cmp w1, w0, uxth
10635
- bne .L1517
10636
-.L1521:
10637
- add x0, x19, :lo12:.LANCHOR0
10638
- ldr w1, [x0, 2624]
10639
- cmp w22, w1
10640
- bcc .L1515
10641
- ldrh w2, [x0, 176]
10642
- ldr x1, [x0, 72]
10643
- strh wzr, [x1, x2, lsl 1]
10644
- ldrh w0, [x0, 176]
12026
+ beq .L1545
12027
+.L1544:
12028
+ add w19, w19, 1
12029
+.L1543:
12030
+ ldr w0, [x23, 2624]
12031
+ cmp w19, w0
12032
+ bcc .L1546
12033
+.L1548:
12034
+ ldrh w1, [x23, 176]
12035
+ ldr x0, [x23, 72]
12036
+ strh wzr, [x0, x1, lsl 1]
12037
+ ldrh w0, [x23, 176]
1064512038 bl update_vpc_list
1064612039 bl l2p_flush
1064712040 bl FtlVpcTblFlush
10648
-.L1515:
10649
- add x0, x19, :lo12:.LANCHOR0
10650
- mov w1, -1
10651
- strh w1, [x0, 176]
10652
-.L1513:
10653
- add x1, x19, :lo12:.LANCHOR0
10654
- ldrh w0, [x1, 228]
10655
- str wzr, [x1, 3416]
12041
+.L1542:
12042
+ mov w0, -1
12043
+ strh w0, [x23, 176]
12044
+.L1540:
12045
+ ldrh w0, [x23, 228]
12046
+ str wzr, [x23, 3408]
1065612047 cmp w0, 2
10657
- bhi .L1522
10658
- ldrh w20, [x1, 306]
10659
- b .L1523
10660
-.L1517:
10661
- add w22, w22, 1
10662
- b .L1516
10663
-.L1522:
10664
- ldrh w1, [x1, 3960]
12048
+ bhi .L1549
12049
+ ldrh w19, [x23, 306]
12050
+ b .L1550
12051
+.L1545:
12052
+ ldr w0, [x23, 2624]
12053
+ cmp w19, w0
12054
+ bcc .L1542
12055
+ b .L1548
12056
+.L1549:
12057
+ ldrh w1, [x23, 3952]
1066512058 cmp w1, 0
1066612059 csinc w0, w1, w0, ne
10667
- b .L1447
10668
-.L1527:
12060
+ b .L1477
12061
+.L1554:
1066912062 mov w0, 0
10670
- b .L1447
10671
-.L1525:
12063
+ b .L1477
12064
+.L1513:
12065
+ mov x0, x21
12066
+ bl make_superblock
12067
+ ldrh w1, [x23, 176]
12068
+ ldr x0, [x23, 72]
12069
+ strh wzr, [x21, 2]
12070
+ strb wzr, [x21, 6]
12071
+ strh wzr, [x23, 3954]
12072
+ ldrh w0, [x0, x1, lsl 1]
12073
+ strh w0, [x23, 3956]
12074
+ b .L1508
12075
+.L1552:
1067212076 ldp x19, x20, [sp, 16]
1067312077 ldp x21, x22, [sp, 32]
1067412078 ldp x23, x24, [sp, 48]
1067512079 ldp x25, x26, [sp, 64]
1067612080 ldp x27, x28, [sp, 80]
1067712081 ldp x29, x30, [sp], 144
12082
+ hint 29 // autiasp
1067812083 ret
1067912084 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
1068012085 .align 2
1068112086 .global FtlRead
1068212087 .type FtlRead, %function
1068312088 FtlRead:
10684
- stp x29, x30, [sp, -176]!
12089
+ hint 34 // bti c
12090
+ .section __patchable_function_entries
12091
+ .align 3
12092
+ .8byte .LPFE124
12093
+ .text
12094
+.LPFE124:
12095
+ nop
12096
+ nop
12097
+ hint 25 // paciasp
12098
+ stp x29, x30, [sp, -160]!
1068512099 and w0, w0, 255
10686
- cmp w0, 16
10687
- add x29, sp, 0
12100
+ mov x29, sp
12101
+ stp x19, x20, [sp, 16]
12102
+ stp x21, x22, [sp, 32]
12103
+ mov x21, x3
12104
+ stp x23, x24, [sp, 48]
12105
+ mov w23, w2
1068812106 stp x25, x26, [sp, 64]
1068912107 mov w26, w1
10690
- stp x21, x22, [sp, 32]
10691
- adrp x1, __stack_chk_guard
10692
- stp x19, x20, [sp, 16]
10693
- mov w25, w2
10694
- stp x23, x24, [sp, 48]
10695
- add x2, x1, :lo12:__stack_chk_guard
12108
+ mrs x1, sp_el0
1069612109 stp x27, x28, [sp, 80]
10697
- mov x22, x3
10698
- str x1, [x29, 112]
10699
- ldr x3, [x2]
10700
- str x3, [x29, 168]
10701
- mov x3,0
10702
- bne .L1568
10703
- mov x2, x22
10704
- mov w1, w25
12110
+ ldr x2, [x1, 1376]
12111
+ str x2, [sp, 152]
12112
+ mov x2, 0
12113
+ cmp w0, 16
12114
+ bne .L1587
12115
+ mov x2, x3
12116
+ mov w1, w23
1070512117 add w0, w26, 256
1070612118 bl FtlVendorPartRead
1070712119 mov w19, w0
10708
-.L1567:
10709
- ldr x1, [x29, 112]
10710
- mov w0, w19
10711
- add x1, x1, :lo12:__stack_chk_guard
10712
- ldr x2, [x29, 168]
10713
- ldr x1, [x1]
10714
- eor x1, x2, x1
10715
- cbz x1, .L1589
12120
+.L1586:
12121
+ mrs x0, sp_el0
12122
+ ldr x1, [sp, 152]
12123
+ ldr x2, [x0, 1376]
12124
+ subs x1, x1, x2
12125
+ mov x2, 0
12126
+ beq .L1609
1071612127 bl __stack_chk_fail
10717
-.L1568:
10718
- adrp x1, .LANCHOR0
10719
- add x3, x1, :lo12:.LANCHOR0
10720
- str x1, [x29, 104]
10721
- ldr w0, [x3, 344]
10722
- cmp w26, w0
10723
- bcs .L1592
10724
- cmp w25, w0
10725
- bhi .L1592
10726
- add w1, w26, w25
10727
- str w1, [x29, 144]
12128
+.L1587:
12129
+ adrp x3, .LANCHOR0
12130
+ add x28, x3, :lo12:.LANCHOR0
12131
+ ldr w0, [x28, 344]
12132
+ cmp w0, w26
12133
+ bls .L1612
12134
+ cmp w0, w23
12135
+ bcc .L1612
12136
+ add w1, w26, w23
12137
+ str w1, [sp, 116]
1072812138 cmp w0, w1
10729
- bcc .L1592
12139
+ bcc .L1612
1073012140 adrp x0, .LANCHOR2
1073112141 ldr w19, [x0, #:lo12:.LANCHOR2]
1073212142 cmn w19, #1
10733
- beq .L1567
10734
- ldrh w0, [x3, 262]
10735
- mov x27, x3
10736
- mov w23, 0
10737
- mov w28, 0
12143
+ beq .L1586
12144
+ ldrh w0, [x28, 262]
12145
+ mov w20, 0
1073812146 mov w19, 0
10739
- stp wzr, wzr, [x29, 148]
12147
+ stp wzr, wzr, [sp, 108]
1074012148 udiv w1, w26, w0
10741
- str w1, [x29, 156]
10742
- add w1, w26, w25
10743
- sub w24, w1, #1
10744
- ldr w20, [x29, 156]
10745
- udiv w24, w24, w0
10746
- ldr w0, [x29, 156]
10747
- sub w21, w24, w0
10748
- ldr w0, [x3, 2656]
10749
- add w21, w21, 1
10750
- add w0, w0, w25
10751
- str w0, [x3, 2656]
10752
- ldr w0, [x3, 2628]
10753
- add w0, w0, w21
10754
- str w0, [x3, 2628]
10755
-.L1570:
10756
- cbnz w21, .L1587
10757
- ldr x0, [x29, 104]
10758
- add x0, x0, :lo12:.LANCHOR0
10759
- ldrh w1, [x0, 3312]
10760
- cbnz w1, .L1588
10761
- ldrh w0, [x0, 228]
12149
+ stp w1, wzr, [sp, 100]
12150
+ add w1, w26, w23
12151
+ sub w25, w1, #1
12152
+ ldr w22, [sp, 100]
12153
+ udiv w25, w25, w0
12154
+ ldr w0, [sp, 100]
12155
+ sub w24, w25, w0
12156
+ ldr w0, [x28, 2656]
12157
+ add w24, w24, 1
12158
+ add w0, w0, w23
12159
+ str w0, [x28, 2656]
12160
+ ldr w0, [x28, 2628]
12161
+ add w0, w0, w24
12162
+ str w0, [x28, 2628]
12163
+.L1589:
12164
+ cbnz w24, .L1607
12165
+ ldrh w0, [x28, 3312]
12166
+ cbnz w0, .L1608
12167
+ ldrh w0, [x28, 228]
1076212168 cmp w0, 31
10763
- bhi .L1567
10764
-.L1588:
12169
+ bhi .L1586
12170
+.L1608:
1076512171 mov w1, 1
1076612172 mov w0, 0
1076712173 bl rk_ftl_garbage_collect
10768
- b .L1567
10769
-.L1587:
10770
- add x1, x29, 164
12174
+ b .L1586
12175
+.L1607:
12176
+ add x1, sp, 148
12177
+ mov w0, w22
1077112178 mov w2, 0
10772
- mov w0, w20
1077312179 bl log2phys
10774
- ldr w1, [x29, 164]
12180
+ ldr w1, [sp, 148]
1077512181 cmn w1, #1
10776
- bne .L1571
10777
- mov w6, 0
10778
-.L1572:
10779
- ldrh w0, [x27, 262]
10780
- cmp w6, w0
10781
- bcc .L1574
10782
-.L1575:
10783
- add w20, w20, 1
10784
- subs w21, w21, #1
10785
- beq .L1579
10786
- ldrh w0, [x27, 236]
10787
- cmp w28, w0, lsl 2
10788
- bne .L1570
10789
-.L1579:
10790
- cbz w28, .L1570
10791
- ldr x0, [x27, 3432]
10792
- mov w1, w28
10793
- mov w2, 0
10794
- bl FlashReadPages
10795
- ldr w0, [x29, 148]
10796
- lsl w0, w0, 9
10797
- str w0, [x29, 128]
10798
- ldr w0, [x29, 152]
10799
- lsl w0, w0, 9
10800
- str x0, [x29, 136]
10801
- lsl w0, w23, 9
10802
- str w0, [x29, 132]
10803
- ubfiz x0, x28, 5, 32
10804
- mov x28, 0
10805
- str x0, [x29, 120]
10806
-.L1586:
10807
- ldr x0, [x27, 3432]
10808
- ldr w2, [x29, 156]
10809
- add x0, x0, x28
10810
- ldr w1, [x0, 24]
10811
- cmp w2, w1
10812
- bne .L1581
10813
- ldr x1, [x0, 8]
10814
- ldr x0, [x27, 3480]
10815
- cmp x1, x0
10816
- bne .L1582
10817
- ldr x0, [x29, 136]
10818
- ldr w2, [x29, 132]
10819
- add x1, x1, x0
10820
- mov x0, x22
10821
-.L1602:
10822
- bl ftl_memcpy
10823
-.L1582:
10824
- ldr x0, [x27, 3432]
10825
- add x0, x0, x28
10826
- ldr x1, [x0, 16]
10827
- ldr w2, [x0, 24]
10828
- ldr w1, [x1, 8]
10829
- cmp w2, w1
10830
- beq .L1583
10831
- ldr w1, [x27, 2784]
10832
- add w1, w1, 1
10833
- str w1, [x27, 2784]
10834
-.L1583:
10835
- ldr w2, [x0]
10836
- cmn w2, #1
10837
- bne .L1584
10838
- ldr w1, [x27, 2784]
10839
- mov w19, w2
10840
- add w1, w1, 1
10841
- str w1, [x27, 2784]
10842
-.L1584:
10843
- ldr w1, [x0]
10844
- cmp w1, 256
10845
- bne .L1585
10846
- ldr w0, [x0, 4]
10847
- lsr w0, w0, 10
10848
- bl P2V_block_in_plane
10849
- bl FtlGcRefreshBlock
10850
-.L1585:
10851
- ldr x0, [x29, 120]
10852
- add x28, x28, 32
10853
- cmp x0, x28
10854
- bne .L1586
10855
- mov w28, 0
10856
- b .L1570
10857
-.L1574:
10858
- madd w0, w20, w0, w6
12182
+ bne .L1622
12183
+ mov w27, 0
12184
+ b .L1590
12185
+.L1593:
12186
+ madd w0, w0, w22, w27
1085912187 cmp w26, w0
10860
- bhi .L1573
10861
- ldr w1, [x29, 144]
12188
+ bhi .L1592
12189
+ ldr w1, [sp, 116]
1086212190 cmp w1, w0
10863
- bls .L1573
12191
+ bls .L1592
1086412192 sub w0, w0, w26
10865
- str w6, [x29, 136]
10866
- lsl w0, w0, 9
1086712193 mov w2, 512
1086812194 mov w1, 0
10869
- add x0, x22, x0
12195
+ lsl w0, w0, 9
12196
+ add x0, x21, x0
1087012197 bl ftl_memset
10871
- ldr w6, [x29, 136]
10872
-.L1573:
10873
- add w6, w6, 1
10874
- b .L1572
10875
-.L1571:
10876
- ldr x0, [x27, 3432]
10877
- ubfiz x2, x28, 5, 32
10878
- add x0, x0, x2
10879
- str w1, [x0, 4]
10880
- ldr w0, [x29, 156]
10881
- cmp w20, w0
10882
- ldrh w0, [x27, 262]
10883
- bne .L1576
10884
- ldr x1, [x27, 3432]
10885
- ldr x6, [x27, 3480]
10886
- add x1, x1, x2
10887
- str x6, [x1, 8]
10888
- udiv w6, w26, w0
10889
- msub w3, w6, w0, w26
10890
- str w3, [x29, 152]
10891
- sub w23, w0, w3
10892
- cmp w25, w23
10893
- csel w23, w25, w23, ls
10894
- cmp w23, w0
10895
- bne .L1577
10896
- str x22, [x1, 8]
10897
-.L1577:
10898
- ldr x0, [x27, 3432]
10899
- ldr x1, [x27, 3528]
10900
- add x2, x0, x2
10901
- ldrh w0, [x27, 316]
10902
- str w20, [x2, 24]
10903
- mul w0, w0, w28
10904
- add w28, w28, 1
10905
- and x0, x0, 4294967292
10906
- add x0, x1, x0
10907
- str x0, [x2, 16]
10908
- b .L1575
10909
-.L1576:
10910
- cmp w20, w24
10911
- bne .L1578
10912
- ldr x6, [x27, 3432]
10913
- ldr x1, [x27, 3488]
10914
- add x6, x6, x2
10915
- ldr w3, [x29, 144]
10916
- str x1, [x6, 8]
10917
- mul w1, w20, w0
10918
- sub w3, w3, w1
10919
- str w3, [x29, 148]
10920
- cmp w0, w3
10921
- bne .L1577
10922
- sub w1, w1, w26
10923
- lsl w1, w1, 9
10924
- add x1, x22, x1
10925
- str x1, [x6, 8]
10926
- b .L1577
10927
-.L1578:
10928
- ldr x1, [x27, 3432]
10929
- mul w0, w0, w20
10930
- add x1, x1, x2
10931
- sub w0, w0, w26
10932
- lsl w0, w0, 9
10933
- add x0, x22, x0
10934
- str x0, [x1, 8]
10935
- b .L1577
10936
-.L1581:
10937
- cmp w24, w1
10938
- bne .L1582
10939
- ldr x1, [x0, 8]
10940
- ldr x0, [x27, 3488]
10941
- cmp x1, x0
10942
- bne .L1582
10943
- ldrh w0, [x27, 262]
10944
- ldr w2, [x29, 128]
10945
- mul w0, w0, w24
10946
- sub w0, w0, w26
10947
- lsl w0, w0, 9
10948
- add x0, x22, x0
10949
- b .L1602
1095012198 .L1592:
12199
+ add w27, w27, 1
12200
+.L1590:
12201
+ ldrh w0, [x28, 262]
12202
+ cmp w0, w27
12203
+ bhi .L1593
12204
+.L1594:
12205
+ add w22, w22, 1
12206
+ subs w24, w24, #1
12207
+ beq .L1599
12208
+ ldrh w0, [x28, 236]
12209
+ cmp w20, w0, lsl 2
12210
+ bne .L1589
12211
+.L1599:
12212
+ cbz w20, .L1589
12213
+ ldr x0, [x28, 3424]
12214
+ mov w1, w20
12215
+ mov w2, 0
12216
+ mov x27, 0
12217
+ bl FlashReadPages
12218
+ ldr w0, [sp, 112]
12219
+ lsl w0, w0, 9
12220
+ str w0, [sp, 132]
12221
+ ldr w0, [sp, 104]
12222
+ lsl w0, w0, 9
12223
+ str x0, [sp, 120]
12224
+ ldr w0, [sp, 108]
12225
+ lsl w0, w0, 9
12226
+ str w0, [sp, 128]
12227
+.L1606:
12228
+ ldr x0, [x28, 3424]
12229
+ lsl x6, x27, 5
12230
+ ldr w2, [sp, 100]
12231
+ add x0, x0, x27, lsl 5
12232
+ ldr w1, [x0, 24]
12233
+ cmp w1, w2
12234
+ bne .L1601
12235
+ ldr x1, [x0, 8]
12236
+ ldr x0, [x28, 3472]
12237
+ cmp x1, x0
12238
+ bne .L1602
12239
+ ldr x0, [sp, 120]
12240
+ str x6, [sp, 136]
12241
+ ldr w2, [sp, 128]
12242
+ add x1, x1, x0
12243
+ mov x0, x21
12244
+.L1625:
12245
+ bl ftl_memcpy
12246
+ ldr x6, [sp, 136]
12247
+.L1602:
12248
+ ldr x1, [x28, 3424]
12249
+ add x0, x1, x6
12250
+ ldr x2, [x0, 16]
12251
+ ldr w7, [x0, 24]
12252
+ ldr w2, [x2, 8]
12253
+ cmp w7, w2
12254
+ beq .L1603
12255
+ ldr w2, [x28, 2784]
12256
+ add w2, w2, 1
12257
+ str w2, [x28, 2784]
12258
+.L1603:
12259
+ ldr w7, [x1, x6]
12260
+ cmn w7, #1
12261
+ bne .L1604
12262
+ ldr w2, [x28, 2784]
12263
+ mov w19, w7
12264
+ add w2, w2, 1
12265
+ str w2, [x28, 2784]
12266
+.L1604:
12267
+ ldr w1, [x1, x6]
12268
+ cmp w1, 256
12269
+ bne .L1605
12270
+ ldr w0, [x0, 4]
12271
+ ubfx x0, x0, 10, 16
12272
+ bl P2V_block_in_plane
12273
+ bl FtlGcRefreshBlock
12274
+.L1605:
12275
+ add x27, x27, 1
12276
+ cmp w20, w27
12277
+ bhi .L1606
12278
+ mov w20, 0
12279
+ b .L1589
12280
+.L1622:
12281
+ ldr x0, [x28, 3424]
12282
+ ubfiz x5, x20, 5, 32
12283
+ add x0, x0, x5
12284
+ str w1, [x0, 4]
12285
+ ldr w0, [sp, 100]
12286
+ ldrh w1, [x28, 262]
12287
+ cmp w22, w0
12288
+ bne .L1595
12289
+ udiv w6, w26, w1
12290
+ ldr x0, [x28, 3424]
12291
+ ldr x2, [x28, 3472]
12292
+ msub w3, w6, w1, w26
12293
+ add x0, x0, x5
12294
+ str w3, [sp, 104]
12295
+ sub w6, w1, w3
12296
+ cmp w23, w6
12297
+ csel w3, w23, w6, ls
12298
+ str w3, [sp, 108]
12299
+ cmp w1, w3
12300
+ csel x1, x2, x21, ne
12301
+ str x1, [x0, 8]
12302
+.L1596:
12303
+ ldrh w0, [x28, 316]
12304
+ ldr x1, [x28, 3424]
12305
+ ldr x2, [x28, 3520]
12306
+ mul w0, w0, w20
12307
+ add x1, x1, x5
12308
+ add w20, w20, 1
12309
+ and x0, x0, 4294967292
12310
+ add x0, x2, x0
12311
+ str x0, [x1, 16]
12312
+ str w22, [x1, 24]
12313
+ b .L1594
12314
+.L1595:
12315
+ ldr x2, [x28, 3424]
12316
+ mul w0, w22, w1
12317
+ add x2, x2, x5
12318
+ cmp w22, w25
12319
+ bne .L1597
12320
+ ldr w3, [sp, 116]
12321
+ sub w3, w3, w0
12322
+ str w3, [sp, 112]
12323
+ cmp w3, w1
12324
+ beq .L1597
12325
+ ldr x0, [x28, 3480]
12326
+.L1624:
12327
+ str x0, [x2, 8]
12328
+ b .L1596
12329
+.L1597:
12330
+ sub w0, w0, w26
12331
+ lsl w0, w0, 9
12332
+ add x0, x21, x0
12333
+ b .L1624
12334
+.L1601:
12335
+ cmp w1, w25
12336
+ bne .L1602
12337
+ ldr x1, [x0, 8]
12338
+ ldr x0, [x28, 3480]
12339
+ cmp x1, x0
12340
+ bne .L1602
12341
+ ldrh w0, [x28, 262]
12342
+ ldr w2, [sp, 132]
12343
+ str x6, [sp, 136]
12344
+ mul w0, w0, w25
12345
+ sub w0, w0, w26
12346
+ lsl w0, w0, 9
12347
+ add x0, x21, x0
12348
+ b .L1625
12349
+.L1612:
1095112350 mov w19, -1
10952
- b .L1567
10953
-.L1589:
12351
+ b .L1586
12352
+.L1609:
12353
+ mov w0, w19
1095412354 ldp x19, x20, [sp, 16]
1095512355 ldp x21, x22, [sp, 32]
1095612356 ldp x23, x24, [sp, 48]
1095712357 ldp x25, x26, [sp, 64]
1095812358 ldp x27, x28, [sp, 80]
10959
- ldp x29, x30, [sp], 176
12359
+ ldp x29, x30, [sp], 160
12360
+ hint 29 // autiasp
1096012361 ret
1096112362 .size FtlRead, .-FtlRead
1096212363 .align 2
1096312364 .global sftl_read
1096412365 .type sftl_read, %function
1096512366 sftl_read:
12367
+ hint 34 // bti c
12368
+ .section __patchable_function_entries
12369
+ .align 3
12370
+ .8byte .LPFE125
12371
+ .text
12372
+.LPFE125:
12373
+ nop
12374
+ nop
12375
+ hint 25 // paciasp
1096612376 stp x29, x30, [sp, -16]!
1096712377 mov x3, x2
12378
+ mov x29, sp
1096812379 mov w2, w1
1096912380 mov w1, w0
10970
- add x29, sp, 0
1097112381 mov w0, 0
1097212382 bl FtlRead
1097312383 ldp x29, x30, [sp], 16
12384
+ hint 29 // autiasp
1097412385 ret
1097512386 .size sftl_read, .-sftl_read
12387
+ .section .rodata.str1.1
12388
+.LC126:
12389
+ .string "FtlWrite: ecc error:%x %x %x\n"
12390
+.LC127:
12391
+ .string "FtlWrite: lpa error:%x %x\n"
12392
+ .text
1097612393 .align 2
1097712394 .global FtlWrite
1097812395 .type FtlWrite, %function
1097912396 FtlWrite:
10980
- stp x29, x30, [sp, -240]!
12397
+ hint 34 // bti c
12398
+ .section __patchable_function_entries
12399
+ .align 3
12400
+ .8byte .LPFE126
12401
+ .text
12402
+.LPFE126:
12403
+ nop
12404
+ nop
12405
+ hint 25 // paciasp
12406
+ stp x29, x30, [sp, -224]!
1098112407 and w0, w0, 255
10982
- cmp w0, 16
10983
- add x29, sp, 0
10984
- stp x23, x24, [sp, 48]
10985
- mov w23, w1
10986
- stp x25, x26, [sp, 64]
10987
- adrp x1, __stack_chk_guard
10988
- stp x27, x28, [sp, 80]
10989
- mov w26, w2
12408
+ mov x29, sp
1099012409 stp x19, x20, [sp, 16]
10991
- add x2, x1, :lo12:__stack_chk_guard
1099212410 stp x21, x22, [sp, 32]
10993
- mov x27, x3
10994
- str x1, [x29, 112]
10995
- ldr x3, [x2]
10996
- str x3, [x29, 232]
10997
- mov x3,0
10998
- bne .L1606
10999
- mov x2, x27
11000
- mov w1, w26
11001
- add w0, w23, 256
12411
+ mov w21, w1
12412
+ mrs x1, sp_el0
12413
+ stp x23, x24, [sp, 48]
12414
+ stp x25, x26, [sp, 64]
12415
+ mov x25, x3
12416
+ stp x27, x28, [sp, 80]
12417
+ str w2, [sp, 120]
12418
+ ldr x2, [x1, 1376]
12419
+ str x2, [sp, 216]
12420
+ mov x2, 0
12421
+ cmp w0, 16
12422
+ bne .L1629
12423
+ ldr w1, [sp, 120]
12424
+ mov x2, x3
12425
+ add w0, w21, 256
1100212426 bl FtlVendorPartWrite
11003
-.L1605:
11004
- ldr x1, [x29, 112]
11005
- add x1, x1, :lo12:__stack_chk_guard
11006
- ldr x2, [x29, 232]
11007
- ldr x1, [x1]
11008
- eor x1, x2, x1
11009
- cbz x1, .L1642
12427
+.L1628:
12428
+ mrs x1, sp_el0
12429
+ ldr x2, [sp, 216]
12430
+ ldr x3, [x1, 1376]
12431
+ subs x2, x2, x3
12432
+ mov x3, 0
12433
+ beq .L1666
1101012434 bl __stack_chk_fail
11011
-.L1606:
11012
- adrp x19, .LANCHOR0
11013
- add x1, x19, :lo12:.LANCHOR0
11014
- ldr w0, [x1, 344]
11015
- cmp w23, w0
11016
- bcs .L1645
11017
- cmp w26, w0
11018
- bhi .L1645
11019
- add w2, w23, w26
11020
- str w2, [x29, 124]
11021
- cmp w0, w2
11022
- bcc .L1645
11023
- adrp x2, .LANCHOR2
11024
- str x2, [x29, 152]
11025
- add x3, x2, :lo12:.LANCHOR2
11026
- ldr w0, [x2, #:lo12:.LANCHOR2]
12435
+.L1629:
12436
+ adrp x4, .LANCHOR0
12437
+ add x24, x4, :lo12:.LANCHOR0
12438
+ ldr w0, [x24, 344]
12439
+ cmp w0, w21
12440
+ bls .L1669
12441
+ ldr w1, [sp, 120]
12442
+ cmp w0, w1
12443
+ bcc .L1669
12444
+ add w1, w21, w1
12445
+ str w1, [sp, 124]
12446
+ cmp w0, w1
12447
+ bcc .L1669
12448
+ adrp x0, .LANCHOR2
12449
+ ldr w0, [x0, #:lo12:.LANCHOR2]
1102712450 cmn w0, #1
11028
- beq .L1605
12451
+ beq .L1628
1102912452 mov w0, 2048
11030
- add w2, w23, w26
11031
- str w0, [x1, 3968]
11032
- sub w2, w2, #1
11033
- ldrh w0, [x1, 262]
11034
- add x20, x1, 24
11035
- udiv w25, w23, w0
11036
- udiv w0, w2, w0
11037
- str w0, [x29, 160]
11038
- sub w0, w0, w25
11039
- add w24, w0, 1
11040
- str w0, [x29, 148]
11041
- ldr w0, [x1, 2652]
12453
+ str w0, [x24, 3960]
12454
+ ldrh w0, [x24, 262]
12455
+ sub w1, w1, #1
12456
+ add x20, x24, 24
12457
+ udiv w27, w21, w0
12458
+ udiv w0, w1, w0
12459
+ ldr w1, [sp, 120]
12460
+ str w0, [sp, 160]
12461
+ sub w0, w0, w27
12462
+ add w26, w0, 1
12463
+ str w0, [sp, 136]
12464
+ ldr w0, [x24, 2652]
12465
+ add w0, w0, w1
12466
+ str w0, [x24, 2652]
12467
+ ldr w0, [x24, 2636]
1104212468 add w0, w0, w26
11043
- str w0, [x1, 2652]
11044
- ldr w0, [x1, 2636]
11045
- add w0, w0, w24
11046
- str w0, [x1, 2636]
11047
- ldr w0, [x3, 8]
11048
- cbz w0, .L1608
11049
- ldrh w0, [x20, 4]
11050
- add x1, x1, 80
11051
- cmp w0, 0
11052
- csel x20, x1, x20, eq
11053
-.L1608:
11054
- adrp x0, .LANCHOR1
11055
- mov w21, w25
11056
- add x0, x0, :lo12:.LANCHOR1
11057
- add x0, x0, 696
11058
- str x0, [x29, 176]
11059
-.L1609:
11060
- cbnz w24, .L1637
11061
- ldr w1, [x29, 148]
11062
- add x19, x19, :lo12:.LANCHOR0
11063
- mov w0, 0
11064
- bl rk_ftl_garbage_collect
11065
- ldrh w0, [x19, 228]
11066
- cmp w0, 5
11067
- bls .L1638
11068
-.L1640:
11069
- mov w0, 0
11070
- b .L1605
11071
-.L1637:
11072
- add x0, x19, :lo12:.LANCHOR0
11073
- ldrb w1, [x20, 6]
11074
- ldrh w0, [x0, 236]
11075
- cmp w1, w0
11076
- bcc .L1610
11077
- ldr x1, [x29, 176]
11078
- adrp x0, .LC8
11079
- mov w2, 1041
11080
- add x0, x0, :lo12:.LC8
11081
- bl sftl_printk
11082
-.L1610:
11083
- ldrh w0, [x20, 4]
11084
- cbnz w0, .L1611
11085
- add x0, x19, :lo12:.LANCHOR0
11086
- add x1, x0, 24
11087
- cmp x20, x1
11088
- bne .L1612
11089
- add x0, x0, 80
11090
- ldrh w1, [x0, 4]
11091
- cbnz w1, .L1613
11092
- bl allocate_new_data_superblock
11093
- ldr x0, [x29, 152]
11094
- add x0, x0, :lo12:.LANCHOR2
11095
- str wzr, [x0, 8]
11096
-.L1613:
11097
- add x20, x19, :lo12:.LANCHOR0
11098
- add x22, x20, 24
11099
- add x20, x20, 80
11100
- mov x0, x22
11101
- bl allocate_new_data_superblock
11102
- ldr x0, [x29, 152]
12469
+ str w0, [x24, 2636]
12470
+ adrp x0, .LANCHOR2
1110312471 add x0, x0, :lo12:.LANCHOR2
1110412472 ldr w0, [x0, 8]
11105
- cmp w0, 0
11106
- csel x20, x20, x22, ne
11107
-.L1614:
11108
- ldrh w0, [x20, 4]
11109
- cbnz w0, .L1611
11110
- mov x0, x20
11111
- bl allocate_new_data_superblock
11112
-.L1611:
11113
- ldrh w0, [x20, 4]
11114
- ldrb w1, [x20, 7]
11115
- cmp w0, w24
11116
- csel w0, w0, w24, ls
11117
- lsl w1, w1, 2
11118
- cmp w0, w1
11119
- csel w0, w0, w1, ls
11120
- str w0, [x29, 144]
11121
- add x0, x19, :lo12:.LANCHOR0
12473
+ cbz w0, .L1631
12474
+ ldrh w1, [x20, 4]
12475
+ add x0, x24, 80
12476
+ cmp w1, 0
12477
+ csel x20, x0, x20, eq
12478
+.L1631:
12479
+ adrp x23, .LANCHOR1
12480
+ add x23, x23, :lo12:.LANCHOR1
12481
+ adrp x28, .LC9
12482
+ mov w19, w27
12483
+ add x23, x23, 591
12484
+ add x28, x28, :lo12:.LC9
12485
+.L1632:
12486
+ cbnz w26, .L1662
12487
+ ldr w1, [sp, 136]
12488
+ mov w0, 0
12489
+ bl rk_ftl_garbage_collect
12490
+ ldrh w0, [x24, 228]
12491
+ cmp w0, 5
12492
+ bls .L1674
12493
+.L1665:
12494
+ mov w0, 0
12495
+ b .L1628
12496
+.L1662:
1112212497 ldrb w1, [x20, 6]
11123
- ldrh w0, [x0, 236]
12498
+ ldrh w0, [x24, 236]
1112412499 cmp w1, w0
11125
- bcc .L1615
11126
- ldr x1, [x29, 176]
11127
- adrp x0, .LC8
11128
- mov w2, 1074
11129
- add x0, x0, :lo12:.LC8
12500
+ bcc .L1633
12501
+ mov x1, x23
12502
+ mov x0, x28
12503
+ mov w2, 1041
1113012504 bl sftl_printk
11131
-.L1615:
11132
- str xzr, [x29, 184]
11133
-.L1616:
11134
- ldr w1, [x29, 144]
11135
- ldr w22, [x29, 184]
11136
- cmp w22, w1
11137
- bcc .L1635
11138
- mov x22, x1
11139
-.L1617:
11140
- add x0, x19, :lo12:.LANCHOR0
11141
- mov x3, x20
11142
- mov w2, 0
11143
- mov w1, w22
11144
- ldr x0, [x0, 3448]
11145
- bl FtlProgPages
11146
- cmp w24, w22
11147
- bcs .L1636
11148
- ldr x1, [x29, 176]
11149
- adrp x0, .LC8
11150
- mov w2, 1152
11151
- add x0, x0, :lo12:.LC8
11152
- bl sftl_printk
11153
-.L1636:
11154
- sub w24, w24, w22
11155
- b .L1609
11156
-.L1612:
11157
- ldr x0, [x29, 152]
12505
+.L1633:
12506
+ ldrh w0, [x20, 4]
12507
+ cbnz w0, .L1634
12508
+ add x0, x24, 24
12509
+ cmp x20, x0
12510
+ bne .L1635
12511
+ ldrh w1, [x24, 84]
12512
+ add x0, x24, 80
12513
+ cbnz w1, .L1636
12514
+ bl allocate_new_data_superblock
12515
+ adrp x0, .LANCHOR2
1115812516 add x0, x0, :lo12:.LANCHOR2
1115912517 str wzr, [x0, 8]
11160
- ldrh w0, [x1, 4]
11161
- cbnz w0, .L1650
12518
+.L1636:
12519
+ add x0, x24, 24
12520
+ bl allocate_new_data_superblock
12521
+ adrp x0, .LANCHOR2
12522
+ add x0, x0, :lo12:.LANCHOR2
12523
+ ldr w0, [x0, 8]
12524
+ cbnz w0, .L1673
12525
+.L1638:
12526
+ add x20, x24, 24
12527
+.L1637:
12528
+ ldrh w0, [x20, 4]
12529
+ cbnz w0, .L1634
1116212530 mov x0, x20
1116312531 bl allocate_new_data_superblock
11164
- b .L1614
11165
-.L1650:
11166
- mov x20, x1
11167
- b .L1611
11168
-.L1635:
12532
+.L1634:
1116912533 ldrh w0, [x20, 4]
11170
- cbz w0, .L1617
11171
- add x1, x29, 196
12534
+ ldrb w1, [x20, 7]
12535
+ cmp w0, w26
12536
+ csel w0, w0, w26, ls
12537
+ lsl w1, w1, 2
12538
+ cmp w1, w0
12539
+ csel w0, w1, w0, ls
12540
+ ldrb w1, [x20, 6]
12541
+ str w0, [sp, 140]
12542
+ ldrh w0, [x24, 236]
12543
+ cmp w1, w0
12544
+ bcc .L1639
12545
+ mov x1, x23
12546
+ mov x0, x28
12547
+ mov w2, 1074
12548
+ bl sftl_printk
12549
+.L1639:
12550
+ ldr w0, [sp, 140]
12551
+ str xzr, [sp, 104]
12552
+ add w0, w0, w19
12553
+ str w0, [sp, 164]
12554
+ adrp x0, .LC127
12555
+ add x0, x0, :lo12:.LC127
12556
+ str x0, [sp, 168]
12557
+.L1640:
12558
+ ldr w0, [sp, 164]
12559
+ ldr w22, [sp, 104]
12560
+ cmp w19, w0
12561
+ bne .L1660
12562
+ ldr w22, [sp, 140]
12563
+.L1641:
12564
+ ldr x0, [x24, 3440]
12565
+ mov x3, x20
12566
+ mov w1, w22
1117212567 mov w2, 0
11173
- mov w0, w21
12568
+ bl FtlProgPages
12569
+ cmp w26, w22
12570
+ bcs .L1661
12571
+ mov x1, x23
12572
+ mov x0, x28
12573
+ mov w2, 1152
12574
+ bl sftl_printk
12575
+.L1661:
12576
+ sub w26, w26, w22
12577
+ b .L1632
12578
+.L1635:
12579
+ adrp x1, .LANCHOR2
12580
+ add x1, x1, :lo12:.LANCHOR2
12581
+ ldrh w0, [x0, 4]
12582
+ str wzr, [x1, 8]
12583
+ cbnz w0, .L1638
12584
+ mov x0, x20
12585
+ bl allocate_new_data_superblock
12586
+ b .L1637
12587
+.L1673:
12588
+ add x20, x24, 80
12589
+ b .L1637
12590
+.L1660:
12591
+ ldrh w0, [x20, 4]
12592
+ cbz w0, .L1641
12593
+ add x1, sp, 180
12594
+ mov w2, 0
12595
+ mov w0, w19
1117412596 bl log2phys
1117512597 mov x0, x20
1117612598 bl get_new_active_ppa
11177
- add x3, x19, :lo12:.LANCHOR0
11178
- ldr x1, [x29, 184]
11179
- str x3, [x29, 168]
11180
- lsl x28, x1, 5
11181
- ldr x1, [x3, 3448]
11182
- ldrh w2, [x3, 316]
11183
- add x1, x1, x28
12599
+ ldr x1, [sp, 104]
12600
+ ldr x2, [sp, 104]
12601
+ lsl x1, x1, 5
12602
+ str x1, [sp, 112]
12603
+ ldr x1, [x24, 3440]
12604
+ add x1, x1, x2, lsl 5
12605
+ ldrh w2, [x24, 316]
1118412606 str w0, [x1, 4]
11185
- mul w22, w22, w2
11186
- ldr x0, [x3, 3448]
12607
+ ldr x1, [sp, 104]
12608
+ mul w22, w2, w22
12609
+ ldr x0, [x24, 3440]
12610
+ add x0, x0, x1, lsl 5
1118712611 and x1, x22, 4294967292
11188
- str x1, [x29, 136]
11189
- add x0, x0, x28
11190
- ldr x1, [x3, 3528]
11191
- ldr x3, [x29, 136]
11192
- str x1, [x29, 128]
12612
+ str x1, [sp, 144]
12613
+ ldr x1, [x24, 3520]
12614
+ str w19, [x0, 24]
12615
+ ldr x3, [sp, 144]
12616
+ str x1, [sp, 152]
1119312617 add x22, x1, x3
11194
- str w21, [x0, 24]
1119512618 str x22, [x0, 16]
1119612619 mov w1, 0
1119712620 mov x0, x22
1119812621 bl ftl_memset
11199
- ldr w0, [x29, 160]
11200
- cmp w21, w25
11201
- ldr x3, [x29, 168]
11202
- ccmp w21, w0, 4, ne
11203
- bne .L1618
11204
- cmp w21, w25
11205
- bne .L1619
11206
- ldrh w2, [x3, 262]
11207
- udiv w0, w23, w2
11208
- msub w0, w0, w2, w23
11209
- str w0, [x29, 164]
11210
- sub w2, w2, w0
11211
- cmp w2, w26
11212
- csel w0, w2, w26, ls
11213
- str w0, [x29, 168]
11214
-.L1620:
11215
- add x0, x19, :lo12:.LANCHOR0
11216
- ldr w2, [x29, 168]
11217
- ldrh w1, [x0, 262]
11218
- cmp w2, w1
11219
- bne .L1621
11220
- ldr x0, [x0, 3448]
11221
- cmp w21, w25
11222
- add x4, x0, x28
11223
- bne .L1622
11224
- str x27, [x4, 8]
11225
-.L1623:
11226
- add x0, x19, :lo12:.LANCHOR0
11227
- ldrb w1, [x20, 6]
11228
- ldrh w0, [x0, 236]
12622
+ ldr w0, [sp, 160]
12623
+ cmp w19, w27
12624
+ ldrh w1, [x24, 262]
12625
+ ccmp w19, w0, 4, ne
12626
+ bne .L1642
12627
+ cmp w19, w27
12628
+ bne .L1643
12629
+ udiv w0, w21, w1
12630
+ msub w0, w0, w1, w21
12631
+ str w0, [sp, 128]
12632
+ sub w2, w1, w0
12633
+ ldr w0, [sp, 120]
12634
+ cmp w2, w0
12635
+ csel w0, w2, w0, ls
12636
+ str w0, [sp, 132]
12637
+.L1644:
12638
+ ldr x0, [sp, 112]
12639
+ ldr x3, [x24, 3440]
12640
+ add x3, x3, x0
12641
+ ldr w0, [sp, 132]
1122912642 cmp w1, w0
11230
- bcc .L1632
11231
- ldr x1, [x29, 176]
11232
- adrp x0, .LC8
12643
+ bne .L1645
12644
+ mul w0, w1, w19
12645
+ cmp w19, w27
12646
+ sub w0, w0, w21
12647
+ lsl w0, w0, 9
12648
+ add x0, x25, x0
12649
+ csel x0, x25, x0, eq
12650
+ str x0, [x3, 8]
12651
+.L1647:
12652
+ ldrb w1, [x20, 6]
12653
+ ldrh w0, [x24, 236]
12654
+ cmp w1, w0
12655
+ bcc .L1657
12656
+ mov x1, x23
12657
+ mov x0, x28
1123312658 mov w2, 1143
11234
- add x0, x0, :lo12:.LC8
1123512659 bl sftl_printk
11236
-.L1632:
11237
- ldp x1, x2, [x29, 128]
12660
+.L1657:
12661
+ ldp x2, x1, [sp, 144]
1123812662 mov w0, -3947
1123912663 strh w0, [x1, x2]
11240
- add x1, x19, :lo12:.LANCHOR0
11241
- ldr w0, [x1, 2664]
11242
- stp w0, w21, [x22, 4]
11243
- add w21, w21, 1
11244
- add w0, w0, 1
11245
- cmn w0, #1
11246
- csel w0, w0, wzr, ne
11247
- str w0, [x1, 2664]
11248
- ldr w0, [x29, 196]
12664
+ ldr w0, [x24, 2664]
12665
+ stp w0, w19, [x22, 4]
12666
+ add w19, w19, 1
12667
+ cmn w0, #2
12668
+ csinc w0, wzr, w0, eq
12669
+ str w0, [x24, 2664]
12670
+ ldr w0, [sp, 180]
1124912671 str w0, [x22, 12]
1125012672 ldrh w0, [x20]
1125112673 strh w0, [x22, 2]
11252
- ldr x0, [x29, 184]
12674
+ ldr x0, [sp, 104]
1125312675 add x0, x0, 1
11254
- str x0, [x29, 184]
11255
- b .L1616
11256
-.L1619:
11257
- ldr w0, [x29, 124]
11258
- ldrh w2, [x3, 262]
11259
- msub w2, w21, w2, w0
12676
+ str x0, [sp, 104]
12677
+ b .L1640
12678
+.L1643:
12679
+ ldr w0, [sp, 124]
12680
+ msub w2, w1, w19, w0
1126012681 and w0, w2, 65535
11261
- stp wzr, w0, [x29, 164]
11262
- b .L1620
11263
-.L1622:
11264
- ldr w0, [x29, 168]
11265
-.L1657:
11266
- mul w0, w0, w21
11267
- sub w0, w0, w23
11268
- lsl w0, w0, 9
11269
- add x0, x27, x0
11270
- str x0, [x4, 8]
11271
- b .L1623
11272
-.L1621:
11273
- ldr x1, [x0, 3448]
11274
- cmp w21, w25
11275
- add x1, x1, x28
11276
- bne .L1624
11277
- ldr x0, [x0, 3480]
11278
-.L1656:
11279
- str x0, [x1, 8]
11280
- ldr w0, [x29, 196]
12682
+ stp wzr, w0, [sp, 128]
12683
+ b .L1644
12684
+.L1645:
12685
+ cmp w19, w27
12686
+ bne .L1648
12687
+ ldr x0, [x24, 3472]
12688
+.L1680:
12689
+ str x0, [x3, 8]
12690
+ ldr w0, [sp, 180]
1128112691 cmn w0, #1
11282
- beq .L1626
11283
- add x5, x19, :lo12:.LANCHOR0
11284
- str w0, [x29, 204]
11285
- str w21, [x29, 224]
12692
+ beq .L1650
12693
+ str w19, [sp, 208]
1128612694 mov w2, 0
11287
- str x5, [x29, 104]
11288
- ldr x0, [x5, 3448]
11289
- add x0, x0, x28
11290
- ldp x1, x0, [x0, 8]
11291
- stp x1, x0, [x29, 208]
12695
+ str w0, [sp, 188]
1129212696 mov w1, 1
11293
- add x0, x29, 200
12697
+ ldr x0, [x3, 8]
12698
+ str x0, [sp, 192]
12699
+ ldr x0, [x3, 16]
12700
+ str x0, [sp, 200]
12701
+ add x0, sp, 184
1129412702 bl FlashReadPages
11295
- ldr w3, [x29, 200]
11296
- ldr x5, [x29, 104]
12703
+ ldr w3, [sp, 184]
1129712704 cmn w3, #1
11298
- bne .L1627
11299
- ldr w0, [x5, 2784]
11300
- mov w2, w21
12705
+ bne .L1651
12706
+ ldr w0, [x24, 2784]
12707
+ mov w2, w19
1130112708 add w0, w0, 1
11302
- str w0, [x5, 2784]
11303
- adrp x0, .LC125
11304
- add x0, x0, :lo12:.LC125
11305
- ldr w1, [x22, 8]
11306
- bl sftl_printk
11307
-.L1630:
11308
- ldr w0, [x29, 168]
11309
- cmp w21, w25
11310
- lsl w2, w0, 9
11311
- add x0, x19, :lo12:.LANCHOR0
11312
- bne .L1631
11313
- ldr x0, [x0, 3448]
11314
- mov x1, x27
11315
- add x4, x0, x28
11316
- ldr w0, [x29, 164]
11317
- ldr x3, [x4, 8]
11318
- lsl w0, w0, 9
11319
- add x0, x3, x0
11320
-.L1658:
11321
- bl ftl_memcpy
11322
- b .L1623
11323
-.L1624:
11324
- ldr x0, [x0, 3488]
11325
- b .L1656
11326
-.L1627:
11327
- ldr w0, [x22, 8]
11328
- cmp w21, w0
11329
- beq .L1629
11330
- ldr w0, [x5, 2784]
11331
- mov w2, w21
11332
- add w0, w0, 1
11333
- str w0, [x5, 2784]
12709
+ str w0, [x24, 2784]
1133412710 adrp x0, .LC126
1133512711 add x0, x0, :lo12:.LC126
1133612712 ldr w1, [x22, 8]
1133712713 bl sftl_printk
11338
-.L1629:
12714
+.L1655:
12715
+ ldr w0, [sp, 132]
12716
+ cmp w19, w27
12717
+ lsl w2, w0, 9
12718
+ bne .L1656
12719
+ ldr x0, [sp, 112]
12720
+ ldr x1, [x24, 3440]
12721
+ add x1, x1, x0
12722
+ ldr w0, [sp, 128]
12723
+ ldr x3, [x1, 8]
12724
+ lsl w0, w0, 9
12725
+ mov x1, x25
12726
+ add x0, x3, x0
12727
+.L1681:
12728
+ bl ftl_memcpy
12729
+ b .L1647
12730
+.L1648:
12731
+ ldr x0, [x24, 3480]
12732
+ b .L1680
12733
+.L1651:
1133912734 ldr w0, [x22, 8]
11340
- cmp w21, w0
11341
- beq .L1630
11342
- ldr x1, [x29, 176]
11343
- mov w2, 1128
11344
- adrp x0, .LC8
11345
- add x0, x0, :lo12:.LC8
12735
+ cmp w0, w19
12736
+ beq .L1655
12737
+ ldr w0, [x24, 2784]
12738
+ mov w2, w19
12739
+ add w0, w0, 1
12740
+ str w0, [x24, 2784]
12741
+ ldr x0, [sp, 168]
12742
+ ldr w1, [x22, 8]
1134612743 bl sftl_printk
11347
- b .L1630
11348
-.L1626:
11349
- add x1, x19, :lo12:.LANCHOR0
11350
- ldr x0, [x1, 3448]
11351
- ldrh w2, [x1, 314]
12744
+ ldr w0, [x22, 8]
12745
+ cmp w0, w19
12746
+ beq .L1655
12747
+ mov x1, x23
12748
+ mov x0, x28
12749
+ mov w2, 1128
12750
+ bl sftl_printk
12751
+ b .L1655
12752
+.L1650:
12753
+ ldrh w2, [x24, 314]
1135212754 mov w1, 0
11353
- add x0, x0, x28
11354
- ldr x0, [x0, 8]
12755
+ ldr x0, [x3, 8]
1135512756 bl ftl_memset
11356
- b .L1630
11357
-.L1631:
11358
- ldrh w1, [x0, 262]
11359
- ldr x0, [x0, 3448]
11360
- add x4, x0, x28
11361
- mul w1, w1, w21
11362
- sub w1, w1, w23
11363
- ldr x0, [x4, 8]
12757
+ b .L1655
12758
+.L1656:
12759
+ ldrh w1, [x24, 262]
12760
+ ldr x3, [sp, 112]
12761
+ ldr x0, [x24, 3440]
12762
+ mul w1, w1, w19
12763
+ add x0, x0, x3
12764
+ sub w1, w1, w21
1136412765 lsl w1, w1, 9
11365
- add x1, x27, x1
11366
- b .L1658
11367
-.L1618:
11368
- ldr x0, [x3, 3448]
11369
- add x4, x0, x28
11370
- ldrh w0, [x3, 262]
11371
- b .L1657
11372
-.L1638:
11373
- mov w20, 256
12766
+ add x1, x25, x1
12767
+ ldr x0, [x0, 8]
12768
+ b .L1681
12769
+.L1642:
12770
+ ldr x2, [sp, 112]
12771
+ mul w1, w1, w19
12772
+ ldr x0, [x24, 3440]
12773
+ sub w1, w1, w21
12774
+ add x0, x0, x2
12775
+ lsl w1, w1, 9
12776
+ add x1, x25, x1
12777
+ str x1, [x0, 8]
12778
+ b .L1647
12779
+.L1674:
12780
+ mov w19, 256
1137412781 mov w21, 65535
11375
- mov w22, 128
11376
-.L1641:
11377
- ldrh w0, [x19, 176]
11378
- cmp w0, w21
11379
- bne .L1639
11380
- ldrh w0, [x19, 226]
11381
- cmp w0, w21
11382
- bne .L1639
12782
+ mov w20, 128
12783
+.L1663:
12784
+ ldrh w0, [x24, 176]
12785
+ ldrh w1, [x24, 226]
12786
+ and w0, w0, w1
12787
+ cmp w21, w0, uxth
12788
+ bne .L1664
1138312789 mov w0, 0
1138412790 bl List_get_gc_head_node
1138512791 bl FtlGcRefreshBlock
11386
-.L1639:
12792
+.L1664:
1138712793 mov w1, 1
11388
- strh w22, [x19, 3226]
1138912794 mov w0, w1
11390
- strh w22, [x19, 3224]
12795
+ strh w20, [x24, 3224]
12796
+ strh w20, [x24, 3226]
1139112797 bl rk_ftl_garbage_collect
1139212798 mov w1, 1
1139312799 mov w0, 0
1139412800 bl rk_ftl_garbage_collect
11395
- ldrh w0, [x19, 228]
12801
+ ldrh w0, [x24, 228]
1139612802 cmp w0, 2
11397
- bhi .L1640
11398
- subs w20, w20, #1
11399
- bne .L1641
11400
- b .L1640
11401
-.L1645:
12803
+ bhi .L1665
12804
+ subs w19, w19, #1
12805
+ bne .L1663
12806
+ b .L1665
12807
+.L1669:
1140212808 mov w0, -1
11403
- b .L1605
11404
-.L1642:
12809
+ b .L1628
12810
+.L1666:
1140512811 ldp x19, x20, [sp, 16]
1140612812 ldp x21, x22, [sp, 32]
1140712813 ldp x23, x24, [sp, 48]
1140812814 ldp x25, x26, [sp, 64]
1140912815 ldp x27, x28, [sp, 80]
11410
- ldp x29, x30, [sp], 240
12816
+ ldp x29, x30, [sp], 224
12817
+ hint 29 // autiasp
1141112818 ret
1141212819 .size FtlWrite, .-FtlWrite
1141312820 .align 2
1141412821 .global sftl_gc
1141512822 .type sftl_gc, %function
1141612823 sftl_gc:
12824
+ hint 34 // bti c
12825
+ .section __patchable_function_entries
12826
+ .align 3
12827
+ .8byte .LPFE127
12828
+ .text
12829
+.LPFE127:
12830
+ nop
12831
+ nop
12832
+ hint 25 // paciasp
1141712833 stp x29, x30, [sp, -16]!
1141812834 mov w1, 1
12835
+ mov x29, sp
1141912836 mov w0, w1
11420
- add x29, sp, 0
1142112837 bl rk_ftl_garbage_collect
1142212838 ldp x29, x30, [sp], 16
12839
+ hint 29 // autiasp
1142312840 ret
1142412841 .size sftl_gc, .-sftl_gc
12842
+ .section .rodata.str1.1
12843
+.LC128:
12844
+ .string "%s hash error this.id =%x page =%x pre_id =%x hash =%x hash_r =%x\n"
12845
+ .text
1142512846 .align 2
1142612847 .global FtlLoadSysInfo
1142712848 .type FtlLoadSysInfo, %function
1142812849 FtlLoadSysInfo:
12850
+ hint 34 // bti c
12851
+ .section __patchable_function_entries
12852
+ .align 3
12853
+ .8byte .LPFE128
12854
+ .text
12855
+.LPFE128:
12856
+ nop
12857
+ nop
12858
+ hint 25 // paciasp
1142912859 stp x29, x30, [sp, -80]!
1143012860 mov w1, 0
11431
- add x29, sp, 0
11432
- stp x21, x22, [sp, 32]
11433
- adrp x22, .LANCHOR0
11434
- add x21, x22, :lo12:.LANCHOR0
12861
+ mov x29, sp
1143512862 stp x19, x20, [sp, 16]
11436
- add x20, x21, 3720
12863
+ adrp x19, .LANCHOR0
12864
+ add x19, x19, :lo12:.LANCHOR0
12865
+ stp x25, x26, [sp, 64]
12866
+ add x25, x19, 3712
12867
+ stp x21, x22, [sp, 32]
12868
+ ldrh w2, [x19, 244]
1143712869 stp x23, x24, [sp, 48]
11438
- str x25, [sp, 64]
11439
- ldr x0, [x21, 3456]
11440
- str x0, [x20, 8]
11441
- ldr x0, [x21, 3520]
11442
- str x0, [x20, 16]
11443
- ldr x0, [x21, 72]
11444
- ldrh w2, [x21, 244]
12870
+ ldr x0, [x19, 3448]
12871
+ str x0, [x25, 8]
12872
+ ldr x0, [x19, 3512]
12873
+ str x0, [x25, 16]
12874
+ ldr x0, [x19, 72]
1144512875 lsl w2, w2, 1
1144612876 bl ftl_memset
11447
- ldrh w0, [x21, 2696]
12877
+ ldrh w0, [x19, 2696]
1144812878 mov w1, 65535
1144912879 cmp w0, w1
11450
- bne .L1662
11451
-.L1673:
12880
+ bne .L1685
12881
+.L1697:
1145212882 mov w0, -1
11453
-.L1661:
12883
+.L1684:
1145412884 ldp x19, x20, [sp, 16]
1145512885 ldp x21, x22, [sp, 32]
1145612886 ldp x23, x24, [sp, 48]
11457
- ldr x25, [sp, 64]
12887
+ ldp x25, x26, [sp, 64]
1145812888 ldp x29, x30, [sp], 80
12889
+ hint 29 // autiasp
1145912890 ret
11460
-.L1662:
11461
- add x23, x21, 2696
12891
+.L1685:
12892
+ add x21, x19, 2560
1146212893 mov w1, 1
1146312894 bl FtlGetLastWrittenPage
11464
- sxth w19, w0
11465
- adrp x1, .LANCHOR1
11466
- add w0, w0, 1
11467
- add x1, x1, :lo12:.LANCHOR1
11468
- strh w0, [x23, 2]
11469
- ldrsh w23, [x21, 2696]
11470
- add x24, x1, 712
11471
-.L1664:
11472
- tbz w19, #31, .L1670
12895
+ sxth w20, w0
12896
+ add w0, w20, 1
12897
+ mov w24, 19539
12898
+ ldrsh w22, [x21, 136]
12899
+ movk w24, 0x4654, lsl 16
12900
+ strh w0, [x21, 138]
12901
+ adrp x21, .LANCHOR1
12902
+ add x21, x21, :lo12:.LANCHOR1
12903
+ add x21, x21, 600
12904
+.L1687:
12905
+ tbz w20, #31, .L1694
1147312906 adrp x1, .LANCHOR1
1147412907 add x1, x1, :lo12:.LANCHOR1
12908
+ add x1, x1, 600
1147512909 mov w2, 1474
11476
- add x1, x1, 712
11477
- adrp x0, .LC8
11478
- add x0, x0, :lo12:.LC8
12910
+ adrp x0, .LC9
12911
+ add x0, x0, :lo12:.LC9
1147912912 bl sftl_printk
11480
- b .L1669
11481
-.L1670:
11482
- orr w0, w19, w23, lsl 10
11483
- str w0, [x20, 4]
11484
- ldr x0, [x21, 3456]
12913
+ b .L1693
12914
+.L1694:
12915
+ orr w0, w20, w22, lsl 10
12916
+ str w0, [x25, 4]
12917
+ ldr x0, [x19, 3448]
1148512918 mov w2, 1
11486
- str x0, [x20, 8]
1148712919 mov w1, w2
11488
- mov x0, x20
12920
+ str x0, [x25, 8]
12921
+ mov x0, x25
1148912922 bl FlashReadPages
11490
- ldr x0, [x20, 16]
11491
- ldr w7, [x0, 12]
11492
- cbz w7, .L1665
11493
- ldr w0, [x20]
12923
+ ldr x0, [x25, 16]
12924
+ ldr w23, [x0, 12]
12925
+ ldr w0, [x25]
1149412926 cmn w0, #1
11495
- beq .L1665
11496
- ldrh w1, [x21, 314]
11497
- ldr x0, [x20, 8]
12927
+ cbz w23, .L1688
12928
+ beq .L1689
12929
+ ldrh w1, [x19, 314]
12930
+ ldr x0, [x25, 8]
1149812931 bl js_hash
11499
- cmp w7, w0
11500
- beq .L1665
11501
- ldrh w4, [x21, 2700]
1150212932 mov w6, w0
11503
- mov w5, w7
11504
- adrp x0, .LC127
11505
- mov w3, w19
11506
- mov w2, w23
11507
- mov x1, x24
11508
- add x0, x0, :lo12:.LC127
11509
- bl sftl_printk
11510
- cbnz w19, .L1666
11511
- ldrh w0, [x21, 2700]
1151212933 cmp w23, w0
11513
- beq .L1666
11514
- ldrh w19, [x21, 308]
11515
- sxth w23, w0
11516
-.L1668:
11517
- sub w19, w19, #1
11518
- sxth w19, w19
11519
- b .L1664
11520
-.L1666:
12934
+ beq .L1690
12935
+ ldrh w4, [x19, 2700]
12936
+ adrp x0, .LC128
12937
+ mov w5, w23
12938
+ mov w3, w20
12939
+ mov w2, w22
12940
+ mov x1, x21
12941
+ add x0, x0, :lo12:.LC128
12942
+ bl sftl_printk
12943
+ cbnz w20, .L1691
12944
+ ldrh w0, [x19, 2700]
12945
+ cmp w22, w0
12946
+ beq .L1691
12947
+ ldrh w20, [x19, 308]
12948
+ sxth w22, w0
12949
+.L1689:
12950
+ sub w20, w20, #1
12951
+ sxth w20, w20
12952
+ b .L1687
12953
+.L1691:
1152112954 mov w0, -1
11522
- str w0, [x20]
11523
-.L1665:
11524
- ldr w0, [x20]
11525
- cmn w0, #1
11526
- beq .L1668
11527
- ldr x0, [x21, 3456]
11528
- ldr w1, [x0]
11529
- mov w0, 19539
11530
- movk w0, 0x4654, lsl 16
11531
- cmp w1, w0
11532
- bne .L1668
11533
- ldr x0, [x21, 3520]
12955
+ str w0, [x25]
12956
+ b .L1689
12957
+.L1688:
12958
+ beq .L1689
12959
+.L1690:
12960
+ ldr x0, [x19, 3448]
12961
+ ldr w0, [x0]
12962
+ cmp w0, w24
12963
+ bne .L1689
12964
+ ldr x0, [x19, 3512]
1153412965 ldrh w1, [x0]
1153512966 mov w0, 61604
1153612967 cmp w1, w0
11537
- bne .L1668
11538
-.L1669:
11539
- add x1, x22, :lo12:.LANCHOR0
11540
- ldrh w0, [x1, 244]
11541
- ldrh w1, [x1, 314]
12968
+ bne .L1689
12969
+.L1693:
12970
+ ldrh w0, [x19, 244]
12971
+ ldrh w1, [x19, 314]
1154212972 add x0, x0, 24
1154312973 cmp x1, x0, lsl 1
11544
- bcs .L1672
12974
+ bcs .L1696
1154512975 adrp x1, .LANCHOR1
1154612976 add x1, x1, :lo12:.LANCHOR1
11547
- adrp x0, .LC8
12977
+ adrp x0, .LC9
12978
+ add x1, x1, 600
12979
+ add x0, x0, :lo12:.LC9
1154812980 mov w2, 1476
11549
- add x1, x1, 712
11550
- add x0, x0, :lo12:.LC8
1155112981 bl sftl_printk
11552
-.L1672:
11553
- add x19, x22, :lo12:.LANCHOR0
12982
+.L1696:
12983
+ ldr x1, [x19, 3720]
12984
+ add x21, x19, 2512
1155412985 mov w2, 48
11555
- add x20, x19, 2512
11556
- mov x0, x20
11557
- ldr x1, [x19, 3728]
12986
+ mov x0, x21
1155812987 bl ftl_memcpy
1155912988 ldr x0, [x19, 72]
1156012989 ldrh w2, [x19, 244]
11561
- ldr x1, [x19, 3728]
12990
+ ldr x1, [x19, 3720]
1156212991 lsl w2, w2, 1
1156312992 add x1, x1, 48
1156412993 bl ftl_memcpy
....@@ -11566,213 +12995,213 @@
1156612995 mov w0, 19539
1156712996 movk w0, 0x4654, lsl 16
1156812997 cmp w1, w0
11569
- bne .L1673
12998
+ bne .L1697
1157012999 ldrh w1, [x19, 2520]
1157113000 ldrb w2, [x19, 2522]
1157213001 ldrh w0, [x19, 258]
1157313002 strh w1, [x19, 2702]
1157413003 cmp w2, w0
11575
- bne .L1673
13004
+ bne .L1697
1157613005 ldrh w0, [x19, 306]
1157713006 ldrh w2, [x19, 262]
1157813007 ldrh w3, [x19, 236]
11579
- str w1, [x19, 3972]
13008
+ str w1, [x19, 3964]
1158013009 mul w0, w0, w1
1158113010 str w0, [x19, 2624]
1158213011 mul w0, w2, w0
1158313012 ldr w2, [x19, 248]
1158413013 str w0, [x19, 344]
1158513014 ldrh w0, [x19, 366]
11586
- cmp w1, w2
13015
+ add w0, w0, w1
1158713016 sub w0, w2, w0
11588
- sub w0, w0, w1
1158913017 udiv w0, w0, w3
1159013018 strh w0, [x19, 2692]
11591
- bls .L1674
13019
+ cmp w1, w2
13020
+ bls .L1698
1159213021 adrp x1, .LANCHOR1
1159313022 add x1, x1, :lo12:.LANCHOR1
11594
- adrp x0, .LC8
13023
+ adrp x0, .LC9
13024
+ add x1, x1, 600
13025
+ add x0, x0, :lo12:.LC9
1159513026 mov w2, 1498
11596
- add x1, x1, 712
11597
- add x0, x0, :lo12:.LC8
1159813027 bl sftl_printk
11599
-.L1674:
11600
- add x0, x22, :lo12:.LANCHOR0
11601
- mov w3, -1
11602
- ldrh w2, [x0, 2528]
11603
- ldrh w4, [x0, 2526]
11604
- strh w4, [x0, 24]
11605
- lsr w5, w2, 6
13028
+.L1698:
13029
+ ldrh w2, [x19, 2528]
13030
+ add x0, x19, 2660
13031
+ ldr w1, [x19, 2544]
13032
+ ldrh w3, [x19, 2526]
13033
+ lsr w4, w2, 6
1160613034 and w2, w2, 63
11607
- strb w2, [x0, 30]
11608
- ldrb w2, [x0, 2523]
11609
- strb w2, [x0, 32]
11610
- ldrh w2, [x0, 2530]
11611
- strh w2, [x0, 80]
11612
- ldrh w2, [x0, 2532]
11613
- strh w5, [x0, 26]
11614
- strh w3, [x0, 176]
11615
- lsr w5, w2, 6
13035
+ strb w2, [x19, 30]
13036
+ ldrb w2, [x19, 2523]
13037
+ strb w2, [x19, 32]
13038
+ mov w2, 65535
13039
+ str w2, [x19, 176]
13040
+ ldrh w2, [x19, 2530]
13041
+ strh w2, [x19, 80]
13042
+ ldrh w2, [x19, 2532]
13043
+ strh w4, [x19, 26]
13044
+ stp wzr, wzr, [x0, -16]
13045
+ lsr w4, w2, 6
1161613046 and w2, w2, 63
11617
- strb w2, [x0, 86]
11618
- ldrb w2, [x0, 2524]
11619
- strb w2, [x0, 88]
11620
- ldrh w2, [x0, 2534]
11621
- strh w2, [x0, 128]
11622
- ldrh w2, [x0, 2536]
11623
- strh w5, [x0, 82]
11624
- strh wzr, [x0, 178]
11625
- lsr w5, w2, 6
13047
+ strb w2, [x19, 86]
13048
+ ldrb w2, [x19, 2524]
13049
+ strb w2, [x19, 88]
13050
+ ldrh w2, [x19, 2534]
13051
+ strh w2, [x19, 128]
13052
+ ldrh w2, [x19, 2536]
13053
+ strh w4, [x19, 82]
13054
+ stp w1, wzr, [x0, 8]
13055
+ lsr w4, w2, 6
1162613056 and w2, w2, 63
11627
- strb w2, [x0, 134]
11628
- ldrb w2, [x0, 2525]
11629
- strb w2, [x0, 136]
11630
- ldr w2, [x0, 2544]
11631
- str w2, [x0, 2668]
11632
- strb wzr, [x0, 182]
11633
- strb wzr, [x0, 184]
11634
- strh w5, [x0, 130]
11635
- str wzr, [x0, 2628]
11636
- str wzr, [x0, 2636]
11637
- str wzr, [x0, 2644]
11638
- str wzr, [x0, 2648]
11639
- str wzr, [x0, 2672]
11640
- str wzr, [x0, 2684]
11641
- ldr w1, [x0, 2552]
11642
- ldr w2, [x0, 2660]
11643
- str wzr, [x0, 2640]
11644
- cmp w1, w2
11645
- bls .L1675
11646
- str w1, [x0, 2660]
11647
-.L1675:
11648
- add x0, x22, :lo12:.LANCHOR0
11649
- ldr w1, [x0, 2548]
11650
- ldr w2, [x0, 2664]
11651
- cmp w1, w2
11652
- bls .L1676
11653
- str w1, [x0, 2664]
11654
-.L1676:
13057
+ strb w2, [x19, 134]
13058
+ ldrb w2, [x19, 2525]
13059
+ strh w3, [x19, 24]
13060
+ strh w4, [x19, 130]
13061
+ strb w2, [x19, 136]
13062
+ strb wzr, [x19, 182]
13063
+ strb wzr, [x19, 184]
13064
+ str wzr, [x19, 2628]
13065
+ str wzr, [x19, 2636]
13066
+ str wzr, [x19, 2684]
13067
+ str wzr, [x19, 2640]
13068
+ ldr w0, [x19, 2552]
13069
+ ldr w1, [x19, 2660]
13070
+ cmp w0, w1
13071
+ bls .L1699
13072
+ str w0, [x19, 2660]
13073
+.L1699:
13074
+ ldr w0, [x19, 2548]
13075
+ ldr w1, [x19, 2664]
13076
+ cmp w0, w1
13077
+ bls .L1700
13078
+ str w0, [x19, 2664]
13079
+.L1700:
1165513080 mov w0, 65535
11656
- cmp w4, w0
11657
- beq .L1677
11658
- add x0, x22, :lo12:.LANCHOR0
11659
- add x0, x0, 24
13081
+ cmp w3, w0
13082
+ beq .L1701
13083
+ add x0, x19, 24
1166013084 bl make_superblock
11661
-.L1677:
11662
- add x1, x22, :lo12:.LANCHOR0
11663
- add x0, x1, 80
11664
- ldrh w2, [x1, 80]
13085
+.L1701:
13086
+ ldrh w2, [x19, 80]
13087
+ add x0, x19, 80
1166513088 mov w1, 65535
1166613089 cmp w2, w1
11667
- beq .L1678
13090
+ beq .L1702
1166813091 bl make_superblock
11669
-.L1678:
11670
- add x1, x22, :lo12:.LANCHOR0
11671
- add x0, x1, 128
11672
- ldrh w2, [x1, 128]
13092
+.L1702:
13093
+ ldrh w2, [x19, 128]
13094
+ add x0, x19, 128
1167313095 mov w1, 65535
1167413096 cmp w2, w1
11675
- beq .L1679
13097
+ beq .L1703
1167613098 bl make_superblock
11677
-.L1679:
11678
- add x22, x22, :lo12:.LANCHOR0
13099
+.L1703:
13100
+ ldrh w2, [x19, 176]
13101
+ add x0, x19, 176
1167913102 mov w1, 65535
11680
- add x0, x22, 176
11681
- ldrh w2, [x22, 176]
1168213103 cmp w2, w1
11683
- beq .L1680
13104
+ beq .L1704
1168413105 bl make_superblock
11685
-.L1680:
13106
+.L1704:
1168613107 mov w0, 0
11687
- b .L1661
13108
+ b .L1684
1168813109 .size FtlLoadSysInfo, .-FtlLoadSysInfo
13110
+ .section .rodata.str1.1
13111
+.LC129:
13112
+ .string "%s last blk_id =%x page =%x hash error hash =%x hash_r =%x\n"
13113
+.LC130:
13114
+ .string "%s scan blk_id =%x page =%x hash error hash =%x hash_r =%x\n"
13115
+ .text
1168913116 .align 2
1169013117 .global FtlMapTblRecovery
1169113118 .type FtlMapTblRecovery, %function
1169213119 FtlMapTblRecovery:
13120
+ hint 34 // bti c
13121
+ .section __patchable_function_entries
13122
+ .align 3
13123
+ .8byte .LPFE129
13124
+ .text
13125
+.LPFE129:
13126
+ nop
13127
+ nop
13128
+ hint 25 // paciasp
1169313129 stp x29, x30, [sp, -144]!
1169413130 mov w1, 0
11695
- add x29, sp, 0
13131
+ mov x29, sp
1169613132 stp x19, x20, [sp, 16]
1169713133 mov x19, x0
11698
- stp x21, x22, [sp, 32]
11699
- adrp x21, .LANCHOR0
11700
- stp x23, x24, [sp, 48]
1170113134 mov w20, 0
13135
+ stp x21, x22, [sp, 32]
13136
+ stp x23, x24, [sp, 48]
1170213137 stp x25, x26, [sp, 64]
1170313138 stp x27, x28, [sp, 80]
11704
- ldrh w25, [x0, 6]
11705
- ldr x23, [x0, 40]
11706
- ldr x24, [x0, 16]
11707
- ldr x0, [x0, 24]
11708
- lsl w2, w25, 2
11709
- str x0, [x29, 128]
11710
- ldrh w0, [x19, 8]
11711
- str w0, [x29, 136]
11712
- mov x0, x23
13139
+ ldrh w23, [x0, 6]
13140
+ ldr x22, [x0, 40]
13141
+ ldp x27, x28, [x0, 16]
13142
+ lsl w2, w23, 2
13143
+ ldrh w0, [x0, 8]
13144
+ str w0, [sp, 112]
13145
+ mov x0, x22
1171313146 bl ftl_memset
11714
- stp wzr, wzr, [x19, 48]
11715
- add x0, x21, :lo12:.LANCHOR0
11716
- ldr x2, [x0, 3456]
11717
- ldr x22, [x0, 3520]
11718
- str x2, [x0, 3728]
11719
- str x22, [x0, 3736]
13147
+ str xzr, [x19, 48]
13148
+ adrp x6, .LANCHOR0
13149
+ add x24, x6, :lo12:.LANCHOR0
1172013150 mov w0, -1
11721
- strh w0, [x19]
11722
- strh w0, [x19, 2]
13151
+ ldr x1, [x24, 3448]
13152
+ str x1, [x24, 3720]
13153
+ ldr x21, [x24, 3512]
13154
+ str x21, [x24, 3728]
13155
+ str w0, [x19]
1172313156 mov w0, 1
1172413157 str w0, [x19, 56]
11725
- ldr w0, [x29, 136]
13158
+ ldr w0, [sp, 112]
1172613159 sub w0, w0, #1
11727
- str w0, [x29, 116]
13160
+ str w0, [sp, 124]
1172813161 adrp x0, .LANCHOR1
1172913162 add x0, x0, :lo12:.LANCHOR1
11730
- add x0, x0, 728
11731
- str x0, [x29, 104]
11732
-.L1693:
11733
- ldr w0, [x29, 136]
13163
+ add x0, x0, 615
13164
+ str x0, [sp, 128]
13165
+.L1714:
13166
+ ldr w0, [sp, 112]
1173413167 cmp w20, w0
11735
- bge .L1712
11736
- ldr w0, [x29, 116]
11737
- sxtw x28, w20
11738
- cmp w20, w0
11739
- bne .L1694
11740
- lsl x0, x28, 1
11741
- mov w26, 0
11742
- add x1, x24, x0
11743
- str x1, [x29, 136]
13168
+ bge .L1734
13169
+ add x0, x27, w20, sxtw 1
13170
+ str x0, [sp, 104]
13171
+ ldr w0, [sp, 124]
13172
+ sxtw x26, w20
13173
+ sbfiz x1, x20, 1, 32
13174
+ cmp w0, w20
13175
+ bne .L1715
13176
+ ldr x0, [sp, 104]
1174413177 mov w1, 1
11745
- ldrh w0, [x24, x0]
11746
- adrp x24, .LANCHOR1
11747
- add x24, x24, :lo12:.LANCHOR1
11748
- add x24, x24, 728
13178
+ adrp x27, .LC129
13179
+ add x27, x27, :lo12:.LC129
13180
+ ldrh w0, [x0]
1174913181 bl FtlGetLastWrittenPage
11750
- sxth w1, w0
11751
- add w0, w0, 1
11752
- strh w0, [x19, 2]
11753
- ldr x0, [x29, 128]
13182
+ sxth w25, w0
13183
+ add w25, w25, 1
1175413184 strh w20, [x19]
11755
- str w1, [x29, 120]
11756
- ldr w0, [x0, x28, lsl 2]
11757
- add x28, x21, :lo12:.LANCHOR0
11758
- add x27, x28, 3720
13185
+ strh w25, [x19, 2]
13186
+ ldr w0, [x28, x26, lsl 2]
13187
+ adrp x26, .LANCHOR1
13188
+ add x26, x26, :lo12:.LANCHOR1
13189
+ mov w28, 0
13190
+ add x26, x26, 615
1175913191 str w0, [x19, 48]
11760
-.L1695:
11761
- ldr w0, [x29, 120]
11762
- add w0, w0, 1
11763
- cmp w26, w0
11764
- blt .L1698
11765
-.L1712:
11766
- add x21, x21, :lo12:.LANCHOR0
13192
+.L1716:
13193
+ cmp w28, w25
13194
+ blt .L1720
13195
+.L1734:
1176713196 mov x0, x19
1176813197 bl ftl_free_no_use_map_blk
1176913198 ldrh w1, [x19, 2]
11770
- ldrh w0, [x21, 308]
13199
+ ldrh w0, [x24, 308]
1177113200 cmp w1, w0
11772
- bne .L1700
13201
+ bne .L1722
1177313202 mov x0, x19
1177413203 bl ftl_map_blk_alloc_new_blk
11775
-.L1700:
13204
+.L1722:
1177613205 mov x0, x19
1177713206 bl ftl_map_blk_gc
1177813207 mov x0, x19
....@@ -11784,172 +13213,187 @@
1178413213 ldp x25, x26, [sp, 64]
1178513214 ldp x27, x28, [sp, 80]
1178613215 ldp x29, x30, [sp], 144
13216
+ hint 29 // autiasp
1178713217 ret
11788
-.L1698:
11789
- ldr x0, [x29, 136]
13218
+.L1720:
13219
+ ldr x0, [sp, 104]
13220
+ add x3, x24, 3712
1179013221 mov w2, 1
1179113222 mov w1, w2
13223
+ str x3, [sp, 112]
1179213224 ldrh w0, [x0]
11793
- orr w0, w26, w0, lsl 10
11794
- str w0, [x27, 4]
11795
- mov x0, x27
13225
+ orr w0, w28, w0, lsl 10
13226
+ str w0, [x24, 3716]
13227
+ mov x0, x3
1179613228 bl FlashReadPages
11797
- ldr x0, [x27, 16]
11798
- ldr w8, [x0, 12]
11799
- cbz w8, .L1696
11800
- ldr w0, [x27]
13229
+ ldr x3, [sp, 112]
13230
+ ldr x0, [x3, 16]
13231
+ ldr w4, [x0, 12]
13232
+ ldr w0, [x24, 3712]
13233
+ str w4, [sp, 112]
1180113234 cmn w0, #1
11802
- beq .L1696
11803
- ldrh w1, [x28, 314]
11804
- ldr x0, [x27, 8]
13235
+ cbz w4, .L1717
13236
+ beq .L1735
13237
+ ldrh w1, [x24, 314]
13238
+ ldr x0, [x3, 8]
1180513239 bl js_hash
11806
- cmp w8, w0
11807
- beq .L1696
13240
+ ldr w4, [sp, 112]
1180813241 mov w5, w0
11809
- mov w4, w8
11810
- mov w3, w26
13242
+ cmp w4, w0
13243
+ beq .L1719
13244
+ mov x0, x27
13245
+ mov w3, w28
1181113246 mov w2, w20
11812
- mov x1, x24
11813
- adrp x0, .LC128
11814
- add x0, x0, :lo12:.LC128
13247
+ mov x1, x26
1181513248 bl sftl_printk
1181613249 mov w0, -1
11817
- str w0, [x27]
11818
-.L1696:
11819
- ldr w0, [x27]
11820
- cmn w0, #1
11821
- beq .L1697
11822
- ldrh w0, [x22, 8]
11823
- cmp w25, w0
11824
- bls .L1697
11825
- ldrh w2, [x22]
13250
+ str w0, [x24, 3712]
13251
+.L1735:
13252
+ add w28, w28, 1
13253
+ sxth w28, w28
13254
+ b .L1716
13255
+.L1717:
13256
+ beq .L1735
13257
+.L1719:
13258
+ ldrh w0, [x21, 8]
13259
+ cmp w0, w23
13260
+ bcs .L1735
13261
+ ldrh w2, [x21]
1182613262 ldrh w1, [x19, 4]
1182713263 cmp w2, w1
11828
- bne .L1697
13264
+ bne .L1735
1182913265 ubfiz x0, x0, 2, 16
11830
- ldr w1, [x27, 4]
11831
- str w1, [x23, x0]
11832
-.L1697:
11833
- add w7, w26, 1
11834
- sxth w26, w7
11835
- b .L1695
11836
-.L1694:
11837
- add x26, x21, :lo12:.LANCHOR0
11838
- lsl x2, x28, 1
11839
- add x0, x26, 3720
11840
- ldr x1, [x26, 3456]
11841
- str x1, [x0, 8]
11842
- add x1, x24, x2
11843
- str x1, [x29, 120]
11844
- ldrh w1, [x24, x2]
11845
- ldrh w2, [x26, 308]
13266
+ ldr w1, [x24, 3716]
13267
+ str w1, [x22, x0]
13268
+ b .L1735
13269
+.L1715:
13270
+ add x0, x24, 3712
13271
+ ldr x2, [x24, 3448]
13272
+ str x2, [x0, 8]
13273
+ ldrh w2, [x24, 308]
13274
+ ldrh w1, [x27, x1]
1184613275 sub w2, w2, #1
1184713276 orr w1, w2, w1, lsl 10
1184813277 mov w2, 1
1184913278 str w1, [x0, 4]
1185013279 mov w1, w2
1185113280 bl FlashReadPages
11852
- ldr w0, [x26, 3720]
13281
+ ldr w0, [x24, 3712]
1185313282 cmn w0, #1
11854
- beq .L1714
11855
- ldrh w1, [x22]
13283
+ beq .L1738
13284
+ ldrh w1, [x21]
1185613285 ldrh w0, [x19, 4]
1185713286 cmp w1, w0
11858
- bne .L1714
11859
- ldrh w1, [x22, 8]
13287
+ bne .L1738
13288
+ ldrh w1, [x21, 8]
1186013289 mov w0, 64245
1186113290 cmp w1, w0
11862
- beq .L1702
11863
-.L1714:
11864
- add x26, x21, :lo12:.LANCHOR0
11865
- mov w27, 0
11866
- add x28, x26, 3720
11867
-.L1703:
11868
- ldrh w0, [x26, 308]
11869
- cmp w27, w0
11870
- bge .L1710
11871
- ldr x0, [x29, 120]
11872
- mov w2, 1
11873
- mov w1, w2
11874
- ldrh w0, [x0]
11875
- orr w0, w27, w0, lsl 10
11876
- str w0, [x28, 4]
11877
- mov x0, x28
11878
- bl FlashReadPages
11879
- ldr x0, [x28, 16]
11880
- ldr w7, [x0, 12]
11881
- cbz w7, .L1707
11882
- ldr w0, [x28]
11883
- cmn w0, #1
11884
- beq .L1707
11885
- ldrh w1, [x26, 314]
11886
- ldr x0, [x28, 8]
11887
- bl js_hash
11888
- cmp w7, w0
11889
- beq .L1707
11890
- ldr x1, [x29, 104]
11891
- mov w5, w0
11892
- mov w4, w7
11893
- mov w3, w27
11894
- mov w2, w20
11895
- adrp x0, .LC129
11896
- add x0, x0, :lo12:.LC129
11897
- bl sftl_printk
11898
- mov w0, -1
11899
- str w0, [x28]
11900
-.L1707:
11901
- ldr w0, [x28]
11902
- cmn w0, #1
11903
- beq .L1708
11904
- ldrh w0, [x22, 8]
11905
- cmp w25, w0
11906
- bls .L1708
11907
- ldrh w2, [x22]
11908
- ldrh w1, [x19, 4]
11909
- cmp w2, w1
11910
- bne .L1708
11911
- ubfiz x0, x0, 2, 16
11912
- ldr w1, [x28, 4]
11913
- str w1, [x23, x0]
11914
-.L1708:
11915
- add w6, w27, 1
11916
- sxth w27, w6
11917
- b .L1703
11918
-.L1702:
11919
- mov w0, 0
11920
-.L1704:
11921
- ldrh w1, [x26, 308]
11922
- sub w1, w1, #1
11923
- cmp w0, w1
11924
- blt .L1706
11925
-.L1710:
11926
- add w20, w20, 1
11927
- sxth w20, w20
11928
- b .L1693
11929
-.L1706:
11930
- ldr x2, [x26, 3456]
11931
- sbfiz x3, x0, 3, 32
11932
- ldrh w1, [x2, x3]
11933
- cmp w25, w1
11934
- bls .L1705
11935
- add x2, x2, x3
11936
- ubfiz x1, x1, 2, 16
11937
- ldr w2, [x2, 4]
11938
- str w2, [x23, x1]
11939
-.L1705:
13291
+ beq .L1739
13292
+.L1738:
13293
+ adrp x25, .LC130
13294
+ mov w26, 0
13295
+ add x25, x25, :lo12:.LC130
13296
+ b .L1730
13297
+.L1726:
13298
+ ldr x3, [x24, 3448]
13299
+ lsl w1, w0, 1
13300
+ ldr w4, [x3, w1, sxtw 2]
13301
+ and w2, w4, 65535
13302
+ cmp w23, w4, uxth
13303
+ bls .L1725
13304
+ add w1, w1, 1
13305
+ ldr w3, [x3, w1, sxtw 2]
13306
+ ubfiz x1, x2, 2, 16
13307
+ str w3, [x22, x1]
13308
+.L1725:
1194013309 add w0, w0, 1
1194113310 sxth w0, w0
11942
- b .L1704
13311
+.L1724:
13312
+ ldrh w1, [x24, 308]
13313
+ sub w1, w1, #1
13314
+ cmp w0, w1
13315
+ blt .L1726
13316
+.L1732:
13317
+ add w20, w20, 1
13318
+ sxth w20, w20
13319
+ b .L1714
13320
+.L1739:
13321
+ mov w0, 0
13322
+ b .L1724
13323
+.L1731:
13324
+ ldr x0, [sp, 104]
13325
+ add x5, x24, 3712
13326
+ mov w2, 1
13327
+ mov w1, w2
13328
+ str x5, [sp, 136]
13329
+ ldrh w0, [x0]
13330
+ orr w0, w26, w0, lsl 10
13331
+ str w0, [x24, 3716]
13332
+ mov x0, x5
13333
+ bl FlashReadPages
13334
+ ldr x5, [sp, 136]
13335
+ ldr x0, [x5, 16]
13336
+ ldr w4, [x0, 12]
13337
+ ldr w0, [x24, 3712]
13338
+ str w4, [sp, 136]
13339
+ cmn w0, #1
13340
+ cbz w4, .L1727
13341
+ beq .L1736
13342
+ ldrh w1, [x24, 314]
13343
+ ldr x0, [x5, 8]
13344
+ bl js_hash
13345
+ ldr w4, [sp, 136]
13346
+ mov w5, w0
13347
+ cmp w4, w0
13348
+ beq .L1729
13349
+ ldr x1, [sp, 128]
13350
+ mov x0, x25
13351
+ mov w3, w26
13352
+ mov w2, w20
13353
+ bl sftl_printk
13354
+ mov w0, -1
13355
+ str w0, [x24, 3712]
13356
+.L1736:
13357
+ add w3, w26, 1
13358
+ sxth w26, w3
13359
+.L1730:
13360
+ ldrh w0, [x24, 308]
13361
+ cmp w26, w0
13362
+ blt .L1731
13363
+ b .L1732
13364
+.L1727:
13365
+ beq .L1736
13366
+.L1729:
13367
+ ldrh w0, [x21, 8]
13368
+ cmp w0, w23
13369
+ bcs .L1736
13370
+ ldrh w2, [x21]
13371
+ ldrh w1, [x19, 4]
13372
+ cmp w2, w1
13373
+ bne .L1736
13374
+ ubfiz x0, x0, 2, 16
13375
+ ldr w1, [x24, 3716]
13376
+ str w1, [x22, x0]
13377
+ b .L1736
1194313378 .size FtlMapTblRecovery, .-FtlMapTblRecovery
1194413379 .align 2
1194513380 .global FtlLoadVonderInfo
1194613381 .type FtlLoadVonderInfo, %function
1194713382 FtlLoadVonderInfo:
13383
+ hint 34 // bti c
13384
+ .section __patchable_function_entries
13385
+ .align 3
13386
+ .8byte .LPFE130
13387
+ .text
13388
+.LPFE130:
13389
+ nop
13390
+ nop
1194813391 adrp x1, .LANCHOR0
1194913392 add x1, x1, :lo12:.LANCHOR0
13393
+ hint 25 // paciasp
1195013394 stp x29, x30, [sp, -16]!
11951
- add x0, x1, 3888
11952
- add x29, sp, 0
13395
+ add x0, x1, 3880
13396
+ mov x29, sp
1195313397 ldrh w2, [x1, 324]
1195413398 strh w2, [x0, 10]
1195513399 mov w2, -3962
....@@ -11960,63 +13404,82 @@
1196013404 strh w2, [x0, 6]
1196113405 ldr x2, [x1, 352]
1196213406 str x2, [x0, 16]
11963
- ldr x2, [x1, 3592]
11964
- str x2, [x0, 24]
1196513407 ldr x2, [x1, 3584]
11966
- ldr x1, [x1, 3600]
13408
+ str x2, [x0, 24]
13409
+ ldr x2, [x1, 3576]
13410
+ ldr x1, [x1, 3592]
1196713411 stp x2, x1, [x0, 32]
1196813412 bl FtlMapTblRecovery
1196913413 mov w0, 0
1197013414 ldp x29, x30, [sp], 16
13415
+ hint 29 // autiasp
1197113416 ret
1197213417 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo
1197313418 .align 2
1197413419 .global FtlLoadMapInfo
1197513420 .type FtlLoadMapInfo, %function
1197613421 FtlLoadMapInfo:
13422
+ hint 34 // bti c
13423
+ .section __patchable_function_entries
13424
+ .align 3
13425
+ .8byte .LPFE131
13426
+ .text
13427
+.LPFE131:
13428
+ nop
13429
+ nop
13430
+ hint 25 // paciasp
1197713431 stp x29, x30, [sp, -16]!
11978
- add x29, sp, 0
13432
+ mov x29, sp
1197913433 bl FtlL2PDataInit
1198013434 adrp x0, .LANCHOR0
1198113435 add x0, x0, :lo12:.LANCHOR0
11982
- add x0, x0, 3640
13436
+ add x0, x0, 3632
1198313437 bl FtlMapTblRecovery
1198413438 mov w0, 0
1198513439 ldp x29, x30, [sp], 16
13440
+ hint 29 // autiasp
1198613441 ret
1198713442 .size FtlLoadMapInfo, .-FtlLoadMapInfo
1198813443 .align 2
1198913444 .global FtlSysBlkInit
1199013445 .type FtlSysBlkInit, %function
1199113446 FtlSysBlkInit:
11992
- stp x29, x30, [sp, -64]!
11993
- add x29, sp, 0
13447
+ hint 34 // bti c
13448
+ .section __patchable_function_entries
13449
+ .align 3
13450
+ .8byte .LPFE132
13451
+ .text
13452
+.LPFE132:
13453
+ nop
13454
+ nop
13455
+ hint 25 // paciasp
13456
+ stp x29, x30, [sp, -48]!
13457
+ mov x29, sp
1199413458 stp x19, x20, [sp, 16]
11995
- adrp x20, .LANCHOR0
13459
+ adrp x19, .LANCHOR0
13460
+ add x19, x19, :lo12:.LANCHOR0
1199613461 stp x21, x22, [sp, 32]
11997
- add x21, x20, :lo12:.LANCHOR0
11998
- str x23, [sp, 48]
11999
- ldrh w0, [x21, 240]
12000
- strh wzr, [x21, 3752]
13462
+ ldrh w0, [x19, 240]
13463
+ strh wzr, [x19, 3744]
1200113464 bl FtlFreeSysBlkQueueInit
1200213465 bl FtlScanSysBlk
12003
- ldrh w1, [x21, 2696]
13466
+ ldrh w1, [x19, 2696]
1200413467 mov w0, 65535
1200513468 cmp w1, w0
12006
- bne .L1739
12007
-.L1741:
12008
- mov w23, -1
12009
-.L1738:
12010
- mov w0, w23
12011
- ldr x23, [sp, 48]
13469
+ bne .L1758
13470
+.L1760:
13471
+ mov w20, -1
13472
+.L1757:
13473
+ mov w0, w20
1201213474 ldp x19, x20, [sp, 16]
1201313475 ldp x21, x22, [sp, 32]
12014
- ldp x29, x30, [sp], 64
13476
+ ldp x29, x30, [sp], 48
13477
+ hint 29 // autiasp
1201513478 ret
12016
-.L1739:
13479
+.L1758:
1201713480 bl FtlLoadSysInfo
12018
- mov w23, w0
12019
- cbnz w0, .L1741
13481
+ mov w20, w0
13482
+ cbnz w0, .L1760
1202013483 bl FtlLoadMapInfo
1202113484 bl FtlLoadVonderInfo
1202213485 bl Ftl_load_ext_data
....@@ -12026,24 +13489,25 @@
1202613489 bl FtlPowerLostRecovery
1202713490 mov w0, 1
1202813491 bl FtlUpdateVaildLpn
12029
- ldr x1, [x21, 2608]
12030
- mov w0, 0
12031
- ldrh w3, [x21, 342]
13492
+ ldr x1, [x19, 2608]
13493
+ mov x0, 0
13494
+ ldrh w2, [x19, 342]
1203213495 add x1, x1, 4
12033
-.L1742:
12034
- cmp w0, w3
12035
- bge .L1747
12036
- ldr w2, [x1], 16
12037
- tbz w2, #31, .L1743
12038
-.L1747:
12039
- add x2, x20, :lo12:.LANCHOR0
12040
- cmp w0, w3
12041
- ldrh w1, [x2, 2540]
12042
- add w1, w1, 1
12043
- strh w1, [x2, 2540]
12044
- bge .L1753
12045
-.L1744:
12046
- add x19, x20, :lo12:.LANCHOR0
13496
+.L1761:
13497
+ mov w3, w0
13498
+ cmp w2, w0
13499
+ ble .L1765
13500
+ lsl x4, x0, 4
13501
+ add x0, x0, 1
13502
+ ldr w4, [x1, x4]
13503
+ tbz w4, #31, .L1761
13504
+.L1765:
13505
+ ldrh w0, [x19, 2540]
13506
+ add w0, w0, 1
13507
+ strh w0, [x19, 2540]
13508
+ cmp w3, w2
13509
+ bge .L1772
13510
+.L1762:
1204713511 add x22, x19, 24
1204813512 add x21, x19, 80
1204913513 mov x0, x22
....@@ -12052,151 +13516,153 @@
1205213516 bl FtlSuperblockPowerLostFix
1205313517 ldrh w0, [x19, 24]
1205413518 ldr x2, [x19, 72]
12055
- ldrh w3, [x19, 28]
1205613519 lsl x0, x0, 1
13520
+ ldrh w3, [x19, 28]
1205713521 ldrh w1, [x2, x0]
1205813522 sub w1, w1, w3
1205913523 strh w1, [x2, x0]
12060
- strb wzr, [x19, 30]
13524
+ strh wzr, [x19, 28]
1206113525 ldrh w0, [x19, 306]
1206213526 strh w0, [x19, 26]
1206313527 ldrh w0, [x19, 80]
1206413528 ldr x2, [x19, 72]
12065
- strh wzr, [x19, 28]
13529
+ strb wzr, [x19, 30]
1206613530 lsl x0, x0, 1
1206713531 ldrh w3, [x19, 84]
1206813532 ldrh w1, [x2, x0]
1206913533 sub w1, w1, w3
1207013534 strh w1, [x2, x0]
12071
- strb wzr, [x19, 86]
13535
+ strh wzr, [x19, 84]
1207213536 ldrh w0, [x19, 306]
1207313537 strh w0, [x19, 82]
1207413538 ldrh w0, [x19, 2542]
12075
- strh wzr, [x19, 84]
13539
+ strb wzr, [x19, 86]
1207613540 add w0, w0, 1
1207713541 strh w0, [x19, 2542]
1207813542 bl l2p_flush
1207913543 bl FtlVpcTblFlush
1208013544 bl FtlVpcTblFlush
12081
- b .L1748
12082
-.L1743:
12083
- add w0, w0, 1
12084
- b .L1742
12085
-.L1753:
12086
- ldrh w0, [x2, 3752]
12087
- cbnz w0, .L1744
12088
-.L1748:
12089
- add x19, x20, :lo12:.LANCHOR0
12090
- mov w1, 65535
12091
- add x21, x19, 24
13545
+ b .L1766
13546
+.L1772:
13547
+ ldrh w0, [x19, 3744]
13548
+ cbnz w0, .L1762
13549
+.L1766:
1209213550 ldrh w0, [x19, 24]
13551
+ add x22, x19, 24
13552
+ mov w1, 65535
1209313553 cmp w0, w1
12094
- beq .L1749
13554
+ beq .L1767
1209513555 ldrh w1, [x19, 28]
12096
- cbnz w1, .L1749
12097
- ldrh w1, [x19, 84]
12098
- add x20, x19, 80
12099
- cbnz w1, .L1749
13556
+ add x21, x19, 80
13557
+ ldrh w2, [x19, 84]
13558
+ orr w1, w1, w2
13559
+ tst w1, 65535
13560
+ bne .L1767
1210013561 bl FtlGcRefreshBlock
1210113562 ldrh w0, [x19, 80]
1210213563 bl FtlGcRefreshBlock
1210313564 bl FtlVpcTblFlush
13565
+ mov x0, x22
13566
+ bl allocate_new_data_superblock
1210413567 mov x0, x21
1210513568 bl allocate_new_data_superblock
12106
- mov x0, x20
12107
- bl allocate_new_data_superblock
12108
-.L1749:
13569
+.L1767:
1210913570 bl FtlVpcCheckAndModify
12110
- b .L1738
13571
+ b .L1757
1211113572 .size FtlSysBlkInit, .-FtlSysBlkInit
1211213573 .align 2
1211313574 .global ftl_low_format
1211413575 .type ftl_low_format, %function
1211513576 ftl_low_format:
13577
+ hint 34 // bti c
13578
+ .section __patchable_function_entries
13579
+ .align 3
13580
+ .8byte .LPFE133
13581
+ .text
13582
+.LPFE133:
13583
+ nop
13584
+ nop
13585
+ hint 25 // paciasp
1211613586 stp x29, x30, [sp, -48]!
12117
- add x29, sp, 0
13587
+ mov x29, sp
1211813588 stp x19, x20, [sp, 16]
12119
- adrp x20, .LANCHOR0
12120
- add x0, x20, :lo12:.LANCHOR0
12121
- stp x21, x22, [sp, 32]
12122
- str wzr, [x0, 2660]
12123
- str wzr, [x0, 2664]
12124
- str wzr, [x0, 2676]
12125
- ldrh w0, [x0, 240]
13589
+ adrp x19, .LANCHOR0
13590
+ add x19, x19, :lo12:.LANCHOR0
13591
+ str x21, [sp, 32]
13592
+ ldrh w0, [x19, 240]
13593
+ str wzr, [x19, 2660]
13594
+ str wzr, [x19, 2664]
13595
+ str wzr, [x19, 2676]
1212613596 bl FtlFreeSysBlkQueueInit
1212713597 bl FtlLoadBbt
12128
- cbz w0, .L1756
13598
+ cbz w0, .L1775
1212913599 bl FtlMakeBbt
12130
-.L1756:
12131
- mov w4, 23752
12132
- add x1, x20, :lo12:.LANCHOR0
13600
+.L1775:
13601
+ mov w3, 23752
1213313602 mov w0, 0
12134
- movk w4, 0xa0f, lsl 16
12135
-.L1757:
12136
- ldrh w2, [x1, 262]
12137
- cmp w0, w2, lsl 7
12138
- blt .L1758
12139
- ldrh w21, [x1, 244]
12140
- add x22, x20, :lo12:.LANCHOR0
12141
- mov w19, 0
12142
-.L1759:
12143
- ldrh w0, [x22, 246]
12144
- cmp w0, w21
12145
- bhi .L1760
12146
- ldrh w0, [x22, 236]
12147
- sub w1, w19, #3
12148
- cmp w1, w0, lsl 1
12149
- bge .L1761
12150
-.L1765:
12151
- add x19, x20, :lo12:.LANCHOR0
12152
- mov w21, 0
12153
- mov w22, 0
12154
-.L1762:
12155
- ldrh w0, [x19, 244]
12156
- cmp w0, w22
12157
- bhi .L1766
12158
- ldrh w2, [x19, 236]
12159
- ldr w1, [x19, 248]
13603
+ movk w3, 0xa0f, lsl 16
13604
+.L1776:
13605
+ ldrh w1, [x19, 262]
13606
+ cmp w0, w1, lsl 7
13607
+ blt .L1777
13608
+ ldrh w21, [x19, 244]
13609
+ mov w20, 0
13610
+.L1778:
1216013611 ldrh w0, [x19, 246]
12161
- str w0, [x19, 3428]
12162
- udiv w4, w1, w2
13612
+ cmp w0, w21
13613
+ bhi .L1779
13614
+ ldrh w0, [x19, 236]
13615
+ sub w1, w20, #3
13616
+ cmp w1, w0, lsl 1
13617
+ bge .L1780
13618
+.L1784:
13619
+ mov w20, 0
13620
+ mov w21, 0
13621
+.L1781:
13622
+ ldrh w0, [x19, 244]
13623
+ cmp w0, w21
13624
+ bhi .L1785
13625
+ ldrh w0, [x19, 246]
13626
+ ldrh w2, [x19, 236]
13627
+ str w0, [x19, 3420]
13628
+ ldr w0, [x19, 248]
13629
+ udiv w4, w0, w2
1216313630 ubfx x3, x4, 5, 16
1216413631 str w4, [x19, 2624]
12165
- add w0, w3, 36
12166
- strh w0, [x19, 2692]
12167
- mov w0, 24
12168
- mul w0, w2, w0
12169
- cmp w21, w0
12170
- ble .L1767
12171
- sub w1, w1, w21
12172
- udiv w1, w1, w2
12173
- str w1, [x19, 2624]
12174
- lsr w1, w1, 5
12175
- add w1, w1, 24
13632
+ add w1, w3, 36
1217613633 strh w1, [x19, 2692]
12177
-.L1767:
12178
- add x0, x20, :lo12:.LANCHOR0
12179
- ldrh w1, [x0, 298]
12180
- cbz w1, .L1769
12181
- ldrh w5, [x0, 2692]
12182
- add w5, w5, w1, lsr 1
12183
- strh w5, [x0, 2692]
12184
- mul w5, w1, w2
12185
- cmp w21, w5
12186
- bge .L1769
13634
+ mov w1, 24
13635
+ mul w1, w2, w1
13636
+ cmp w20, w1
13637
+ ble .L1786
13638
+ sub w0, w0, w20
13639
+ udiv w0, w0, w2
13640
+ str w0, [x19, 2624]
13641
+ lsr w0, w0, 5
13642
+ add w0, w0, 24
13643
+ strh w0, [x19, 2692]
13644
+.L1786:
13645
+ ldrh w1, [x19, 298]
13646
+ cbz w1, .L1788
13647
+ ldrh w0, [x19, 2692]
13648
+ add w0, w0, w1, lsr 1
13649
+ strh w0, [x19, 2692]
13650
+ mul w0, w1, w2
13651
+ cmp w20, w0
13652
+ bge .L1788
1218713653 add w1, w1, 32
12188
- str w4, [x0, 2624]
13654
+ str w4, [x19, 2624]
1218913655 add w1, w3, w1
12190
- strh w1, [x0, 2692]
12191
-.L1769:
12192
- add x19, x20, :lo12:.LANCHOR0
12193
- add x21, x19, 24
13656
+ strh w1, [x19, 2692]
13657
+.L1788:
1219413658 ldrh w1, [x19, 2692]
13659
+ add x21, x19, 24
1219513660 ldr w0, [x19, 2624]
13661
+ mov w20, -1
1219613662 sub w0, w0, w1
1219713663 ldrh w1, [x19, 306]
1219813664 mul w0, w0, w2
12199
- str w0, [x19, 3972]
13665
+ str w0, [x19, 3964]
1220013666 mul w0, w1, w0
1220113667 ldrh w1, [x19, 262]
1220213668 str w0, [x19, 2624]
....@@ -12208,113 +13674,107 @@
1220813674 ldrh w2, [x19, 246]
1220913675 lsl w2, w2, 1
1221013676 bl ftl_memset
12211
- mov w0, -1
12212
- mov w22, w0
12213
- mov w1, 1
12214
- strh w0, [x19, 176]
12215
- strh wzr, [x19, 178]
13677
+ mov w1, 65535
13678
+ mov w0, 1
13679
+ strb wzr, [x21, 6]
13680
+ strb w0, [x21, 8]
13681
+ str wzr, [x19, 24]
13682
+ str w1, [x19, 176]
1221613683 strb wzr, [x19, 182]
1221713684 strb wzr, [x19, 184]
12218
- strh wzr, [x21, 2]
12219
- strb wzr, [x21, 6]
12220
- strh wzr, [x19, 24]
12221
- strb w1, [x21, 8]
1222213685 str wzr, [x19, 2620]
12223
-.L1771:
13686
+.L1790:
1222413687 mov x0, x21
1222513688 bl make_superblock
1222613689 ldrb w1, [x21, 7]
1222713690 ldrh w0, [x21]
12228
- cbnz w1, .L1772
13691
+ cbnz w1, .L1791
1222913692 ldr x1, [x19, 72]
1223013693 ubfiz x0, x0, 1, 16
12231
- strh w22, [x1, x0]
13694
+ strh w20, [x1, x0]
1223213695 ldrh w0, [x21]
1223313696 add w0, w0, 1
1223413697 strh w0, [x21]
12235
- b .L1771
12236
-.L1758:
12237
- ldr x5, [x1, 3480]
12238
- ubfiz x3, x0, 2, 16
12239
- mvn w2, w0
12240
- orr w2, w0, w2, lsl 16
13698
+ b .L1790
13699
+.L1777:
13700
+ ldr x4, [x19, 3472]
13701
+ ubfiz x2, x0, 2, 16
13702
+ mvn w1, w0
13703
+ orr w1, w0, w1, lsl 16
13704
+ str w1, [x4, x2]
1224113705 add w0, w0, 1
13706
+ ldr x1, [x19, 3480]
1224213707 and w0, w0, 65535
12243
- str w2, [x5, x3]
12244
- ldr x2, [x1, 3488]
12245
- str w4, [x2, x3]
12246
- b .L1757
12247
-.L1760:
13708
+ str w3, [x1, x2]
13709
+ b .L1776
13710
+.L1779:
1224813711 mov w0, w21
1224913712 mov w1, 1
1225013713 add w21, w21, 1
1225113714 bl FtlLowFormatEraseBlock
12252
- add w19, w19, w0
13715
+ add w20, w0, w20
1225313716 and w21, w21, 65535
12254
- and w19, w19, 65535
12255
- b .L1759
12256
-.L1761:
12257
- udiv w0, w19, w0
12258
- ldr w19, [x22, 336]
12259
- add x21, x20, :lo12:.LANCHOR0
12260
- add w0, w0, w19
13717
+ and w20, w20, 65535
13718
+ b .L1778
13719
+.L1780:
13720
+ udiv w20, w20, w0
13721
+ ldr w0, [x19, 336]
13722
+ add w0, w20, w0
1226113723 bl FtlSysBlkNumInit
12262
- ldrh w0, [x22, 240]
13724
+ ldrh w0, [x19, 240]
1226313725 bl FtlFreeSysBlkQueueInit
12264
- ldrh w19, [x22, 244]
12265
-.L1763:
12266
- ldrh w0, [x21, 246]
12267
- cmp w0, w19
12268
- bls .L1765
12269
- mov w0, w19
12270
- add w19, w19, 1
13726
+ ldrh w20, [x19, 244]
13727
+.L1782:
13728
+ ldrh w0, [x19, 246]
13729
+ cmp w0, w20
13730
+ bls .L1784
13731
+ mov w0, w20
13732
+ add w20, w20, 1
1227113733 mov w1, 1
12272
- and w19, w19, 65535
13734
+ and w20, w20, 65535
1227313735 bl FtlLowFormatEraseBlock
12274
- b .L1763
12275
-.L1766:
12276
- mov w0, w22
13736
+ b .L1782
13737
+.L1785:
13738
+ mov w0, w21
1227713739 mov w1, 0
12278
- add w22, w22, 1
13740
+ add w21, w21, 1
1227913741 bl FtlLowFormatEraseBlock
12280
- add w21, w21, w0
12281
- and w22, w22, 65535
13742
+ add w20, w0, w20
1228213743 and w21, w21, 65535
12283
- b .L1762
12284
-.L1772:
13744
+ and w20, w20, 65535
13745
+ b .L1781
13746
+.L1791:
1228513747 ldr w1, [x19, 2660]
1228613748 ubfiz x0, x0, 1, 16
1228713749 str w1, [x21, 12]
13750
+ add x20, x19, 80
1228813751 add w1, w1, 1
1228913752 str w1, [x19, 2660]
1229013753 ldr x1, [x19, 72]
1229113754 ldrh w2, [x21, 4]
1229213755 strh w2, [x1, x0]
12293
- add x0, x19, 80
12294
- strh wzr, [x19, 82]
12295
- ldrh w1, [x21]
13756
+ strh wzr, [x20, 2]
13757
+ ldrh w0, [x21]
1229613758 mov w21, -1
12297
- strb wzr, [x19, 86]
12298
- add w1, w1, 1
12299
- strh w1, [x19, 80]
12300
- mov w1, 1
12301
- strb w1, [x19, 88]
12302
- add x19, x20, :lo12:.LANCHOR0
12303
- mov x20, x0
12304
-.L1773:
13759
+ strb wzr, [x20, 6]
13760
+ add w0, w0, 1
13761
+ strh w0, [x19, 80]
13762
+ mov w0, 1
13763
+ strb w0, [x20, 8]
13764
+.L1792:
1230513765 mov x0, x20
1230613766 bl make_superblock
1230713767 ldrb w1, [x20, 7]
1230813768 ldrh w0, [x20]
12309
- cbnz w1, .L1774
13769
+ cbnz w1, .L1793
1231013770 ldr x1, [x19, 72]
1231113771 ubfiz x0, x0, 1, 16
1231213772 strh w21, [x1, x0]
1231313773 ldrh w0, [x20]
1231413774 add w0, w0, 1
1231513775 strh w0, [x20]
12316
- b .L1773
12317
-.L1774:
13776
+ b .L1792
13777
+.L1793:
1231813778 ldr w1, [x19, 2660]
1231913779 ubfiz x0, x0, 1, 16
1232013780 str w1, [x20, 12]
....@@ -12322,48 +13782,59 @@
1232213782 str w1, [x19, 2660]
1232313783 ldr x1, [x19, 72]
1232413784 ldrh w2, [x20, 4]
12325
- mov w20, -1
1232613785 strh w2, [x1, x0]
12327
- strh w20, [x19, 128]
13786
+ mov w0, -1
13787
+ strh w0, [x19, 128]
1232813788 bl FtlFreeSysBlkQueueOut
1232913789 strh w0, [x19, 2696]
12330
- ldr w0, [x19, 3972]
13790
+ add x1, x19, 2560
13791
+ mov w0, -65536
13792
+ str w0, [x1, 138]
13793
+ ldr w0, [x19, 3964]
1233113794 strh w0, [x19, 2702]
1233213795 ldr w0, [x19, 2660]
1233313796 str w0, [x19, 2704]
1233413797 add w0, w0, 1
12335
- strh wzr, [x19, 2698]
12336
- strh w20, [x19, 2700]
1233713798 str w0, [x19, 2660]
1233813799 bl FtlVpcTblFlush
1233913800 bl FtlSysBlkInit
12340
- cbnz w0, .L1775
13801
+ cbnz w0, .L1794
1234113802 adrp x0, .LANCHOR2
1234213803 mov w1, 1
1234313804 str w1, [x0, #:lo12:.LANCHOR2]
12344
-.L1775:
13805
+.L1794:
1234513806 mov w0, 0
1234613807 ldp x19, x20, [sp, 16]
12347
- ldp x21, x22, [sp, 32]
13808
+ ldr x21, [sp, 32]
1234813809 ldp x29, x30, [sp], 48
13810
+ hint 29 // autiasp
1234913811 ret
1235013812 .size ftl_low_format, .-ftl_low_format
1235113813 .align 2
1235213814 .global sftl_init
1235313815 .type sftl_init, %function
1235413816 sftl_init:
13817
+ hint 34 // bti c
13818
+ .section __patchable_function_entries
13819
+ .align 3
13820
+ .8byte .LPFE134
13821
+ .text
13822
+.LPFE134:
13823
+ nop
13824
+ nop
13825
+ hint 25 // paciasp
1235513826 stp x29, x30, [sp, -32]!
12356
- adrp x1, .LC0
12357
- add x1, x1, :lo12:.LC0
12358
- mov w0, -1
12359
- add x29, sp, 0
13827
+ adrp x1, .LC1
13828
+ mov x29, sp
13829
+ add x1, x1, :lo12:.LC1
1236013830 stp x19, x20, [sp, 16]
1236113831 adrp x20, .LANCHOR2
13832
+ mov w0, -1
1236213833 adrp x19, .LANCHOR0
1236313834 add x19, x19, :lo12:.LANCHOR0
1236413835 str w0, [x20, #:lo12:.LANCHOR2]
12365
- adrp x0, .LC77
12366
- add x0, x0, :lo12:.LC77
13836
+ adrp x0, .LC78
13837
+ add x0, x0, :lo12:.LC78
1236713838 bl sftl_printk
1236813839 mov x0, x19
1236913840 bl FtlConstantsInit
....@@ -12372,437 +13843,439 @@
1237213843 ldrh w0, [x19, 240]
1237313844 bl FtlFreeSysBlkQueueInit
1237413845 bl FtlLoadBbt
12375
- cbnz w0, .L1784
13846
+ cbnz w0, .L1800
1237613847 bl FtlSysBlkInit
12377
- cbnz w0, .L1784
13848
+ cbnz w0, .L1800
1237813849 mov w0, 1
1237913850 str w0, [x20, #:lo12:.LANCHOR2]
1238013851 ldrh w0, [x19, 228]
1238113852 cmp w0, 15
12382
- bhi .L1784
13853
+ bhi .L1800
1238313854 mov w19, 8129
12384
-.L1783:
13855
+.L1801:
1238513856 mov w1, 1
1238613857 mov w0, 0
1238713858 bl rk_ftl_garbage_collect
1238813859 subs w19, w19, #1
12389
- bne .L1783
12390
-.L1784:
13860
+ bne .L1801
13861
+.L1800:
1239113862 mov w0, 0
1239213863 ldp x19, x20, [sp, 16]
1239313864 ldp x29, x30, [sp], 32
13865
+ hint 29 // autiasp
1239413866 ret
1239513867 .size sftl_init, .-sftl_init
13868
+ .section .rodata.str1.1
13869
+.LC131:
13870
+ .string "write_idblock %x %x\n"
13871
+.LC132:
13872
+ .string "write_idblock fail! %x %x %x %x\n"
13873
+.LC133:
13874
+ .string "%s idb buffer alloc fail\n"
13875
+ .text
1239613876 .align 2
1239713877 .global FtlWriteToIDB
1239813878 .type FtlWriteToIDB, %function
1239913879 FtlWriteToIDB:
12400
- stp x29, x30, [sp, -240]!
12401
- add x29, sp, 0
13880
+ hint 34 // bti c
13881
+ .section __patchable_function_entries
13882
+ .align 3
13883
+ .8byte .LPFE135
13884
+ .text
13885
+.LPFE135:
13886
+ nop
13887
+ nop
13888
+ hint 25 // paciasp
13889
+ stp x29, x30, [sp, -208]!
13890
+ adrp x5, .LANCHOR0
13891
+ mov x29, sp
1240213892 stp x19, x20, [sp, 16]
12403
- mov w19, w0
13893
+ mov w20, w0
13894
+ mrs x0, sp_el0
1240413895 stp x21, x22, [sp, 32]
12405
- adrp x0, __stack_chk_guard
13896
+ mov w19, w1
13897
+ add w22, w19, w20
1240613898 stp x23, x24, [sp, 48]
12407
- mov w21, w1
13899
+ sub w23, w22, #1
13900
+ cmp w23, 63
1240813901 stp x25, x26, [sp, 64]
12409
- add x1, x0, :lo12:__stack_chk_guard
13902
+ add x25, x5, :lo12:.LANCHOR0
1241013903 stp x27, x28, [sp, 80]
12411
- mov x22, x2
12412
- add w23, w21, w19
12413
- str x0, [x29, 112]
12414
- ldr x2, [x1]
12415
- str x2, [x29, 232]
12416
- mov x2,0
12417
- sub w24, w23, #1
12418
- cmp w24, 63
12419
- adrp x20, .LANCHOR0
12420
- bls .L1788
12421
- cmp w19, 575
12422
- bls .L1789
12423
-.L1788:
12424
- add x0, x20, :lo12:.LANCHOR0
12425
- ldr w1, [x0, 3976]
12426
- cbnz w1, .L1790
12427
-.L1855:
13904
+ ldr x1, [x0, 1376]
13905
+ str x1, [sp, 200]
13906
+ mov x1, 0
13907
+ bls .L1805
13908
+ cmp w20, 575
13909
+ bls .L1806
13910
+.L1805:
13911
+ ldr w0, [x25, 3968]
13912
+ cbnz w0, .L1807
13913
+.L1869:
1242813914 mov w19, 0
12429
- b .L1787
12430
-.L1790:
12431
- ldr x24, [x0, 3984]
12432
- mov w1, 35899
12433
- movk w1, 0xfcdc, lsl 16
12434
- ldr w2, [x24]
12435
- cmp w2, w1
12436
- bne .L1792
12437
- add x1, x24, 258048
12438
- ldrh w2, [x0, 10]
13915
+ b .L1804
13916
+.L1807:
13917
+ ldr x22, [x25, 3976]
13918
+ mov w0, 35899
13919
+ movk w0, 0xfcdc, lsl 16
13920
+ ldr w1, [x22]
13921
+ cmp w1, w0
13922
+ bne .L1809
13923
+ add x1, x22, 258048
13924
+ ldrh w2, [x25, 10]
1243913925 add x1, x1, 2044
1244013926 mov w0, 0
1244113927 mov w19, 65023
12442
- mov w3, 4097
12443
-.L1796:
12444
- ldr w4, [x1]
12445
- cbnz w4, .L1793
12446
- ldr w4, [x24, w0, uxtw 2]
13928
+.L1813:
13929
+ ldr w3, [x1]
13930
+ cbnz w3, .L1810
13931
+ ldr w3, [x22, w0, uxtw 2]
1244713932 add w0, w0, 1
12448
- str w4, [x1, 2048]
12449
- cmp w0, w3
13933
+ str w3, [x1, 2048]
13934
+ cmp w0, 4096
13935
+ bls .L1811
13936
+ mov w0, 0
13937
+.L1811:
1245013938 sub w19, w19, #1
12451
- csel w0, w0, wzr, cc
1245213939 sub x1, x1, #4
1245313940 cmp w19, 4096
12454
- bne .L1796
13941
+ bne .L1813
1245513942 mov w19, 512
12456
- b .L1795
12457
-.L1793:
13943
+ b .L1812
13944
+.L1810:
1245813945 add w19, w19, 127
1245913946 lsr w19, w19, 7
12460
-.L1795:
13947
+.L1812:
1246113948 ubfiz w0, w2, 2, 14
12462
- add w21, w19, 4
13949
+ add w20, w19, 4
1246313950 mov w1, w19
12464
- add x27, x20, :lo12:.LANCHOR0
12465
- mov w25, 0
12466
- mov w22, 0
12467
- udiv w21, w21, w0
12468
- adrp x0, .LC130
12469
- add x0, x0, :lo12:.LC130
12470
- add w21, w21, 1
12471
- mov w2, w21
13951
+ mov w23, 0
13952
+ mov w21, 0
13953
+ udiv w20, w20, w0
13954
+ adrp x0, .LC131
13955
+ add x0, x0, :lo12:.LC131
13956
+ add w20, w20, 1
13957
+ mov w2, w20
1247213958 bl sftl_printk
1247313959 lsl w0, w19, 7
12474
- str w0, [x29, 140]
12475
-.L1797:
12476
- add w0, w21, w22
12477
- str w0, [x29, 144]
13960
+ str w0, [sp, 100]
13961
+.L1814:
13962
+ add w0, w20, w21
13963
+ str w0, [sp, 104]
1247813964 cmp w0, 8
12479
- bls .L1819
12480
- cbnz w25, .L1820
12481
-.L1792:
13965
+ bls .L1836
13966
+ cbnz w23, .L1835
13967
+.L1809:
1248213968 mov w19, -1
12483
-.L1820:
12484
- add x20, x20, :lo12:.LANCHOR0
12485
- ldr x0, [x20, 3984]
12486
- str wzr, [x20, 3976]
12487
- bl kfree
12488
- ldr x0, [x20, 3992]
12489
- bl kfree
12490
-.L1787:
12491
- ldr x1, [x29, 112]
12492
- mov w0, w19
12493
- add x1, x1, :lo12:__stack_chk_guard
12494
- ldr x2, [x29, 232]
12495
- ldr x1, [x1]
12496
- eor x1, x2, x1
12497
- cbz x1, .L1827
12498
- bl __stack_chk_fail
12499
-.L1819:
12500
- ldr x0, [x27, 3992]
13969
+ b .L1835
13970
+.L1836:
13971
+ ldr x0, [x25, 3984]
1250113972 mov w1, 0
1250213973 mov x2, 512
1250313974 bl memset
12504
- ldrh w28, [x27, 10]
12505
- ldr x1, [x27, 3392]
12506
- mul w0, w22, w28
12507
- str w0, [x29, 152]
12508
- cbz x1, .L1828
12509
- ldr x0, [x27, 3400]
12510
- mov w23, 6
13975
+ ldrh w27, [x25, 10]
13976
+ ldr x1, [x25, 3384]
13977
+ mul w0, w21, w27
13978
+ str w0, [sp, 96]
13979
+ cbz x1, .L1845
13980
+ ldr x0, [x25, 3392]
13981
+ mov w24, 6
1251113982 cmp x0, 0
1251213983 mov w0, 9
12513
- csel w23, w23, w0, eq
12514
-.L1798:
12515
- mul w4, w22, w28
13984
+ csel w24, w24, w0, eq
13985
+.L1815:
13986
+ mul w28, w21, w27
1251613987 mov w26, 0
12517
-.L1799:
12518
- ldr x6, [x27, 3368]
12519
- mov w1, w4
12520
- str w4, [x29, 148]
12521
- mov w0, 0
13988
+.L1816:
13989
+ ldr x3, [x25, 3360]
13990
+ mov w1, w28
1252213991 add w26, w26, 1
12523
- blr x6
12524
- ldr w4, [x29, 148]
12525
- cmp w21, w26
12526
- add w4, w4, w28
12527
- bhi .L1799
12528
- cmp w23, 9
12529
- bne .L1830
12530
- ldr x26, [x27, 3992]
13992
+ add w28, w28, w27
13993
+ mov w0, 0
13994
+ blr x3
13995
+ cmp w20, w26
13996
+ bhi .L1816
13997
+ cmp w24, 9
13998
+ bne .L1847
13999
+ ldr x28, [x25, 3984]
1253114000 mov w2, 1024
1253214001 mov w1, 0
12533
- mov x0, x26
14002
+ mov x0, x28
1253414003 bl ftl_memset
12535
- mov w0, 18766
14004
+ mov x0, 18766
14005
+ str wzr, [x28, 12]
14006
+ movk x0, 0x464e, lsl 16
1253614007 mov w1, 12
12537
- movk w0, 0x464e, lsl 16
12538
- stp w0, w1, [x26]
12539
- mov w0, 4
12540
- strb w0, [x26, 17]
12541
- ldrh w0, [x27, 10]
12542
- strh w0, [x26, 18]
12543
- strb wzr, [x26, 16]
12544
- mov w0, 16
12545
- strb wzr, [x26, 20]
12546
- strb w0, [x26, 21]
12547
- add x0, x26, 12
12548
- strh wzr, [x26, 22]
12549
- str wzr, [x26, 12]
14008
+ movk x0, 0xc, lsl 32
14009
+ str x0, [x28]
14010
+ mov w0, 1024
14011
+ strh w0, [x28, 16]
14012
+ ldrh w0, [x25, 10]
14013
+ strh w0, [x28, 18]
14014
+ mov w0, 4096
14015
+ str w0, [x28, 20]
14016
+ add x0, x28, 12
1255014017 bl js_hash
12551
- str w0, [x26, 8]
12552
-.L1800:
12553
- mul w0, w21, w28
12554
- mov x7, x24
12555
- mov x28, 0
12556
- str w0, [x29, 148]
12557
-.L1801:
12558
- ldr w0, [x29, 148]
12559
- mov w1, w28
12560
- cmp w28, w0
12561
- bcs .L1808
12562
- cmp w23, 9
12563
- bne .L1802
12564
- add w0, w1, 1
12565
-.L1853:
12566
- str w0, [x29, 168]
14018
+ str w0, [x28, 8]
14019
+.L1817:
14020
+ mul w0, w20, w27
14021
+ mov x27, x22
14022
+ mov w26, 0
14023
+ str w0, [sp, 108]
14024
+.L1818:
14025
+ ldr w0, [sp, 108]
14026
+ cmp w26, w0
14027
+ beq .L1825
14028
+ cmp w24, 9
14029
+ lsl w0, w26, 2
14030
+ csinc w0, w0, w26, ne
14031
+ str w0, [sp, 136]
1256714032 mov w0, 61424
12568
- str w0, [x29, 172]
12569
- cmp w1, 0
12570
- ccmp w23, 9, 0, eq
12571
- bne .L1804
12572
- ldr x1, [x27, 3392]
12573
- add x8, x27, 3360
12574
- str x7, [x29, 104]
14033
+ str w0, [sp, 140]
14034
+ cmp w26, 0
14035
+ ccmp w24, 9, 0, eq
14036
+ bne .L1821
14037
+ ldr x1, [x25, 3384]
14038
+ add x8, x25, 3352
1257514039 mov w0, 70
12576
- str x8, [x29, 128]
14040
+ str x8, [sp, 112]
1257714041 blr x1
12578
- ldr x8, [x29, 128]
12579
- add x3, x29, 168
12580
- ldr w1, [x29, 152]
12581
- mov x2, x26
12582
- str x8, [x29, 120]
14042
+ ldr w1, [sp, 96]
14043
+ ldr x8, [sp, 112]
14044
+ add x3, sp, 136
14045
+ mov x2, x28
1258314046 mov w0, 0
14047
+ str x8, [sp, 120]
1258414048 ldr x9, [x8, 16]
1258514049 blr x9
1258614050 mov w1, w0
12587
- ldr x8, [x29, 120]
12588
- ldrb w0, [x27, 22]
12589
- str w1, [x29, 128]
14051
+ ldr x8, [sp, 120]
14052
+ str w1, [sp, 112]
14053
+ ldrb w0, [x25, 22]
1259014054 ldr x2, [x8, 32]
1259114055 blr x2
12592
- ldr w1, [x29, 128]
12593
- ldr x7, [x29, 104]
14056
+ ldr w1, [sp, 112]
1259414057 cmn w1, #1
12595
- bne .L1805
12596
-.L1808:
12597
- ldrb w0, [x27, 14]
12598
- str w0, [x29, 128]
12599
- ldrh w0, [x27, 10]
12600
- ldr x28, [x27, 3992]
12601
- mul w1, w22, w0
12602
- str w1, [x29, 152]
12603
- add x1, x27, 3360
12604
- ldr x2, [x1, 32]
12605
- cbnz x2, .L1806
14058
+ bne .L1822
14059
+.L1825:
14060
+ ldrb w0, [x25, 14]
14061
+ add x1, x25, 3352
14062
+ str w0, [sp, 108]
14063
+ ldrh w0, [x25, 10]
14064
+ ldr x3, [x1, 32]
14065
+ ldr x26, [x25, 3984]
14066
+ mul w27, w21, w0
14067
+ cbnz x3, .L1823
1260614068 mov w1, 6
12607
-.L1854:
12608
- mul w0, w21, w0
12609
- mov x26, 0
12610
- str w0, [x29, 120]
12611
- str w1, [x29, 148]
12612
-.L1810:
12613
- ldr w0, [x29, 120]
12614
- mov w1, w26
12615
- cmp w0, w26
12616
- bls .L1814
12617
- ldr w0, [x29, 148]
12618
- cmp w26, 0
14069
+.L1868:
14070
+ mul w0, w20, w0
14071
+ mov w28, 0
14072
+ str w1, [sp, 96]
14073
+ str w0, [sp, 112]
14074
+.L1827:
14075
+ ldr w0, [sp, 112]
14076
+ cmp w28, w0
14077
+ beq .L1831
14078
+ ldr w0, [sp, 96]
14079
+ cmp w28, 0
1261914080 ccmp w0, 9, 0, eq
12620
- bne .L1811
12621
- ldr x1, [x27, 3392]
14081
+ bne .L1828
14082
+ ldr x1, [x25, 3384]
1262214083 mov w0, 70
1262314084 blr x1
12624
- ldr x1, [x27, 3400]
14085
+ ldr x1, [x25, 3392]
1262514086 mov w0, 2
1262614087 blr x1
12627
- ldr x8, [x27, 3384]
12628
- add x3, x29, 168
12629
- ldr w1, [x29, 152]
12630
- mov x2, x28
14088
+ add x3, sp, 136
14089
+ ldr x7, [x25, 3376]
14090
+ mov x2, x26
14091
+ mov w1, w27
1263114092 mov w0, 0
12632
- blr x8
12633
- ldrb w0, [x29, 128]
12634
- ldr x1, [x27, 3400]
14093
+ blr x7
14094
+ ldrb w0, [sp, 108]
14095
+ ldr x1, [x25, 3392]
1263514096 blr x1
12636
- ldrb w0, [x27, 22]
12637
- ldr x1, [x27, 3392]
14097
+ ldrb w0, [x25, 22]
14098
+ ldr x1, [x25, 3384]
1263814099 blr x1
12639
- ldr w0, [x28]
14100
+ ldr w0, [x26]
1264014101 mov w1, 18766
1264114102 movk w1, 0x464e, lsl 16
1264214103 cmp w0, w1
12643
- beq .L1812
12644
-.L1814:
12645
- ldr x0, [x27, 3992]
12646
- mov x1, x24
12647
- mov w23, 0
12648
- mov x2, x0
12649
-.L1813:
12650
- mov x26, x2
12651
- mov x3, x1
12652
- add x2, x2, 4
12653
- add x1, x1, 4
12654
- ldr w4, [x3]
12655
- ldr w6, [x26]
12656
- cmp w6, w4
12657
- beq .L1816
14104
+ beq .L1829
14105
+.L1831:
14106
+ ldr x0, [x25, 3984]
14107
+ mov x24, 0
14108
+.L1830:
14109
+ ldr w2, [x0, x24, lsl 2]
14110
+ add x27, x0, x24, lsl 2
14111
+ ldr w1, [x22, x24, lsl 2]
14112
+ add x28, x22, x24, lsl 2
14113
+ cmp w2, w1
14114
+ beq .L1833
1265814115 mov x2, 512
1265914116 mov w1, 0
12660
- str x3, [x29, 152]
1266114117 bl memset
12662
- ldr x3, [x29, 152]
12663
- mov w1, w22
12664
- ldr w2, [x26]
12665
- mov w4, w23
12666
- adrp x0, .LC131
12667
- add x0, x0, :lo12:.LC131
12668
- ldr w3, [x3]
12669
- bl sftl_printk
12670
- ldrh w1, [x27, 10]
12671
- mov w0, 0
12672
- ldr x2, [x27, 3368]
12673
- mul w1, w1, w22
12674
- blr x2
12675
-.L1817:
12676
- ldr w22, [x29, 144]
12677
- b .L1797
12678
-.L1828:
12679
- mov w23, 6
12680
- b .L1798
12681
-.L1830:
12682
- mov x26, 0
12683
- b .L1800
12684
-.L1802:
12685
- lsl w0, w1, 2
12686
- b .L1853
12687
-.L1804:
12688
- ldr x8, [x27, 3376]
12689
- add x3, x29, 168
12690
- ldr w0, [x29, 152]
12691
- mov x2, x7
12692
- str x7, [x29, 128]
12693
- add w1, w1, w0
12694
- mov w0, 0
12695
- blr x8
12696
- cmn w0, #1
12697
- beq .L1808
12698
- ldr x7, [x29, 128]
12699
- add x7, x7, 2048
12700
-.L1805:
12701
- add x28, x28, 1
12702
- b .L1801
12703
-.L1806:
12704
- ldr x1, [x1, 40]
12705
- mov w23, 6
12706
- cmp x1, 0
12707
- mov w1, 9
12708
- csel w1, w23, w1, eq
12709
- b .L1854
12710
-.L1811:
12711
- ldr x7, [x27, 3384]
12712
- add x3, x29, 168
12713
- ldr w0, [x29, 152]
12714
- mov x2, x28
12715
- add w1, w0, w1
12716
- mov w0, 0
12717
- blr x7
12718
- cmn w0, #1
12719
- beq .L1814
12720
- ldr w0, [x29, 172]
12721
- mov w1, 61424
12722
- cmp w0, w1
12723
- bne .L1814
12724
- add x28, x28, 2048
12725
-.L1812:
12726
- add x26, x26, 1
12727
- b .L1810
12728
-.L1816:
12729
- ldr w3, [x29, 140]
12730
- add w23, w23, 1
12731
- cmp w23, w3
12732
- bne .L1813
12733
- add w25, w25, 1
12734
- cmp w25, 5
12735
- bls .L1817
12736
- b .L1820
12737
-.L1789:
12738
- cmp w19, 64
12739
- bne .L1821
12740
- add x25, x20, :lo12:.LANCHOR0
12741
- mov w0, 262144
12742
- bl ftl_malloc
12743
- str x0, [x25, 3984]
12744
- mov w0, 262144
12745
- bl ftl_malloc
12746
- mov x1, x0
12747
- ldr x0, [x25, 3984]
12748
- str x1, [x25, 3992]
12749
- cbz x0, .L1822
12750
- cbz x1, .L1822
12751
- mov w1, 1
12752
- mov w2, 262144
12753
- str w1, [x25, 3976]
12754
- mov w1, 0
12755
- bl ftl_memset
12756
-.L1821:
12757
- add x20, x20, :lo12:.LANCHOR0
12758
- ldr w0, [x20, 3976]
12759
- cbz w0, .L1855
12760
- cmp w19, 63
12761
- ldr x0, [x20, 3984]
12762
- bhi .L1824
12763
- mov w1, 64
12764
- sub w19, w1, w19
12765
- sub w21, w21, w19
12766
- ubfiz x19, x19, 9, 25
12767
- add x1, x22, x19
12768
-.L1825:
12769
- cmp w24, 575
12770
- bls .L1826
12771
- sub w21, w21, w23
12772
- sub w21, w21, #446
12773
-.L1826:
12774
- lsl w2, w21, 9
12775
- bl ftl_memcpy
12776
- b .L1855
12777
-.L1822:
12778
- adrp x1, .LANCHOR1
12779
- add x1, x1, :lo12:.LANCHOR1
12780
- add x1, x1, 752
14118
+ ldr w2, [x27]
14119
+ mov w1, w21
14120
+ ldr w3, [x28]
14121
+ mov w4, w24
1278114122 adrp x0, .LC132
1278214123 add x0, x0, :lo12:.LC132
1278314124 bl sftl_printk
12784
- b .L1821
12785
-.L1824:
12786
- lsl w2, w19, 7
12787
- mov x1, x22
12788
- sub w2, w2, #8192
12789
- add x0, x0, x2, lsl 2
12790
- b .L1825
12791
-.L1827:
14125
+ ldrh w1, [x25, 10]
14126
+ mov w0, 0
14127
+ ldr x2, [x25, 3360]
14128
+ mul w1, w1, w21
14129
+ blr x2
14130
+.L1834:
14131
+ ldr w21, [sp, 104]
14132
+ b .L1814
14133
+.L1845:
14134
+ mov w24, 6
14135
+ b .L1815
14136
+.L1847:
14137
+ mov x28, 0
14138
+ b .L1817
14139
+.L1821:
14140
+ ldr x8, [x25, 3368]
14141
+ add x3, sp, 136
14142
+ ldr w0, [sp, 96]
14143
+ mov x2, x27
14144
+ add w1, w0, w26
14145
+ mov w0, 0
14146
+ blr x8
14147
+ cmn w0, #1
14148
+ beq .L1825
14149
+ add x27, x27, 2048
14150
+.L1822:
14151
+ add w26, w26, 1
14152
+ b .L1818
14153
+.L1823:
14154
+ ldr x1, [x1, 40]
14155
+ mov w24, 6
14156
+ cmp x1, 0
14157
+ mov w1, 9
14158
+ csel w1, w24, w1, eq
14159
+ b .L1868
14160
+.L1828:
14161
+ ldr x6, [x25, 3376]
14162
+ add x3, sp, 136
14163
+ mov x2, x26
14164
+ add w1, w27, w28
14165
+ mov w0, 0
14166
+ blr x6
14167
+ cmn w0, #1
14168
+ beq .L1831
14169
+ ldr w0, [sp, 140]
14170
+ mov w1, 61424
14171
+ cmp w0, w1
14172
+ bne .L1831
14173
+ add x26, x26, 2048
14174
+.L1829:
14175
+ add w28, w28, 1
14176
+ b .L1827
14177
+.L1833:
14178
+ ldr w1, [sp, 100]
14179
+ add x24, x24, 1
14180
+ cmp w1, w24
14181
+ bhi .L1830
14182
+ add w23, w23, 1
14183
+ cmp w23, 5
14184
+ bls .L1834
14185
+.L1835:
14186
+ ldr x0, [x25, 3976]
14187
+ str wzr, [x25, 3968]
14188
+ bl kfree
14189
+ ldr x0, [x25, 3984]
14190
+ bl kfree
14191
+.L1804:
14192
+ mrs x0, sp_el0
14193
+ ldr x1, [sp, 200]
14194
+ ldr x2, [x0, 1376]
14195
+ subs x1, x1, x2
14196
+ mov x2, 0
14197
+ beq .L1844
14198
+ bl __stack_chk_fail
14199
+.L1806:
14200
+ mov x21, x2
14201
+ cmp w20, 64
14202
+ bne .L1837
14203
+ mov w0, 262144
14204
+ bl ftl_malloc
14205
+ str x0, [x25, 3976]
14206
+ mov w0, 262144
14207
+ bl ftl_malloc
14208
+ mov x1, x0
14209
+ ldr x0, [x25, 3976]
14210
+ str x1, [x25, 3984]
14211
+ cbz x0, .L1838
14212
+ cbz x1, .L1838
14213
+ mov w1, 1
14214
+ mov w2, 262144
14215
+ str w1, [x25, 3968]
14216
+ mov w1, 0
14217
+ bl ftl_memset
14218
+.L1839:
14219
+ sub w1, w20, #64
14220
+ ldr x0, [x25, 3976]
14221
+ cmp w20, 63
14222
+ bhi .L1841
14223
+ add w19, w19, w1
14224
+ mov w1, 64
14225
+ sub w20, w1, w20
14226
+ ubfiz x20, x20, 9, 25
14227
+ add x21, x21, x20
14228
+.L1842:
14229
+ cmp w23, 575
14230
+ bls .L1843
14231
+ sub w19, w19, w22
14232
+ add w19, w19, 576
14233
+.L1843:
14234
+ lsl w2, w19, 9
14235
+ mov x1, x21
14236
+ bl ftl_memcpy
14237
+ b .L1869
14238
+.L1838:
14239
+ adrp x1, .LANCHOR1
14240
+ add x1, x1, :lo12:.LANCHOR1
14241
+ adrp x0, .LC133
14242
+ add x1, x1, 633
14243
+ add x0, x0, :lo12:.LC133
14244
+ bl sftl_printk
14245
+.L1837:
14246
+ ldr w0, [x25, 3968]
14247
+ cbnz w0, .L1839
14248
+ b .L1869
14249
+.L1841:
14250
+ ubfiz x1, x1, 9, 25
14251
+ add x0, x0, x1
14252
+ b .L1842
14253
+.L1844:
14254
+ mov w0, w19
1279214255 ldp x19, x20, [sp, 16]
1279314256 ldp x21, x22, [sp, 32]
1279414257 ldp x23, x24, [sp, 48]
1279514258 ldp x25, x26, [sp, 64]
1279614259 ldp x27, x28, [sp, 80]
12797
- ldp x29, x30, [sp], 240
14260
+ ldp x29, x30, [sp], 208
14261
+ hint 29 // autiasp
1279814262 ret
1279914263 .size FtlWriteToIDB, .-FtlWriteToIDB
1280014264 .align 2
1280114265 .global sftl_write
1280214266 .type sftl_write, %function
1280314267 sftl_write:
14268
+ hint 34 // bti c
14269
+ .section __patchable_function_entries
14270
+ .align 3
14271
+ .8byte .LPFE136
14272
+ .text
14273
+.LPFE136:
14274
+ nop
14275
+ nop
14276
+ hint 25 // paciasp
1280414277 stp x29, x30, [sp, -48]!
12805
- add x29, sp, 0
14278
+ mov x29, sp
1280614279 stp x19, x20, [sp, 16]
1280714280 mov w20, w1
1280814281 mov w19, w0
....@@ -12814,622 +14287,523 @@
1281414287 mov w1, w19
1281514288 mov w0, 0
1281614289 bl FtlWrite
12817
- ldr x21, [sp, 32]
1281814290 ldp x19, x20, [sp, 16]
14291
+ ldr x21, [sp, 32]
1281914292 ldp x29, x30, [sp], 48
14293
+ hint 29 // autiasp
1282014294 ret
1282114295 .size sftl_write, .-sftl_write
1282214296 .align 2
1282314297 .global rk_sftl_vendor_dev_ops_register
1282414298 .type rk_sftl_vendor_dev_ops_register, %function
1282514299 rk_sftl_vendor_dev_ops_register:
14300
+ hint 34 // bti c
14301
+ .section __patchable_function_entries
14302
+ .align 3
14303
+ .8byte .LPFE137
14304
+ .text
14305
+.LPFE137:
14306
+ nop
14307
+ nop
1282614308 adrp x2, .LANCHOR0
1282714309 add x2, x2, :lo12:.LANCHOR0
12828
- ldr x3, [x2, 4000]
12829
- cbnz x3, .L1860
12830
- str x0, [x2, 4000]
14310
+ hint 25 // paciasp
14311
+ ldr x3, [x2, 3992]
14312
+ cbnz x3, .L1874
14313
+ str x0, [x2, 3992]
1283114314 mov w0, 0
12832
- str x1, [x2, 4008]
14315
+ str x1, [x2, 4000]
14316
+.L1872:
14317
+ hint 29 // autiasp
1283314318 ret
12834
-.L1860:
14319
+.L1874:
1283514320 mov w0, -1
12836
- ret
14321
+ b .L1872
1283714322 .size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register
1283814323 .align 2
1283914324 .global rk_sftl_vendor_storage_init
1284014325 .type rk_sftl_vendor_storage_init, %function
1284114326 rk_sftl_vendor_storage_init:
12842
- stp x29, x30, [sp, -80]!
14327
+ hint 34 // bti c
14328
+ .section __patchable_function_entries
14329
+ .align 3
14330
+ .8byte .LPFE138
14331
+ .text
14332
+.LPFE138:
14333
+ nop
14334
+ nop
14335
+ hint 25 // paciasp
14336
+ stp x29, x30, [sp, -64]!
1284314337 mov w0, 65536
12844
- add x29, sp, 0
14338
+ mov x29, sp
1284514339 stp x19, x20, [sp, 16]
1284614340 adrp x20, .LANCHOR0
12847
- stp x21, x22, [sp, 32]
12848
- add x22, x20, :lo12:.LANCHOR0
12849
- stp x23, x24, [sp, 48]
12850
- stp x25, x26, [sp, 64]
12851
- bl ftl_malloc
12852
- str x0, [x22, 4016]
12853
- cbz x0, .L1867
12854
- mov w26, 22084
12855
- mov w25, 0
12856
- mov w24, 0
12857
- mov w23, 0
12858
- movk w26, 0x524b, lsl 16
12859
-.L1865:
12860
- ldr x3, [x22, 4000]
12861
- mov w1, 128
12862
- ldr x2, [x22, 4016]
12863
- lsl w0, w23, 7
12864
- blr x3
12865
- mov w21, w0
12866
- cbnz w0, .L1863
12867
- ldr x19, [x22, 4016]
12868
- ldr w0, [x19]
12869
- cmp w0, w26
12870
- bne .L1864
12871
- add x0, x19, 61440
12872
- ldr w1, [x19, 4]
12873
- ldr w0, [x0, 4092]
12874
- cmp w0, w1
12875
- bne .L1864
12876
- cmp w0, w24
12877
- bls .L1864
12878
- mov w25, w23
12879
- mov w24, w0
12880
-.L1864:
12881
- add w23, w23, 1
12882
- cmp w23, 2
12883
- bne .L1865
12884
- cbz w24, .L1866
12885
- add x0, x20, :lo12:.LANCHOR0
12886
- mov x2, x19
12887
- mov w1, 128
12888
- ldr x3, [x0, 4000]
12889
- lsl w0, w25, 7
12890
- blr x3
12891
- mov w21, w0
12892
- cbz w0, .L1861
12893
-.L1863:
1289414341 add x20, x20, :lo12:.LANCHOR0
12895
- mov w21, -1
12896
- ldr x0, [x20, 4016]
14342
+ stp x21, x22, [sp, 32]
14343
+ stp x23, x24, [sp, 48]
14344
+ bl ftl_malloc
14345
+ str x0, [x20, 4008]
14346
+ cbz x0, .L1882
14347
+ mov w24, 22084
14348
+ mov w23, 0
14349
+ mov w22, 0
14350
+ mov w21, 0
14351
+ movk w24, 0x524b, lsl 16
14352
+.L1880:
14353
+ ldr x3, [x20, 3992]
14354
+ lsl w0, w21, 7
14355
+ ldr x2, [x20, 4008]
14356
+ mov w1, 128
14357
+ blr x3
14358
+ mov w19, w0
14359
+ cbnz w0, .L1878
14360
+ ldr x3, [x20, 4008]
14361
+ ldr w0, [x3]
14362
+ cmp w0, w24
14363
+ bne .L1879
14364
+ add x0, x3, 49152
14365
+ ldr w1, [x3, 4]
14366
+ ldr w0, [x0, 16380]
14367
+ cmp w0, w1
14368
+ bne .L1879
14369
+ cmp w0, w22
14370
+ bls .L1879
14371
+ mov w23, w21
14372
+ mov w22, w0
14373
+.L1879:
14374
+ cbz w21, .L1883
14375
+ cbz w22, .L1881
14376
+ ldr x4, [x20, 3992]
14377
+ mov x2, x3
14378
+ lsl w0, w23, 7
14379
+ mov w1, 128
14380
+ blr x4
14381
+ mov w19, w0
14382
+ cbz w0, .L1876
14383
+.L1878:
14384
+ ldr x0, [x20, 4008]
14385
+ mov w19, -1
1289714386 bl kfree
12898
- str xzr, [x20, 4016]
12899
- b .L1861
12900
-.L1866:
12901
- mov w1, 0
14387
+ str xzr, [x20, 4008]
14388
+ b .L1876
14389
+.L1883:
14390
+ mov w21, 1
14391
+ b .L1880
14392
+.L1881:
14393
+ mov x0, x3
1290214394 mov x2, 65536
12903
- mov x0, x19
14395
+ mov w1, 0
1290414396 bl memset
12905
- mov w1, 22084
12906
- mov w0, 1
12907
- movk w1, 0x524b, lsl 16
12908
- stp w1, w0, [x19]
12909
- add x1, x19, 61440
12910
- str w0, [x1, 4092]
14397
+ mov x3, x0
14398
+ mov x0, 22084
14399
+ movk x0, 0x524b, lsl 16
14400
+ movk x0, 0x1, lsl 32
14401
+ str x0, [x3]
14402
+ add x0, x3, 49152
14403
+ str w21, [x0, 16380]
1291114404 mov w0, -1032
12912
- strh w0, [x19, 14]
12913
-.L1861:
12914
- mov w0, w21
14405
+ strh w0, [x3, 14]
14406
+.L1876:
14407
+ mov w0, w19
1291514408 ldp x19, x20, [sp, 16]
1291614409 ldp x21, x22, [sp, 32]
1291714410 ldp x23, x24, [sp, 48]
12918
- ldp x25, x26, [sp, 64]
12919
- ldp x29, x30, [sp], 80
14411
+ ldp x29, x30, [sp], 64
14412
+ hint 29 // autiasp
1292014413 ret
12921
-.L1867:
12922
- mov w21, -12
12923
- b .L1861
14414
+.L1882:
14415
+ mov w19, -12
14416
+ b .L1876
1292414417 .size rk_sftl_vendor_storage_init, .-rk_sftl_vendor_storage_init
1292514418 .align 2
1292614419 .global rk_sftl_vendor_read
1292714420 .type rk_sftl_vendor_read, %function
1292814421 rk_sftl_vendor_read:
12929
- adrp x3, .LANCHOR0+4016
12930
- ldr x4, [x3, #:lo12:.LANCHOR0+4016]
12931
- cbz x4, .L1875
12932
- ldrh w6, [x4, 10]
12933
- add x5, x4, 16
12934
- mov w3, 0
12935
-.L1872:
12936
- cmp w3, w6
12937
- bcc .L1874
12938
-.L1875:
14422
+ hint 34 // bti c
14423
+ .section __patchable_function_entries
14424
+ .align 3
14425
+ .8byte .LPFE139
14426
+ .text
14427
+.LPFE139:
14428
+ nop
14429
+ nop
14430
+ mov w5, w0
14431
+ mov x0, x1
14432
+ adrp x1, .LANCHOR0+4008
14433
+ ldr x4, [x1, #:lo12:.LANCHOR0+4008]
14434
+ cbz x4, .L1889
14435
+ ldrh w1, [x4, 10]
14436
+ add x6, x4, 16
14437
+ mov x3, 0
14438
+.L1887:
14439
+ cmp w1, w3
14440
+ bhi .L1888
14441
+.L1889:
1293914442 mov w0, -1
1294014443 ret
12941
-.L1874:
12942
- ldrh w7, [x5], 8
12943
- cmp w7, w0
12944
- bne .L1873
14444
+.L1888:
14445
+ add x7, x3, 1
14446
+ lsl x3, x3, 3
14447
+ ldrh w8, [x6, x3]
14448
+ cmp w8, w5
14449
+ bne .L1890
14450
+ hint 25 // paciasp
1294514451 stp x29, x30, [sp, -32]!
12946
- add x3, x4, x3, uxtw 3
12947
- mov x0, x1
12948
- add x29, sp, 0
14452
+ add x3, x4, x3
14453
+ mov x29, sp
1294914454 str x19, [sp, 16]
12950
- ldrh w19, [x3, 20]
14455
+ ldrh w5, [x3, 20]
1295114456 ldrh w1, [x3, 18]
12952
- cmp w19, w2
12953
- csel w19, w19, w2, ls
14457
+ cmp w5, w2
1295414458 add x1, x1, 1024
12955
- uxtw x2, w19
14459
+ csel w19, w5, w2, ls
1295614460 add x1, x4, x1
14461
+ csel w2, w5, w2, ls
1295714462 bl memcpy
1295814463 mov w0, w19
1295914464 ldr x19, [sp, 16]
1296014465 ldp x29, x30, [sp], 32
14466
+ hint 29 // autiasp
1296114467 ret
12962
-.L1873:
12963
- add w3, w3, 1
12964
- b .L1872
14468
+.L1890:
14469
+ mov x3, x7
14470
+ b .L1887
1296514471 .size rk_sftl_vendor_read, .-rk_sftl_vendor_read
1296614472 .align 2
1296714473 .global rk_sftl_vendor_write
1296814474 .type rk_sftl_vendor_write, %function
1296914475 rk_sftl_vendor_write:
14476
+ hint 34 // bti c
14477
+ .section __patchable_function_entries
14478
+ .align 3
14479
+ .8byte .LPFE140
14480
+ .text
14481
+.LPFE140:
14482
+ nop
14483
+ nop
14484
+ hint 25 // paciasp
1297014485 stp x29, x30, [sp, -128]!
12971
- add x29, sp, 0
12972
- stp x23, x24, [sp, 48]
12973
- adrp x23, .LANCHOR0
12974
- add x3, x23, :lo12:.LANCHOR0
12975
- stp x19, x20, [sp, 16]
14486
+ mov x29, sp
1297614487 stp x21, x22, [sp, 32]
14488
+ adrp x22, .LANCHOR0
14489
+ add x22, x22, :lo12:.LANCHOR0
14490
+ stp x19, x20, [sp, 16]
14491
+ ldr x19, [x22, 4008]
14492
+ stp x23, x24, [sp, 48]
1297714493 stp x25, x26, [sp, 64]
1297814494 stp x27, x28, [sp, 80]
12979
- ldr x19, [x3, 4016]
12980
- cbz x19, .L1895
14495
+ cbz x19, .L1910
1298114496 add w21, w2, 63
1298214497 ldrh w3, [x19, 10]
12983
- ldrh w24, [x19, 8]
14498
+ ldrh w23, [x19, 8]
14499
+ mov w7, w0
1298414500 mov x4, x1
12985
- mov w28, w2
14501
+ mov w27, w2
1298614502 and w21, w21, -64
12987
- add x1, x19, 16
12988
- mov w20, 0
12989
-.L1882:
12990
- cmp w20, w3
12991
- bcc .L1890
14503
+ add x0, x19, 16
14504
+ mov x20, 0
14505
+.L1897:
14506
+ mov w25, w20
14507
+ cmp w3, w20
14508
+ bhi .L1904
1299214509 ldrh w1, [x19, 14]
12993
- cmp w21, w1
12994
- bhi .L1895
12995
- add x3, x19, x3, uxth 3
14510
+ cmp w1, w21
14511
+ bcc .L1910
14512
+ add x3, x19, w3, uxth 3
1299614513 and w21, w21, 65535
12997
- uxtw x2, w28
12998
- strh w0, [x3, 16]
14514
+ strh w7, [x3, 16]
1299914515 ldrh w0, [x19, 12]
1300014516 strh w0, [x3, 18]
13001
- strh w28, [x3, 20]
13002
- add w0, w0, w21
14517
+ strh w27, [x3, 20]
14518
+ add w2, w0, w21
1300314519 sub w21, w1, w21
13004
- strh w0, [x19, 12]
13005
- strh w21, [x19, 14]
13006
- mov x1, x4
13007
- ldrh w0, [x3, 18]
14520
+ and x0, x0, 65535
14521
+ strh w2, [x19, 12]
1300814522 add x0, x0, 1024
14523
+ strh w21, [x19, 14]
14524
+ uxtw x2, w27
14525
+ mov x1, x4
1300914526 add x0, x19, x0
1301014527 bl memcpy
1301114528 ldrh w0, [x19, 10]
1301214529 add w0, w0, 1
1301314530 strh w0, [x19, 10]
13014
- b .L1897
13015
-.L1890:
13016
- ldrh w6, [x1], 8
13017
- cmp w6, w0
13018
- bne .L1883
13019
- uxtw x27, w20
14531
+ b .L1912
14532
+.L1904:
14533
+ add x1, x20, 1
14534
+ lsl x20, x20, 3
14535
+ ldrh w2, [x0, x20]
14536
+ cmp w2, w7
14537
+ bne .L1908
14538
+ add x20, x19, x20
1302014539 add x5, x19, 1024
13021
- add x22, x19, x27, lsl 3
13022
- ldrh w25, [x22, 20]
13023
- add w25, w25, 63
13024
- and w25, w25, -64
13025
- cmp w28, w25
13026
- bls .L1884
14540
+ ldrh w26, [x20, 20]
14541
+ add w26, w26, 63
14542
+ and w26, w26, -64
14543
+ cmp w27, w26
14544
+ bls .L1898
1302714545 ldrh w0, [x19, 14]
13028
- cmp w21, w0
13029
- bhi .L1895
13030
- add x27, x27, 2
13031
- ldrh w22, [x22, 18]
13032
- add x27, x19, x27, lsl 3
13033
- sub w26, w3, #1
13034
-.L1885:
13035
- cmp w20, w26
13036
- bcc .L1886
13037
- add x20, x19, x20, uxtw 3
13038
- and w22, w22, 65535
13039
- add x0, x5, x22, uxth
13040
- uxtw x2, w28
14546
+ cmp w0, w21
14547
+ bcc .L1910
14548
+ ldrh w6, [x20, 18]
14549
+ sub w24, w3, #1
14550
+.L1899:
14551
+ and w28, w6, 65535
14552
+ add x20, x20, 8
14553
+ cmp w24, w25
14554
+ bhi .L1900
14555
+ add x25, x19, w25, uxtw 3
14556
+ add x0, x5, w28, uxth
14557
+ uxtw x2, w27
1304114558 mov x1, x4
1304214559 and w21, w21, 65535
13043
- strh w22, [x20, 18]
13044
- add w22, w22, w21
13045
- strh w6, [x20, 16]
13046
- strh w28, [x20, 20]
14560
+ strh w7, [x25, 16]
14561
+ strh w28, [x25, 18]
14562
+ add w28, w21, w28
14563
+ strh w27, [x25, 20]
1304714564 bl memcpy
13048
- strh w22, [x19, 12]
14565
+ strh w28, [x19, 12]
1304914566 ldrh w0, [x19, 14]
1305014567 sub w21, w0, w21
13051
- add w25, w21, w25
13052
- strh w25, [x19, 14]
13053
-.L1897:
14568
+ add w26, w21, w26
14569
+ strh w26, [x19, 14]
14570
+.L1912:
1305414571 ldr w0, [x19, 4]
13055
- add x1, x19, 61440
13056
- add x23, x23, :lo12:.LANCHOR0
13057
- mov x2, x19
14572
+ add x1, x19, 49152
14573
+ ldr x3, [x22, 4000]
1305814574 add w0, w0, 1
1305914575 str w0, [x19, 4]
13060
- str w0, [x1, 4092]
14576
+ mov x2, x19
14577
+ str w0, [x1, 16380]
1306114578 mov w1, 128
13062
- ldr x3, [x23, 4008]
1306314579 ldrh w0, [x19, 8]
1306414580 add w0, w0, 1
1306514581 and w0, w0, 65535
1306614582 cmp w0, 1
1306714583 csel w0, w0, wzr, ls
1306814584 strh w0, [x19, 8]
13069
- lsl w0, w24, 7
14585
+ lsl w0, w23, 7
1307014586 blr x3
1307114587 mov w0, 0
13072
-.L1880:
14588
+.L1895:
1307314589 ldp x19, x20, [sp, 16]
1307414590 ldp x21, x22, [sp, 32]
1307514591 ldp x23, x24, [sp, 48]
1307614592 ldp x25, x26, [sp, 64]
1307714593 ldp x27, x28, [sp, 80]
1307814594 ldp x29, x30, [sp], 128
14595
+ hint 29 // autiasp
1307914596 ret
13080
-.L1886:
13081
- add w20, w20, 1
13082
- str x4, [x29, 104]
13083
- add x0, x19, x20, uxtw 3
13084
- str x5, [x29, 120]
13085
- add x27, x27, 8
13086
- ldrh w1, [x0, 16]
13087
- strh w1, [x27, -8]
13088
- ldrh w1, [x0, 20]
13089
- strh w1, [x27, -4]
13090
- strh w22, [x27, -6]
13091
- ldrh w3, [x0, 20]
13092
- ldrh w1, [x0, 18]
13093
- add x0, x5, x22, uxtw
13094
- add w3, w3, 63
13095
- and w3, w3, -64
14597
+.L1900:
14598
+ add w25, w25, 1
14599
+ str x5, [sp, 104]
14600
+ stp w6, w7, [sp, 112]
14601
+ add x1, x19, w25, uxtw 3
14602
+ str x4, [sp, 120]
14603
+ ldrh w0, [x1, 16]
14604
+ strh w0, [x20, 8]
14605
+ ldrh w0, [x1, 20]
14606
+ strh w28, [x20, 10]
14607
+ strh w0, [x20, 12]
14608
+ add x0, x5, w6, uxtw
14609
+ ldrh w2, [x1, 20]
14610
+ ldrh w1, [x1, 18]
14611
+ add w2, w2, 63
14612
+ and w28, w2, -64
1309614613 add x1, x5, x1
13097
- and x2, x3, 131008
13098
- stp w6, w3, [x29, 112]
14614
+ and x2, x2, 131008
1309914615 bl memcpy
13100
- ldp w6, w3, [x29, 112]
13101
- ldr x4, [x29, 104]
13102
- add w22, w22, w3
13103
- ldr x5, [x29, 120]
13104
- b .L1885
13105
-.L1884:
13106
- ldrh w0, [x22, 18]
13107
- uxtw x2, w28
14616
+ ldp w6, w7, [sp, 112]
14617
+ ldr x5, [sp, 104]
14618
+ add w6, w6, w28
14619
+ ldr x4, [sp, 120]
14620
+ b .L1899
14621
+.L1898:
14622
+ ldrh w0, [x20, 18]
14623
+ uxtw x2, w27
1310814624 mov x1, x4
1310914625 add x0, x5, x0
1311014626 bl memcpy
13111
- strh w28, [x22, 20]
14627
+ strh w27, [x20, 20]
14628
+ b .L1912
14629
+.L1908:
14630
+ mov x20, x1
1311214631 b .L1897
13113
-.L1883:
13114
- add w20, w20, 1
13115
- b .L1882
13116
-.L1895:
14632
+.L1910:
1311714633 mov w0, -1
13118
- b .L1880
14634
+ b .L1895
1311914635 .size rk_sftl_vendor_write, .-rk_sftl_vendor_write
14636
+ .section .rodata.str1.1
14637
+.LC134:
14638
+ .string "copy_from_user error %d %p %p\n"
14639
+ .text
1312014640 .align 2
1312114641 .global rk_sftl_vendor_storage_ioctl
1312214642 .type rk_sftl_vendor_storage_ioctl, %function
1312314643 rk_sftl_vendor_storage_ioctl:
13124
- stp x29, x30, [sp, -64]!
14644
+ hint 34 // bti c
14645
+ .section __patchable_function_entries
14646
+ .align 3
14647
+ .8byte .LPFE141
14648
+ .text
14649
+.LPFE141:
14650
+ nop
14651
+ nop
14652
+ hint 25 // paciasp
14653
+ stp x29, x30, [sp, -48]!
1312514654 mov w0, 4096
13126
- add x29, sp, 0
14655
+ mov x29, sp
1312714656 stp x19, x20, [sp, 16]
1312814657 mov x20, x2
13129
- stp x21, x22, [sp, 32]
14658
+ str x21, [sp, 32]
1313014659 mov w21, w1
13131
- str x23, [sp, 48]
1313214660 bl ftl_malloc
13133
- cbz x0, .L1920
14661
+ cbz x0, .L1924
14662
+ mov w1, 30209
1313414663 mov x19, x0
13135
- mov w0, 30209
13136
- movk w0, 0x4004, lsl 16
13137
- cmp w21, w0
13138
- beq .L1901
13139
- add w0, w0, 1
13140
- cmp w21, w0
13141
- beq .L1902
13142
-.L1936:
14664
+ movk w1, 0x4004, lsl 16
14665
+ cmp w21, w1
14666
+ beq .L1915
14667
+ add w1, w1, 1
14668
+ cmp w21, w1
14669
+ beq .L1916
14670
+.L1934:
1314314671 mov x20, -14
13144
- b .L1900
13145
-.L1901:
13146
-#APP
13147
-// 19 "./arch/arm64/include/asm/current.h" 1
13148
- mrs x0, sp_el0
13149
-// 0 "" 2
13150
-#NO_APP
13151
- ldr w2, [x0, 44]
13152
- ldr x1, [x0, 8]
13153
- tbnz x2, 21, .L1903
13154
- ldr x0, [x0]
13155
- tbz x0, 26, .L1922
13156
-.L1903:
13157
- sbfx x0, x20, 0, 56
13158
- and x0, x0, x20
13159
-.L1904:
13160
-#APP
13161
-// 89 "./arch/arm64/include/asm/uaccess.h" 1
13162
- adds x0, x0, 8
13163
- csel x1, xzr, x1, hi
13164
- csinv x0, x0, xzr, cc
13165
- sbcs xzr, x0, x1
13166
- cset x0, ls
13167
-
13168
-// 0 "" 2
13169
-#NO_APP
13170
- cbz x0, .L1923
13171
- sbfx x21, x20, 0, 56
13172
-#APP
13173
-// 19 "./arch/arm64/include/asm/current.h" 1
13174
- mrs x22, sp_el0
13175
-// 0 "" 2
13176
-#NO_APP
13177
- and x21, x21, x20
13178
- ldr x0, [x22, 8]
13179
-#APP
13180
-// 249 "./arch/arm64/include/asm/uaccess.h" 1
13181
- bics xzr, x21, x0
13182
- csel x1, x20, xzr, eq
13183
-
13184
-// 0 "" 2
13185
-// 257 "./arch/arm64/include/asm/uaccess.h" 1
13186
- hint #20
13187
-// 0 "" 2
13188
-#NO_APP
13189
- mov x2, 8
14672
+.L1917:
1319014673 mov x0, x19
13191
- bl __arch_copy_from_user
13192
- mov x2, x0
13193
- cbz x0, .L1906
13194
-.L1905:
13195
- sub x0, x19, x2
13196
- mov w1, 0
13197
- add x0, x0, 8
13198
- bl memset
14674
+ bl kfree
14675
+.L1913:
14676
+ mov x0, x20
14677
+ ldp x19, x20, [sp, 16]
14678
+ ldr x21, [sp, 32]
14679
+ ldp x29, x30, [sp], 48
14680
+ hint 29 // autiasp
14681
+ ret
14682
+.L1915:
14683
+ mov x1, x20
14684
+ mov x2, 8
14685
+ bl _copy_from_user
14686
+ cbz x0, .L1918
1319914687 mov x2, x20
1320014688 mov w1, 256
13201
-.L1938:
13202
- adrp x0, .LC133
13203
- add x0, x0, :lo12:.LC133
14689
+.L1935:
14690
+ adrp x0, .LC134
14691
+ add x0, x0, :lo12:.LC134
1320414692 bl sftl_printk
13205
- b .L1936
13206
-.L1922:
13207
- mov x0, x20
13208
- b .L1904
13209
-.L1923:
13210
- mov x2, 8
13211
- b .L1905
13212
-.L1907:
13213
- strh w0, [x19, 6]
13214
- and x2, x0, 65535
13215
- add x2, x2, 8
13216
- ldr w0, [x22, 44]
13217
- ldr x1, [x22, 8]
13218
- tbnz x0, 21, .L1924
13219
- ldr x0, [x22]
13220
- tst x0, 67108864
13221
- csel x0, x21, x20, ne
13222
-.L1908:
13223
-#APP
13224
-// 89 "./arch/arm64/include/asm/uaccess.h" 1
13225
- adds x0, x0, x2
13226
- csel x1, xzr, x1, hi
13227
- csinv x0, x0, xzr, cc
13228
- sbcs xzr, x0, x1
13229
- cset x0, ls
13230
-
13231
-// 0 "" 2
13232
-#NO_APP
13233
- cbz x0, .L1936
13234
-#APP
13235
-// 19 "./arch/arm64/include/asm/current.h" 1
13236
- mrs x0, sp_el0
13237
-// 0 "" 2
13238
-#NO_APP
13239
- ldr x1, [x0, 8]
13240
-#APP
13241
-// 249 "./arch/arm64/include/asm/uaccess.h" 1
13242
- bics xzr, x21, x1
13243
- csel x0, x20, xzr, eq
13244
-
13245
-// 0 "" 2
13246
-// 257 "./arch/arm64/include/asm/uaccess.h" 1
13247
- hint #20
13248
-// 0 "" 2
13249
-#NO_APP
13250
- mov x20, 0
13251
- mov x1, x19
13252
- bl __arch_copy_to_user
13253
- cbz x0, .L1900
13254
- b .L1936
13255
-.L1924:
13256
- mov x0, x21
13257
- b .L1908
13258
-.L1902:
13259
-#APP
13260
-// 19 "./arch/arm64/include/asm/current.h" 1
13261
- mrs x0, sp_el0
13262
-// 0 "" 2
13263
-#NO_APP
13264
- ldr w2, [x0, 44]
13265
- ldr x1, [x0, 8]
13266
- tbnz x2, 21, .L1910
13267
- ldr x0, [x0]
13268
- tbz x0, 26, .L1927
13269
-.L1910:
13270
- sbfx x0, x20, 0, 56
13271
- and x0, x0, x20
13272
-.L1911:
13273
-#APP
13274
-// 89 "./arch/arm64/include/asm/uaccess.h" 1
13275
- adds x0, x0, 8
13276
- csel x1, xzr, x1, hi
13277
- csinv x0, x0, xzr, cc
13278
- sbcs xzr, x0, x1
13279
- cset x0, ls
13280
-
13281
-// 0 "" 2
13282
-#NO_APP
13283
- cbz x0, .L1928
13284
- sbfx x22, x20, 0, 56
13285
-#APP
13286
-// 19 "./arch/arm64/include/asm/current.h" 1
13287
- mrs x23, sp_el0
13288
-// 0 "" 2
13289
-#NO_APP
13290
- and x22, x22, x20
13291
- ldr x0, [x23, 8]
13292
-#APP
13293
-// 249 "./arch/arm64/include/asm/uaccess.h" 1
13294
- bics xzr, x22, x0
13295
- csel x1, x20, xzr, eq
13296
-
13297
-// 0 "" 2
13298
-// 257 "./arch/arm64/include/asm/uaccess.h" 1
13299
- hint #20
13300
-// 0 "" 2
13301
-#NO_APP
13302
- mov x2, 8
13303
- mov x0, x19
13304
- bl __arch_copy_from_user
13305
- mov x2, x0
13306
- cbz x0, .L1913
13307
-.L1912:
13308
- sub x0, x19, x2
13309
- mov w1, 0
13310
- add x0, x0, 8
13311
- bl memset
13312
- mov x2, x20
13313
- mov w1, 276
13314
- b .L1938
13315
-.L1927:
13316
- mov x0, x20
13317
- b .L1911
13318
-.L1928:
13319
- mov x2, 8
13320
- b .L1912
13321
-.L1929:
13322
- mov x0, x22
13323
- b .L1915
13324
-.L1931:
13325
- mov x0, x21
13326
- b .L1916
13327
-.L1920:
13328
- mov x20, -1
13329
- b .L1898
13330
-.L1906:
14693
+ b .L1934
14694
+.L1918:
1333114695 ldr w1, [x19]
1333214696 mov w0, 17745
1333314697 movk w0, 0x5652, lsl 16
1333414698 cmp w1, w0
13335
- bne .L1914
14699
+ beq .L1919
14700
+.L1920:
14701
+ mov x20, -1
14702
+ b .L1917
14703
+.L1919:
1333614704 ldrh w2, [x19, 6]
1333714705 add x1, x19, 8
1333814706 ldrh w0, [x19, 4]
1333914707 bl rk_sftl_vendor_read
1334014708 cmn w0, #1
13341
- bne .L1907
13342
-.L1914:
13343
- mov x20, -1
13344
-.L1900:
13345
- mov x0, x19
13346
- bl kfree
13347
-.L1898:
14709
+ beq .L1920
14710
+ strh w0, [x19, 6]
14711
+ and x0, x0, 65535
14712
+ add x21, x0, 8
1334814713 mov x0, x20
13349
- ldr x23, [sp, 48]
13350
- ldp x19, x20, [sp, 16]
13351
- ldp x21, x22, [sp, 32]
13352
- ldp x29, x30, [sp], 64
13353
- ret
13354
-.L1913:
13355
- ldr w1, [x19]
13356
- mov w0, 17745
13357
- movk w0, 0x5652, lsl 16
13358
- cmp w1, w0
13359
- bne .L1914
13360
- ldrh w21, [x19, 6]
13361
- cmp w21, 4087
13362
- bhi .L1914
13363
- ldr w0, [x23, 44]
13364
- add w21, w21, 8
13365
- sxtw x21, w21
13366
- ldr x1, [x23, 8]
13367
- tbnz x0, 21, .L1929
13368
- ldr x0, [x23]
13369
- tst x0, 67108864
13370
- csel x0, x22, x20, ne
13371
-.L1915:
13372
-#APP
13373
-// 89 "./arch/arm64/include/asm/uaccess.h" 1
13374
- adds x0, x0, x21
13375
- csel x1, xzr, x1, hi
13376
- csinv x0, x0, xzr, cc
13377
- sbcs xzr, x0, x1
13378
- cset x0, ls
13379
-
13380
-// 0 "" 2
13381
-#NO_APP
13382
- cbz x0, .L1931
14714
+ mov x1, x21
14715
+ bl __range_ok
14716
+ cbz x0, .L1934
14717
+ bl uaccess_enable_not_uao
14718
+ sbfx x1, x20, 0, 56
1338314719 #APP
1338414720 // 19 "./arch/arm64/include/asm/current.h" 1
1338514721 mrs x0, sp_el0
1338614722 // 0 "" 2
1338714723 #NO_APP
13388
- ldr x0, [x0, 8]
14724
+ and x1, x1, x20
14725
+ ldr x2, [x0, 8]
1338914726 #APP
13390
-// 249 "./arch/arm64/include/asm/uaccess.h" 1
13391
- bics xzr, x22, x0
13392
- csel x1, x20, xzr, eq
14727
+// 289 "./arch/arm64/include/asm/uaccess.h" 1
14728
+ bics xzr, x1, x2
14729
+ csel x0, x20, xzr, eq
1339314730
1339414731 // 0 "" 2
13395
-// 257 "./arch/arm64/include/asm/uaccess.h" 1
14732
+// 297 "./arch/arm64/include/asm/uaccess.h" 1
1339614733 hint #20
1339714734 // 0 "" 2
1339814735 #NO_APP
1339914736 mov x2, x21
13400
- mov x0, x19
13401
- bl __arch_copy_from_user
13402
- cbz x0, .L1917
14737
+ mov x1, x19
14738
+ mov x20, 0
14739
+ bl __arch_copy_to_user
14740
+ mov x21, x0
14741
+ bl uaccess_disable_not_uao
14742
+ cbz x21, .L1917
14743
+ b .L1934
1340314744 .L1916:
13404
- sub x21, x21, x0
13405
- mov x2, x0
13406
- mov w1, 0
13407
- add x0, x19, x21
13408
- bl memset
14745
+ mov x1, x20
14746
+ mov x2, 8
14747
+ bl _copy_from_user
14748
+ cbz x0, .L1922
14749
+ mov x2, x20
14750
+ mov w1, 276
14751
+ b .L1935
14752
+.L1922:
14753
+ ldr w1, [x19]
14754
+ mov w0, 17745
14755
+ movk w0, 0x5652, lsl 16
14756
+ cmp w1, w0
14757
+ bne .L1920
14758
+ ldrh w2, [x19, 6]
14759
+ cmp w2, 4087
14760
+ bhi .L1920
14761
+ add w2, w2, 8
14762
+ mov x1, x20
14763
+ and x2, x2, 65535
14764
+ mov x0, x19
14765
+ bl _copy_from_user
14766
+ cbz x0, .L1923
1340914767 mov x2, x20
1341014768 mov w1, 283
13411
- b .L1938
13412
-.L1917:
14769
+ b .L1935
14770
+.L1923:
1341314771 ldrh w2, [x19, 6]
1341414772 add x1, x19, 8
1341514773 ldrh w0, [x19, 4]
1341614774 bl rk_sftl_vendor_write
1341714775 sxtw x20, w0
13418
- b .L1900
14776
+ b .L1917
14777
+.L1924:
14778
+ mov x20, -1
14779
+ b .L1913
1341914780 .size rk_sftl_vendor_storage_ioctl, .-rk_sftl_vendor_storage_ioctl
1342014781 .align 2
1342114782 .global rk_sftl_vendor_register
1342214783 .type rk_sftl_vendor_register, %function
1342314784 rk_sftl_vendor_register:
14785
+ hint 34 // bti c
14786
+ .section __patchable_function_entries
14787
+ .align 3
14788
+ .8byte .LPFE142
14789
+ .text
14790
+.LPFE142:
14791
+ nop
14792
+ nop
14793
+ hint 25 // paciasp
1342414794 stp x29, x30, [sp, -16]!
1342514795 adrp x0, .LANCHOR2
14796
+ mov x29, sp
1342614797 add x0, x0, :lo12:.LANCHOR2
13427
- add x29, sp, 0
1342814798 add x0, x0, 16
1342914799 bl misc_register
1343014800 ldp x29, x30, [sp], 16
14801
+ hint 29 // autiasp
1343114802 ret
1343214803 .size rk_sftl_vendor_register, .-rk_sftl_vendor_register
14804
+ .section .rodata.str1.1
14805
+.LC135:
14806
+ .string "vendor_storage"
1343314807 .global g_nand_ops
1343414808 .global g_nand_phy_info
1343514809 .global gc_ink_free_return_value
....@@ -13581,193 +14955,162 @@
1358114955 .section .rodata
1358214956 .align 3
1358314957 .set .LANCHOR1,. + 0
13584
- .type __func__.5954, %object
13585
- .size __func__.5954, 17
13586
-__func__.5954:
14958
+ .type __func__.30, %object
14959
+ .size __func__.30, 17
14960
+__func__.30:
1358714961 .string "INSERT_DATA_LIST"
13588
- .zero 7
13589
- .type __func__.5949, %object
13590
- .size __func__.5949, 17
13591
-__func__.5949:
14962
+ .type __func__.31, %object
14963
+ .size __func__.31, 17
14964
+__func__.31:
1359214965 .string "INSERT_FREE_LIST"
13593
- .zero 7
13594
- .type __func__.5985, %object
13595
- .size __func__.5985, 17
13596
-__func__.5985:
14966
+ .type __func__.29, %object
14967
+ .size __func__.29, 17
14968
+__func__.29:
1359714969 .string "List_remove_node"
13598
- .zero 7
13599
- .type __func__.6017, %object
13600
- .size __func__.6017, 22
13601
-__func__.6017:
14970
+ .type __func__.28, %object
14971
+ .size __func__.28, 22
14972
+__func__.28:
1360214973 .string "List_update_data_list"
13603
- .zero 2
13604
- .type __func__.6124, %object
13605
- .size __func__.6124, 22
13606
-__func__.6124:
14974
+ .type __func__.22, %object
14975
+ .size __func__.22, 22
14976
+__func__.22:
1360714977 .string "select_l2p_ram_region"
13608
- .zero 2
13609
- .type __func__.6444, %object
13610
- .size __func__.6444, 16
13611
-__func__.6444:
14978
+ .type __func__.14, %object
14979
+ .size __func__.14, 16
14980
+__func__.14:
1361214981 .string "make_superblock"
13613
- .type __func__.6620, %object
13614
- .size __func__.6620, 19
13615
-__func__.6620:
14982
+ .type __func__.8, %object
14983
+ .size __func__.8, 19
14984
+__func__.8:
1361614985 .string "get_new_active_ppa"
13617
- .zero 5
13618
- .type __func__.13529, %object
13619
- .size __func__.13529, 17
13620
-__func__.13529:
14986
+ .type __func__.1, %object
14987
+ .size __func__.1, 17
14988
+__func__.1:
1362114989 .string "FlashEraseBlocks"
13622
- .zero 7
13623
- .type __func__.6059, %object
13624
- .size __func__.6059, 26
13625
-__func__.6059:
14990
+ .type __func__.26, %object
14991
+ .size __func__.26, 26
14992
+__func__.26:
1362614993 .string "ftl_map_blk_alloc_new_blk"
13627
- .zero 6
13628
- .type __func__.5564, %object
13629
- .size __func__.5564, 11
13630
-__func__.5564:
14994
+ .type __func__.37, %object
14995
+ .size __func__.37, 11
14996
+__func__.37:
1363114997 .string "FtlMemInit"
13632
- .zero 5
13633
- .type __func__.5791, %object
13634
- .size __func__.5791, 14
13635
-__func__.5791:
14998
+ .type __func__.34, %object
14999
+ .size __func__.34, 14
15000
+__func__.34:
1363615001 .string "FtlBbt2Bitmap"
13637
- .zero 2
13638
- .type __func__.6465, %object
13639
- .size __func__.6465, 18
13640
-__func__.6465:
15002
+ .type __func__.13, %object
15003
+ .size __func__.13, 18
15004
+__func__.13:
1364115005 .string "SupperBlkListInit"
13642
- .zero 6
13643
- .type __func__.13486, %object
13644
- .size __func__.13486, 15
13645
-__func__.13486:
15006
+ .type __func__.3, %object
15007
+ .size __func__.3, 15
15008
+__func__.3:
1364615009 .string "FlashReadPages"
13647
- .zero 1
13648
- .type __func__.6236, %object
13649
- .size __func__.6236, 14
13650
-__func__.6236:
15010
+ .type __func__.19, %object
15011
+ .size __func__.19, 14
15012
+__func__.19:
1365115013 .string "FtlScanSysBlk"
13652
- .zero 2
13653
- .type __func__.5834, %object
13654
- .size __func__.5834, 11
13655
-__func__.5834:
15014
+ .type __func__.32, %object
15015
+ .size __func__.32, 11
15016
+__func__.32:
1365615017 .string "FtlLoadBbt"
13657
- .zero 5
13658
- .type __func__.13505, %object
13659
- .size __func__.13505, 15
13660
-__func__.13505:
15018
+ .type __func__.2, %object
15019
+ .size __func__.2, 15
15020
+__func__.2:
1366115021 .string "FlashProgPages"
13662
- .zero 1
13663
- .type __func__.6592, %object
13664
- .size __func__.6592, 25
13665
-__func__.6592:
15022
+ .type __func__.10, %object
15023
+ .size __func__.10, 25
15024
+__func__.10:
1366615025 .string "allocate_data_superblock"
13667
- .zero 7
13668
- .type __func__.6633, %object
13669
- .size __func__.6633, 16
13670
-__func__.6633:
15026
+ .type __func__.7, %object
15027
+ .size __func__.7, 16
15028
+__func__.7:
1367115029 .string "update_vpc_list"
13672
- .type __func__.6640, %object
13673
- .size __func__.6640, 20
13674
-__func__.6640:
15030
+ .type __func__.6, %object
15031
+ .size __func__.6, 20
15032
+__func__.6:
1367515033 .string "decrement_vpc_count"
13676
- .zero 4
13677
- .type __func__.6085, %object
13678
- .size __func__.6085, 31
13679
-__func__.6085:
13680
- .string "Ftl_write_map_blk_to_last_page"
13681
- .zero 1
13682
- .type __func__.6099, %object
13683
- .size __func__.6099, 16
13684
-__func__.6099:
15034
+ .type __func__.23, %object
15035
+ .size __func__.23, 16
15036
+__func__.23:
1368515037 .string "FtlMapWritePage"
13686
- .type __func__.6026, %object
13687
- .size __func__.6026, 16
13688
-__func__.6026:
15038
+ .type __func__.27, %object
15039
+ .size __func__.27, 16
15040
+__func__.27:
1368915041 .string "load_l2p_region"
13690
- .type __func__.6070, %object
13691
- .size __func__.6070, 15
13692
-__func__.6070:
15042
+ .type __func__.25, %object
15043
+ .size __func__.25, 15
15044
+__func__.25:
1369315045 .string "ftl_map_blk_gc"
13694
- .zero 1
13695
- .type __func__.6141, %object
13696
- .size __func__.6141, 9
13697
-__func__.6141:
15046
+ .type __func__.24, %object
15047
+ .size __func__.24, 31
15048
+__func__.24:
15049
+ .string "Ftl_write_map_blk_to_last_page"
15050
+ .type __func__.21, %object
15051
+ .size __func__.21, 9
15052
+__func__.21:
1369815053 .string "log2phys"
13699
- .zero 7
13700
- .type __func__.6353, %object
13701
- .size __func__.6353, 16
13702
-__func__.6353:
15054
+ .type __func__.16, %object
15055
+ .size __func__.16, 16
15056
+__func__.16:
1370315057 .string "FtlReUsePrevPpa"
13704
- .type __func__.6387, %object
13705
- .size __func__.6387, 22
13706
-__func__.6387:
15058
+ .type __func__.15, %object
15059
+ .size __func__.15, 22
15060
+__func__.15:
1370715061 .string "FtlRecoverySuperblock"
13708
- .zero 2
13709
- .type __func__.6507, %object
13710
- .size __func__.6507, 14
13711
-__func__.6507:
15062
+ .type __func__.11, %object
15063
+ .size __func__.11, 14
15064
+__func__.11:
1371215065 .string "ftl_check_vpc"
13713
- .zero 2
13714
- .type __func__.6214, %object
13715
- .size __func__.6214, 15
13716
-__func__.6214:
15066
+ .type __func__.20, %object
15067
+ .size __func__.20, 15
15068
+__func__.20:
1371715069 .string "FtlVpcTblFlush"
13718
- .zero 1
13719
- .type __func__.6490, %object
13720
- .size __func__.6490, 21
13721
-__func__.6490:
15070
+ .type __func__.12, %object
15071
+ .size __func__.12, 21
15072
+__func__.12:
1372215073 .string "FtlVpcCheckAndModify"
13723
- .zero 3
13724
- .type __func__.6613, %object
13725
- .size __func__.6613, 29
13726
-__func__.6613:
15074
+ .type __func__.9, %object
15075
+ .size __func__.9, 29
15076
+__func__.9:
1372715077 .string "allocate_new_data_superblock"
13728
- .zero 3
13729
- .type __func__.5688, %object
13730
- .size __func__.5688, 13
13731
-__func__.5688:
15078
+ .type __func__.36, %object
15079
+ .size __func__.36, 13
15080
+__func__.36:
1373215081 .string "FtlProgPages"
13733
- .zero 3
13734
- .type __func__.6710, %object
13735
- .size __func__.6710, 19
13736
-__func__.6710:
15082
+ .type __func__.5, %object
15083
+ .size __func__.5, 19
15084
+__func__.5:
1373715085 .string "FtlGcFreeTempBlock"
13738
- .zero 5
13739
- .type __func__.6823, %object
13740
- .size __func__.6823, 23
13741
-__func__.6823:
15086
+ .type __func__.4, %object
15087
+ .size __func__.4, 23
15088
+__func__.4:
1374215089 .string "rk_ftl_garbage_collect"
13743
- .zero 1
13744
- .type __func__.5716, %object
13745
- .size __func__.5716, 9
13746
-__func__.5716:
15090
+ .type __func__.35, %object
15091
+ .size __func__.35, 9
15092
+__func__.35:
1374715093 .string "FtlWrite"
13748
- .zero 7
13749
- .type __func__.6285, %object
13750
- .size __func__.6285, 15
13751
-__func__.6285:
15094
+ .type __func__.18, %object
15095
+ .size __func__.18, 15
15096
+__func__.18:
1375215097 .string "FtlLoadSysInfo"
13753
- .zero 1
13754
- .type __func__.6307, %object
13755
- .size __func__.6307, 18
13756
-__func__.6307:
15098
+ .type __func__.17, %object
15099
+ .size __func__.17, 18
15100
+__func__.17:
1375715101 .string "FtlMapTblRecovery"
13758
- .zero 6
13759
- .type __func__.13648, %object
13760
- .size __func__.13648, 14
13761
-__func__.13648:
15102
+ .type __func__.0, %object
15103
+ .size __func__.0, 14
15104
+__func__.0:
1376215105 .string "FtlWriteToIDB"
13763
- .zero 2
15106
+ .zero 1
1376415107 .type rk_sftl_vendor_storage_fops, %object
13765
- .size rk_sftl_vendor_storage_fops, 288
15108
+ .size rk_sftl_vendor_storage_fops, 256
1376615109 rk_sftl_vendor_storage_fops:
13767
- .zero 72
15110
+ .zero 80
1376815111 .xword rk_sftl_vendor_storage_ioctl
1376915112 .xword rk_sftl_vendor_storage_ioctl
13770
- .zero 200
15113
+ .zero 160
1377115114 .data
1377215115 .align 3
1377315116 .set .LANCHOR2,. + 0
....@@ -13790,7 +15133,7 @@
1379015133 rkflash_vender_storage_dev:
1379115134 .word 255
1379215135 .zero 4
13793
- .xword .LC134
15136
+ .xword .LC135
1379415137 .xword rk_sftl_vendor_storage_fops
1379515138 .zero 56
1379615139 .bss
....@@ -14178,7 +15521,6 @@
1417815521 .size g_gc_bad_block_temp_num, 2
1417915522 g_gc_bad_block_temp_num:
1418015523 .zero 2
14181
- .zero 6
1418215524 .type g_gc_bad_block_temp_tbl, %object
1418315525 .size g_gc_bad_block_temp_tbl, 34
1418415526 g_gc_bad_block_temp_tbl:
....@@ -14187,7 +15529,7 @@
1418715529 .size g_gc_bad_block_gc_index, 2
1418815530 g_gc_bad_block_gc_index:
1418915531 .zero 2
14190
- .zero 4
15532
+ .zero 2
1419115533 .type g_nand_ops, %object
1419215534 .size g_nand_ops, 48
1419315535 g_nand_ops:
....@@ -14426,274 +15768,15 @@
1442615768 .size gp_last_act_superblock, 8
1442715769 gp_last_act_superblock:
1442815770 .zero 8
14429
- .section .rodata.str1.1,"aMS",@progbits,1
14430
-.LC0:
14431
- .string "SFTL version: 5.0.58 20220814"
14432
-.LC1:
14433
- .string "\n%s\n"
14434
-.LC2:
14435
- .string "act blk: %x %x %x %x %x %x\n"
14436
-.LC3:
14437
- .string "buf blk: %x %x %x %x %x %x\n"
14438
-.LC4:
14439
- .string "tmp blk: %x %x %x %x %x %x\n"
14440
-.LC5:
14441
- .string "gc blk: %x %x %x %x %x %x\n"
14442
-.LC6:
14443
- .string "free blk: %x %x %x\n"
14444
-.LC7:
14445
- .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n"
14446
-.LC8:
14447
- .string "\n!!!!! error @ func:%s - line:%d\n"
14448
-.LC9:
14449
- .string "FLASH INFO:\n"
14450
-.LC10:
14451
- .string "Device Capacity: %d MB\n"
14452
-.LC11:
14453
- .string "FTL INFO:\n"
14454
-.LC12:
14455
- .string "g_MaxLpn = 0x%x\n"
14456
-.LC13:
14457
- .string "g_VaildLpn = 0x%x\n"
14458
-.LC14:
14459
- .string "read_page_count = 0x%x\n"
14460
-.LC15:
14461
- .string "discard_page_count = 0x%x\n"
14462
-.LC16:
14463
- .string "write_page_count = 0x%x\n"
14464
-.LC17:
14465
- .string "cache_write_count = 0x%x\n"
14466
-.LC18:
14467
- .string "l2p_write_count = 0x%x\n"
14468
-.LC19:
14469
- .string "gc_page_count = 0x%x\n"
14470
-.LC20:
14471
- .string "totle_write = %d MB\n"
14472
-.LC21:
14473
- .string "totle_read = %d MB\n"
14474
-.LC22:
14475
- .string "GSV = 0x%x\n"
14476
-.LC23:
14477
- .string "GDV = 0x%x\n"
14478
-.LC24:
14479
- .string "bad blk num = %d\n"
14480
-.LC25:
14481
- .string "free_superblocks = 0x%x\n"
14482
-.LC26:
14483
- .string "mlc_EC = 0x%x\n"
14484
-.LC27:
14485
- .string "slc_EC = 0x%x\n"
14486
-.LC28:
14487
- .string "avg_EC = 0x%x\n"
14488
-.LC29:
14489
- .string "sys_EC = 0x%x\n"
14490
-.LC30:
14491
- .string "max_EC = 0x%x\n"
14492
-.LC31:
14493
- .string "min_EC = 0x%x\n"
14494
-.LC32:
14495
- .string "PLT = 0x%x\n"
14496
-.LC33:
14497
- .string "POT = 0x%x\n"
14498
-.LC34:
14499
- .string "MaxSector = 0x%x\n"
14500
-.LC35:
14501
- .string "init_sys_blks_pp = 0x%x\n"
14502
-.LC36:
14503
- .string "sys_blks_pp = 0x%x\n"
14504
-.LC37:
14505
- .string "free sysblock = 0x%x\n"
14506
-.LC38:
14507
- .string "data_blks_pp = 0x%x\n"
14508
-.LC39:
14509
- .string "data_op_blks_pp = 0x%x\n"
14510
-.LC40:
14511
- .string "max_data_blks = 0x%x\n"
14512
-.LC41:
14513
- .string "Sys.id = 0x%x\n"
14514
-.LC42:
14515
- .string "Bbt.id = 0x%x\n"
14516
-.LC43:
14517
- .string "ACT.page = 0x%x\n"
14518
-.LC44:
14519
- .string "ACT.plane = 0x%x\n"
14520
-.LC45:
14521
- .string "ACT.id = 0x%x\n"
14522
-.LC46:
14523
- .string "ACT.mode = 0x%x\n"
14524
-.LC47:
14525
- .string "ACT.a_pages = 0x%x\n"
14526
-.LC48:
14527
- .string "ACT VPC = 0x%x\n"
14528
-.LC49:
14529
- .string "BUF.page = 0x%x\n"
14530
-.LC50:
14531
- .string "BUF.plane = 0x%x\n"
14532
-.LC51:
14533
- .string "BUF.id = 0x%x\n"
14534
-.LC52:
14535
- .string "BUF.mode = 0x%x\n"
14536
-.LC53:
14537
- .string "BUF.a_pages = 0x%x\n"
14538
-.LC54:
14539
- .string "BUF VPC = 0x%x\n"
14540
-.LC55:
14541
- .string "TMP.page = 0x%x\n"
14542
-.LC56:
14543
- .string "TMP.plane = 0x%x\n"
14544
-.LC57:
14545
- .string "TMP.id = 0x%x\n"
14546
-.LC58:
14547
- .string "TMP.mode = 0x%x\n"
14548
-.LC59:
14549
- .string "TMP.a_pages = 0x%x\n"
14550
-.LC60:
14551
- .string "GC.page = 0x%x\n"
14552
-.LC61:
14553
- .string "GC.plane = 0x%x\n"
14554
-.LC62:
14555
- .string "GC.id = 0x%x\n"
14556
-.LC63:
14557
- .string "GC.mode = 0x%x\n"
14558
-.LC64:
14559
- .string "GC.a_pages = 0x%x\n"
14560
-.LC65:
14561
- .string "WR_CHK = %x %x %x\n"
14562
-.LC66:
14563
- .string "Read Err Cnt = 0x%x\n"
14564
-.LC67:
14565
- .string "Prog Err Cnt = 0x%x\n"
14566
-.LC68:
14567
- .string "gc_free_blk_th= 0x%x\n"
14568
-.LC69:
14569
- .string "gc_merge_free_blk_th= 0x%x\n"
14570
-.LC70:
14571
- .string "gc_skip_write_count= 0x%x\n"
14572
-.LC71:
14573
- .string "gc_blk_index= 0x%x\n"
14574
-.LC72:
14575
- .string "free min EC= 0x%x\n"
14576
-.LC73:
14577
- .string "free max EC= 0x%x\n"
14578
-.LC74:
14579
- .string "GC__SB VPC = 0x%x\n"
14580
-.LC75:
14581
- .string "%d. [0x%x]=0x%x 0x%x 0x%x\n"
14582
-.LC76:
14583
- .string "free %d. [0x%x] 0x%x 0x%x\n"
14584
-.LC77:
14585
- .string "%s\n"
14586
-.LC78:
14587
- .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n"
14588
-.LC79:
14589
- .string "FtlGcRefreshBlock 0x%x\n"
14590
-.LC80:
14591
- .string "FtlGcMarkBadPhyBlk %d 0x%x\n"
14592
-.LC81:
14593
- .string "%s %p + 0x%x:"
14594
-.LC82:
14595
- .string "0x%08x,"
14596
-.LC83:
14597
- .string "0x%04x,"
14598
-.LC84:
14599
- .string "0x%02x,"
14600
-.LC85:
14601
- .string "\n"
14602
-.LC86:
14603
- .string "%s: addr: %x is in id block!!!!!!!!!!\n"
14604
-.LC87:
14605
- .string "not free: w: d:"
14606
-.LC88:
14607
- .string "not free: w: s:"
14608
-.LC89:
14609
- .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n"
14610
-.LC90:
14611
- .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n"
14612
-.LC91:
14613
- .string "%s error allocating memory. return -1\n"
14614
-.LC92:
14615
- .string "FlashReadPages %x %x error_ecc_bits %d\n"
14616
-.LC93:
14617
- .string "data:"
14618
-.LC94:
14619
- .string "spare:"
14620
-.LC95:
14621
- .string "prog read error: = %x\n"
14622
-.LC96:
14623
- .string "prog read REFRESH: = %x\n"
14624
-.LC97:
14625
- .string "prog read s error: = %x %x %x %x %x\n"
14626
-.LC98:
14627
- .string "prog read d error: = %x %x %x %x %x\n"
14628
-.LC99:
14629
- .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n"
14630
-.LC100:
14631
- .string "FtlBbmTblFlush error:%x\n"
14632
-.LC101:
14633
- .string "FtlBbmTblFlush error = %x error count = %d\n"
14634
-.LC102:
14635
- .string "FtlGcFreeBadSuperBlk 0x%x\n"
14636
-.LC103:
14637
- .string "decrement_vpc_count %x = %d\n"
14638
-.LC104:
14639
- .string "FtlMapWritePage error = %x \n"
14640
-.LC105:
14641
- .string "FtlMapWritePage error = %x error count = %d\n"
14642
-.LC106:
14643
- .string "region_id = %x phyAddr = %x\n"
14644
-.LC107:
14645
- .string "map_ppn:"
14646
-.LC108:
14647
- .string "load_l2p_region refresh = %x phyAddr = %x\n"
14648
-.LC109:
14649
- .string "data prev_ppa = %x error...................\n"
14650
-.LC110:
14651
- .string "spuer block %x vpn is 0\n "
14652
-.LC111:
14653
- .string "...%s enter...\n"
14654
-.LC112:
14655
- .string "FtlCheckVpc2 %x = %x %x\n"
14656
-.LC113:
14657
- .string "free blk vpc error %x = %x %x\n"
14658
-.LC114:
14659
- .string "ftl_scan_all_data = %x\n"
14660
-.LC115:
14661
- .string "scan lpa = %x ppa= %x\n"
14662
-.LC116:
14663
- .string "lpa = %x,addr= %x,spare= %x %x %x %x data=%x %x\n"
14664
-.LC117:
14665
- .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n"
14666
-.LC118:
14667
- .string "FtlVendorPartRead refresh = %x phyAddr = %x\n"
14668
-.LC119:
14669
- .string "no ect"
14670
-.LC120:
14671
- .string "FtlVpcTblFlush error = %x error count = %d\n"
14672
-.LC121:
14673
- .string "FtlCheckVpc %x = %x %x\n"
14674
-.LC122:
14675
- .string "FtlProgPages error %x = %d\n"
14676
-.LC123:
14677
- .string "Ftlwrite decrement_vpc_count %x = %d\n"
14678
-.LC124:
14679
- .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n"
14680
-.LC125:
14681
- .string "FtlWrite: ecc error:%x %x %x\n"
14682
-.LC126:
14683
- .string "FtlWrite: lpa error:%x %x\n"
14684
-.LC127:
14685
- .string "%s hash error this.id =%x page =%x pre_id =%x hash =%x hash_r =%x\n"
14686
-.LC128:
14687
- .string "%s last blk_id =%x page =%x hash error hash =%x hash_r =%x\n"
14688
-.LC129:
14689
- .string "%s scan blk_id =%x page =%x hash error hash =%x hash_r =%x\n"
14690
-.LC130:
14691
- .string "write_idblock %x %x\n"
14692
-.LC131:
14693
- .string "write_idblock fail! %x %x %x %x\n"
14694
-.LC132:
14695
- .string "%s idb buffer alloc fail\n"
14696
-.LC133:
14697
- .string "copy_from_user error %d %p %p\n"
14698
-.LC134:
14699
- .string "vendor_storage"
15771
+ .ident "GCC: (GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16)) 10.2.1 20201103"
15772
+ .section .note.GNU-stack,"",@progbits
15773
+ .section .note.gnu.property,"a"
15774
+ .align 3
15775
+ .word 4
15776
+ .word 16
15777
+ .word 5
15778
+ .string "GNU"
15779
+ .word 3221225472
15780
+ .word 4
15781
+ .word 3
15782
+ .align 3