forked from xuos/xiuos
12967 lines
509 KiB
NASM
12967 lines
509 KiB
NASM
|
||
test_ipc_null: file format elf64-littleaarch64
|
||
|
||
|
||
Disassembly of section .text:
|
||
|
||
0000000000000000 <main>:
|
||
}
|
||
|
||
// client thread
|
||
int server_thread(int argc, char** argv);
|
||
int main(int argc, char** argv)
|
||
{
|
||
0: a9ba7bfd stp x29, x30, [sp, #-96]!
|
||
4: 910003fd mov x29, sp
|
||
8: a90153f3 stp x19, x20, [sp, #16]
|
||
c: f0000053 adrp x19, b000 <pow10.0+0x80>
|
||
10: 91242273 add x19, x19, #0x908
|
||
struct Session session;
|
||
bool server_enabled = false;
|
||
14: 52800014 mov w20, #0x0 // #0
|
||
{
|
||
18: f90013f5 str x21, [sp, #32]
|
||
while (connect_session(&session, test_null_server_name, 4096) < 0) {
|
||
if (!server_enabled) {
|
||
char* server_param[] = { test_null_server_name, NULL };
|
||
if (thread(server_thread, test_null_server_name, server_param) >= 0) {
|
||
1c: 90000000 adrp x0, 0 <main>
|
||
20: 910c4015 add x21, x0, #0x310
|
||
while (connect_session(&session, test_null_server_name, 4096) < 0) {
|
||
24: 14000002 b 2c <main+0x2c>
|
||
if (!server_enabled) {
|
||
28: 340003b4 cbz w20, 9c <main+0x9c>
|
||
while (connect_session(&session, test_null_server_name, 4096) < 0) {
|
||
2c: aa1303e1 mov x1, x19
|
||
30: 910123e0 add x0, sp, #0x48
|
||
34: 52820002 mov w2, #0x1000 // #4096
|
||
38: 94000ac6 bl 2b50 <connect_session>
|
||
3c: 37ffff60 tbnz w0, #31, 28 <main+0x28>
|
||
server_enabled = true;
|
||
}
|
||
}
|
||
}
|
||
|
||
printf("[%s] Call using NULL ptr.\n", test_null_client_name);
|
||
40: 91204273 add x19, x19, #0x810
|
||
44: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
48: aa1303e1 mov x1, x19
|
||
4c: 9138c000 add x0, x0, #0xe30
|
||
50: 94000798 bl 1eb0 <printf>
|
||
return IPC_CALL(Ipc_test_null)(session, ptr);
|
||
54: 910123e0 add x0, sp, #0x48
|
||
58: d2800001 mov x1, #0x0 // #0
|
||
5c: 94000075 bl 230 <ipc_call_copy_args_Ipc_test_null>
|
||
test_null(&session, NULL);
|
||
printf("[%s] Call using non-NULL ptr.\n", test_null_client_name);
|
||
60: aa1303e1 mov x1, x19
|
||
64: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
68: 91394000 add x0, x0, #0xe50
|
||
6c: 94000791 bl 1eb0 <printf>
|
||
return IPC_CALL(Ipc_test_null)(session, ptr);
|
||
70: b0000061 adrp x1, d000 <__malloc_av_+0x780>
|
||
74: 910aa021 add x1, x1, #0x2a8
|
||
78: 910123e0 add x0, sp, #0x48
|
||
7c: 9400006d bl 230 <ipc_call_copy_args_Ipc_test_null>
|
||
test_null(&session, buf);
|
||
|
||
exit(0);
|
||
80: 52800000 mov w0, #0x0 // #0
|
||
84: 94000887 bl 22a0 <exit>
|
||
return 0;
|
||
}
|
||
88: 52800000 mov w0, #0x0 // #0
|
||
8c: a94153f3 ldp x19, x20, [sp, #16]
|
||
90: f94013f5 ldr x21, [sp, #32]
|
||
94: a8c67bfd ldp x29, x30, [sp], #96
|
||
98: d65f03c0 ret
|
||
if (thread(server_thread, test_null_server_name, server_param) >= 0) {
|
||
9c: 9100e3e2 add x2, sp, #0x38
|
||
a0: aa1303e1 mov x1, x19
|
||
a4: aa1503e0 mov x0, x21
|
||
char* server_param[] = { test_null_server_name, NULL };
|
||
a8: a903fff3 stp x19, xzr, [sp, #56]
|
||
if (thread(server_thread, test_null_server_name, server_param) >= 0) {
|
||
ac: 94000875 bl 2280 <thread>
|
||
b0: 2a2003f4 mvn w20, w0
|
||
b4: 531f7e94 lsr w20, w20, #31
|
||
b8: 17ffffdd b 2c <main+0x2c>
|
||
bc: d503201f nop
|
||
|
||
00000000000000c0 <deregister_tm_clones>:
|
||
c0: b0000060 adrp x0, d000 <__malloc_av_+0x780>
|
||
c4: 9109c000 add x0, x0, #0x270
|
||
c8: b0000061 adrp x1, d000 <__malloc_av_+0x780>
|
||
cc: 9109c021 add x1, x1, #0x270
|
||
d0: eb00003f cmp x1, x0
|
||
d4: 540000c0 b.eq ec <deregister_tm_clones+0x2c> // b.none
|
||
d8: d0000041 adrp x1, a000 <__swbuf_r+0xb0>
|
||
dc: f9469421 ldr x1, [x1, #3368]
|
||
e0: b4000061 cbz x1, ec <deregister_tm_clones+0x2c>
|
||
e4: aa0103f0 mov x16, x1
|
||
e8: d61f0200 br x16
|
||
ec: d65f03c0 ret
|
||
|
||
00000000000000f0 <register_tm_clones>:
|
||
f0: b0000060 adrp x0, d000 <__malloc_av_+0x780>
|
||
f4: 9109c000 add x0, x0, #0x270
|
||
f8: b0000061 adrp x1, d000 <__malloc_av_+0x780>
|
||
fc: 9109c021 add x1, x1, #0x270
|
||
100: cb000021 sub x1, x1, x0
|
||
104: d37ffc22 lsr x2, x1, #63
|
||
108: 8b810c41 add x1, x2, x1, asr #3
|
||
10c: 9341fc21 asr x1, x1, #1
|
||
110: b40000c1 cbz x1, 128 <register_tm_clones+0x38>
|
||
114: d0000042 adrp x2, a000 <__swbuf_r+0xb0>
|
||
118: f9469842 ldr x2, [x2, #3376]
|
||
11c: b4000062 cbz x2, 128 <register_tm_clones+0x38>
|
||
120: aa0203f0 mov x16, x2
|
||
124: d61f0200 br x16
|
||
128: d65f03c0 ret
|
||
12c: d503201f nop
|
||
|
||
0000000000000130 <__do_global_dtors_aux>:
|
||
130: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
134: 910003fd mov x29, sp
|
||
138: f9000bf3 str x19, [sp, #16]
|
||
13c: b0000073 adrp x19, d000 <__malloc_av_+0x780>
|
||
140: 3949c260 ldrb w0, [x19, #624]
|
||
144: 35000140 cbnz w0, 16c <__do_global_dtors_aux+0x3c>
|
||
148: 97ffffde bl c0 <deregister_tm_clones>
|
||
14c: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
150: f9469c00 ldr x0, [x0, #3384]
|
||
154: b4000080 cbz x0, 164 <__do_global_dtors_aux+0x34>
|
||
158: f0000040 adrp x0, b000 <pow10.0+0x80>
|
||
15c: 9123b000 add x0, x0, #0x8ec
|
||
160: d503201f nop
|
||
164: 52800020 mov w0, #0x1 // #1
|
||
168: 3909c260 strb w0, [x19, #624]
|
||
16c: f9400bf3 ldr x19, [sp, #16]
|
||
170: a8c27bfd ldp x29, x30, [sp], #32
|
||
174: d65f03c0 ret
|
||
178: d503201f nop
|
||
17c: d503201f nop
|
||
|
||
0000000000000180 <frame_dummy>:
|
||
180: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
184: f946a000 ldr x0, [x0, #3392]
|
||
188: b4000140 cbz x0, 1b0 <frame_dummy+0x30>
|
||
18c: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
190: b0000061 adrp x1, d000 <__malloc_av_+0x780>
|
||
194: f0000040 adrp x0, b000 <pow10.0+0x80>
|
||
198: 910003fd mov x29, sp
|
||
19c: 9109e021 add x1, x1, #0x278
|
||
1a0: 9123b000 add x0, x0, #0x8ec
|
||
1a4: d503201f nop
|
||
1a8: a8c17bfd ldp x29, x30, [sp], #16
|
||
1ac: 17ffffd1 b f0 <register_tm_clones>
|
||
1b0: 17ffffd0 b f0 <register_tm_clones>
|
||
1b4: d503201f nop
|
||
|
||
00000000000001b8 <_mainCRTStartup>:
|
||
1b8: 58000281 ldr x1, 208 <_cpu_init_hook+0x4>
|
||
1bc: 927cec20 and x0, x1, #0xfffffffffffffff0
|
||
1c0: 9100001f mov sp, x0
|
||
1c4: d280001d mov x29, #0x0 // #0
|
||
1c8: a9bf77fd stp x29, x29, [sp, #-16]!
|
||
1cc: 910003fd mov x29, sp
|
||
1d0: 9400000d bl 204 <_cpu_init_hook>
|
||
1d4: 580001e0 ldr x0, 210 <_cpu_init_hook+0xc>
|
||
1d8: 52800001 mov w1, #0x0 // #0
|
||
1dc: 580001e2 ldr x2, 218 <_cpu_init_hook+0x14>
|
||
1e0: cb000042 sub x2, x2, x0
|
||
1e4: 94000e37 bl 3ac0 <memset>
|
||
1e8: 580001c0 ldr x0, 220 <_cpu_init_hook+0x1c>
|
||
1ec: 94000b0d bl 2e20 <atexit>
|
||
1f0: 94000b68 bl 2f90 <__libc_init_array>
|
||
1f4: d2800000 mov x0, #0x0 // #0
|
||
1f8: d2800001 mov x1, #0x0 // #0
|
||
1fc: 97ffff81 bl 0 <main>
|
||
200: 14000828 b 22a0 <exit>
|
||
|
||
0000000000000204 <_cpu_init_hook>:
|
||
204: d65f03c0 ret
|
||
...
|
||
210: 0000d270 .word 0x0000d270
|
||
214: 00000000 .word 0x00000000
|
||
218: 0000d5e8 .word 0x0000d5e8
|
||
21c: 00000000 .word 0x00000000
|
||
220: 00002e40 .word 0x00002e40
|
||
224: 00000000 .word 0x00000000
|
||
228: d503201f .word 0xd503201f
|
||
22c: d503201f .word 0xd503201f
|
||
|
||
0000000000000230 <ipc_call_copy_args_Ipc_test_null>:
|
||
IPC_INTERFACE(Ipc_test_null, 1, ptr, sizeof(buf));
|
||
230: b40005c0 cbz x0, 2e8 <ipc_call_copy_args_Ipc_test_null+0xb8>
|
||
234: a9bc7bfd stp x29, x30, [sp, #-64]!
|
||
238: 910003fd mov x29, sp
|
||
23c: 9100e3e2 add x2, sp, #0x38
|
||
240: a90153f3 stp x19, x20, [sp, #16]
|
||
244: aa0003f4 mov x20, x0
|
||
248: a9025bf5 stp x21, x22, [sp, #32]
|
||
24c: aa0103f5 mov x21, x1
|
||
250: 52800416 mov w22, #0x20 // #32
|
||
254: 52800021 mov w1, #0x1 // #1
|
||
258: b9003bf6 str w22, [sp, #56]
|
||
25c: 940008c5 bl 2570 <new_ipc_msg>
|
||
260: aa0003f3 mov x19, x0
|
||
264: 2a1603e3 mov w3, w22
|
||
268: aa1503e2 mov x2, x21
|
||
26c: 52800001 mov w1, #0x0 // #0
|
||
270: 94000900 bl 2670 <ipc_msg_set_nth_arg>
|
||
__attribute__((__always_inline__)) static inline bool ipc_msg_set_opcode(struct IpcMsg* msg, int opcode)
|
||
{
|
||
if (opcode < 0 || opcode > UINT8_MAX) {
|
||
return false;
|
||
}
|
||
msg->header.opcode = opcode;
|
||
274: 52800021 mov w1, #0x1 // #1
|
||
278: 39000661 strb w1, [x19, #1]
|
||
27c: aa1303e0 mov x0, x19
|
||
280: 9400096c bl 2830 <ipc_msg_send_wait>
|
||
284: 2a1603e3 mov w3, w22
|
||
288: aa1503e2 mov x2, x21
|
||
28c: aa1303e0 mov x0, x19
|
||
290: 52800001 mov w1, #0x0 // #0
|
||
294: 9400092f bl 2750 <ipc_msg_get_nth_arg>
|
||
298: b9003bff str wzr, [sp, #56]
|
||
assert(msg->header.done == 1);
|
||
29c: 39400260 ldrb w0, [x19]
|
||
2a0: 36080280 tbz w0, #1, 2f0 <ipc_call_copy_args_Ipc_test_null+0xc0>
|
||
memcpy(ret_val, &msg->header.ret_val, sizeof(msg->header.ret_val));
|
||
2a4: 91002261 add x1, x19, #0x8
|
||
2a8: d2800082 mov x2, #0x4 // #4
|
||
2ac: 9100e3e0 add x0, sp, #0x38
|
||
2b0: 94000d74 bl 3880 <memcpy>
|
||
/// @brief delete first msg in session
|
||
/// @param session
|
||
/// @return
|
||
__attribute__((__always_inline__)) static inline bool ipc_session_forward(struct Session* session)
|
||
{
|
||
struct IpcMsg* msg = IPCSESSION_MSG(session);
|
||
2b4: b9800a80 ldrsw x0, [x20, #8]
|
||
2b8: f9400a81 ldr x1, [x20, #16]
|
||
2bc: 8b000022 add x2, x1, x0
|
||
if (msg->header.init != 1) {
|
||
2c0: 38606820 ldrb w0, [x1, x0]
|
||
2c4: 36100080 tbz w0, #2, 2d4 <ipc_call_copy_args_Ipc_test_null+0xa4>
|
||
return false;
|
||
}
|
||
return session_free_buf(session, msg->header.len);
|
||
2c8: 79400441 ldrh w1, [x2, #2]
|
||
2cc: aa1403e0 mov x0, x20
|
||
2d0: 94000a64 bl 2c60 <session_free_buf>
|
||
2d4: b9403be0 ldr w0, [sp, #56]
|
||
2d8: a94153f3 ldp x19, x20, [sp, #16]
|
||
2dc: a9425bf5 ldp x21, x22, [sp, #32]
|
||
2e0: a8c47bfd ldp x29, x30, [sp], #64
|
||
2e4: d65f03c0 ret
|
||
2e8: 12800000 mov w0, #0xffffffff // #-1
|
||
2ec: d65f03c0 ret
|
||
assert(msg->header.done == 1);
|
||
2f0: d0000043 adrp x3, a000 <__swbuf_r+0xb0>
|
||
2f4: d0000042 adrp x2, a000 <__swbuf_r+0xb0>
|
||
2f8: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
2fc: 91352063 add x3, x3, #0xd48
|
||
300: 9139c042 add x2, x2, #0xe70
|
||
304: 91358000 add x0, x0, #0xd60
|
||
308: 52800fc1 mov w1, #0x7e // #126
|
||
30c: 94000aa5 bl 2da0 <__assert_func>
|
||
|
||
0000000000000310 <server_thread>:
|
||
IPC_SERVER_INTERFACE(Ipc_test_null, 1);
|
||
IPC_SERVER_REGISTER_INTERFACES(IpcTestNull, 1, Ipc_test_null);
|
||
|
||
// server threads
|
||
int server_thread(int argc, char** argv)
|
||
{
|
||
310: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
314: 910003fd mov x29, sp
|
||
318: f9000bf3 str x19, [sp, #16]
|
||
if (register_server(test_null_server_name) < 0) {
|
||
31c: f0000053 adrp x19, b000 <pow10.0+0x80>
|
||
320: 91242273 add x19, x19, #0x908
|
||
324: aa1303e0 mov x0, x19
|
||
328: 940007f6 bl 2300 <register_server>
|
||
32c: 37f80120 tbnz w0, #31, 350 <server_thread+0x40>
|
||
printf("[%s] Register %s server failed.\n", test_null_server_name, test_null_server_name);
|
||
exit(1);
|
||
return 1;
|
||
}
|
||
ipc_server_loop(&IpcTestNull);
|
||
330: 91004260 add x0, x19, #0x10
|
||
334: 9400097f bl 2930 <ipc_server_loop>
|
||
|
||
exit(0);
|
||
338: 52800000 mov w0, #0x0 // #0
|
||
33c: 940007d9 bl 22a0 <exit>
|
||
return 0;
|
||
340: 52800000 mov w0, #0x0 // #0
|
||
}
|
||
344: f9400bf3 ldr x19, [sp, #16]
|
||
348: a8c27bfd ldp x29, x30, [sp], #32
|
||
34c: d65f03c0 ret
|
||
printf("[%s] Register %s server failed.\n", test_null_server_name, test_null_server_name);
|
||
350: aa1303e2 mov x2, x19
|
||
354: aa1303e1 mov x1, x19
|
||
358: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
35c: 9136c000 add x0, x0, #0xdb0
|
||
360: 940006d4 bl 1eb0 <printf>
|
||
exit(1);
|
||
364: 52800020 mov w0, #0x1 // #1
|
||
368: 940007ce bl 22a0 <exit>
|
||
36c: 52800020 mov w0, #0x1 // #1
|
||
}
|
||
370: f9400bf3 ldr x19, [sp, #16]
|
||
374: a8c27bfd ldp x29, x30, [sp], #32
|
||
378: d65f03c0 ret
|
||
37c: d503201f nop
|
||
|
||
0000000000000380 <ipc_serve_Ipc_test_null>:
|
||
IPC_SERVER_INTERFACE(Ipc_test_null, 1);
|
||
380: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
printf("[%s]: A NULL ptr ipc call.\n", test_null_server_name);
|
||
384: f0000041 adrp x1, b000 <pow10.0+0x80>
|
||
IPC_SERVER_INTERFACE(Ipc_test_null, 1);
|
||
388: 910003fd mov x29, sp
|
||
38c: f9000bf3 str x19, [sp, #16]
|
||
390: aa0003f3 mov x19, x0
|
||
if (IPCMSG_ARG_INFO(msg, arg_num)->null_ptr == 1) {
|
||
394: 39404000 ldrb w0, [x0, #16]
|
||
398: 370002c0 tbnz w0, #0, 3f0 <ipc_serve_Ipc_test_null+0x70>
|
||
printf("[%s]: A non-NULL ptr ipc call.\n", test_null_server_name);
|
||
39c: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
3a0: 91242021 add x1, x1, #0x908
|
||
3a4: 9137e000 add x0, x0, #0xdf8
|
||
3a8: 940006c2 bl 1eb0 <printf>
|
||
IPC_SERVER_INTERFACE(Ipc_test_null, 1);
|
||
3ac: b9002fff str wzr, [sp, #44]
|
||
3b0: 94000954 bl 2900 <is_cur_session_delayed>
|
||
3b4: 72001c1f tst w0, #0xff
|
||
3b8: 54000141 b.ne 3e0 <ipc_serve_Ipc_test_null+0x60> // b.any
|
||
assert(msg->header.valid == 1);
|
||
3bc: 39400260 ldrb w0, [x19]
|
||
3c0: 36000220 tbz w0, #0, 404 <ipc_serve_Ipc_test_null+0x84>
|
||
memcpy(&msg->header.ret_val, ret_val, sizeof(msg->header.ret_val));
|
||
3c4: 9100b3e1 add x1, sp, #0x2c
|
||
3c8: 91002260 add x0, x19, #0x8
|
||
3cc: d2800082 mov x2, #0x4 // #4
|
||
3d0: 94000d2c bl 3880 <memcpy>
|
||
3d4: 39400260 ldrb w0, [x19]
|
||
3d8: 321f0000 orr w0, w0, #0x2
|
||
3dc: 39000260 strb w0, [x19]
|
||
3e0: 52800000 mov w0, #0x0 // #0
|
||
3e4: f9400bf3 ldr x19, [sp, #16]
|
||
3e8: a8c37bfd ldp x29, x30, [sp], #48
|
||
3ec: d65f03c0 ret
|
||
printf("[%s]: A NULL ptr ipc call.\n", test_null_server_name);
|
||
3f0: 91242021 add x1, x1, #0x908
|
||
3f4: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
3f8: 91376000 add x0, x0, #0xdd8
|
||
3fc: 940006ad bl 1eb0 <printf>
|
||
400: 17ffffeb b 3ac <ipc_serve_Ipc_test_null+0x2c>
|
||
assert(msg->header.valid == 1);
|
||
404: d0000042 adrp x2, a000 <__swbuf_r+0xb0>
|
||
408: 9139c042 add x2, x2, #0xe70
|
||
40c: d0000043 adrp x3, a000 <__swbuf_r+0xb0>
|
||
410: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
414: 91006042 add x2, x2, #0x18
|
||
418: 91386063 add x3, x3, #0xe18
|
||
41c: 91358000 add x0, x0, #0xd60
|
||
420: 52801101 mov w1, #0x88 // #136
|
||
424: 94000a5f bl 2da0 <__assert_func>
|
||
428: d503201f nop
|
||
42c: d503201f nop
|
||
|
||
0000000000000430 <test_null>:
|
||
return IPC_CALL(Ipc_test_null)(session, ptr);
|
||
430: 17ffff80 b 230 <ipc_call_copy_args_Ipc_test_null>
|
||
434: d503201f nop
|
||
438: d503201f nop
|
||
43c: d503201f nop
|
||
|
||
0000000000000440 <ipc_do_serve_Ipc_test_null>:
|
||
{
|
||
440: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
printf("[%s]: A NULL ptr ipc call.\n", test_null_server_name);
|
||
444: f0000041 adrp x1, b000 <pow10.0+0x80>
|
||
{
|
||
448: 910003fd mov x29, sp
|
||
if (ptr == NULL) {
|
||
44c: b4000100 cbz x0, 46c <ipc_do_serve_Ipc_test_null+0x2c>
|
||
printf("[%s]: A non-NULL ptr ipc call.\n", test_null_server_name);
|
||
450: 91242021 add x1, x1, #0x908
|
||
454: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
458: 9137e000 add x0, x0, #0xdf8
|
||
45c: 94000695 bl 1eb0 <printf>
|
||
}
|
||
460: 52800000 mov w0, #0x0 // #0
|
||
464: a8c17bfd ldp x29, x30, [sp], #16
|
||
468: d65f03c0 ret
|
||
printf("[%s]: A NULL ptr ipc call.\n", test_null_server_name);
|
||
46c: 91242021 add x1, x1, #0x908
|
||
470: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
474: 91376000 add x0, x0, #0xdd8
|
||
478: 9400068e bl 1eb0 <printf>
|
||
}
|
||
47c: 52800000 mov w0, #0x0 // #0
|
||
480: a8c17bfd ldp x29, x30, [sp], #16
|
||
484: d65f03c0 ret
|
||
488: d503201f nop
|
||
48c: d503201f nop
|
||
|
||
0000000000000490 <init_uart_mmio>:
|
||
#ifndef CONFIG_SYS_NS16550_CLK
|
||
#define CONFIG_SYS_NS16550_CLK 0
|
||
#endif
|
||
|
||
bool init_uart_mmio()
|
||
{
|
||
490: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
if (-1 == mmap(UART_ADDR, UART_ADDR, 4096, true)) {
|
||
return false;
|
||
}
|
||
mapped = 1;
|
||
}
|
||
return true;
|
||
494: 52800020 mov w0, #0x1 // #1
|
||
{
|
||
498: 910003fd mov x29, sp
|
||
49c: f9000bf3 str x19, [sp, #16]
|
||
if (mapped == 0) {
|
||
4a0: b0000073 adrp x19, d000 <__malloc_av_+0x780>
|
||
4a4: b942ca61 ldr w1, [x19, #712]
|
||
4a8: 34000081 cbz w1, 4b8 <init_uart_mmio+0x28>
|
||
}
|
||
4ac: f9400bf3 ldr x19, [sp, #16]
|
||
4b0: a8c27bfd ldp x29, x30, [sp], #32
|
||
4b4: d65f03c0 ret
|
||
if (-1 == mmap(UART_ADDR, UART_ADDR, 4096, true)) {
|
||
4b8: 2a0003e3 mov w3, w0
|
||
4bc: d2bfccc1 mov x1, #0xfe660000 // #4268097536
|
||
4c0: 52820002 mov w2, #0x1000 // #4096
|
||
4c4: aa0103e0 mov x0, x1
|
||
4c8: 940007de bl 2440 <mmap>
|
||
4cc: 3100041f cmn w0, #0x1
|
||
return false;
|
||
4d0: 52800000 mov w0, #0x0 // #0
|
||
if (-1 == mmap(UART_ADDR, UART_ADDR, 4096, true)) {
|
||
4d4: 54fffec0 b.eq 4ac <init_uart_mmio+0x1c> // b.none
|
||
mapped = 1;
|
||
4d8: 52800021 mov w1, #0x1 // #1
|
||
return true;
|
||
4dc: 2a0103e0 mov w0, w1
|
||
mapped = 1;
|
||
4e0: b902ca61 str w1, [x19, #712]
|
||
}
|
||
4e4: f9400bf3 ldr x19, [sp, #16]
|
||
4e8: a8c27bfd ldp x29, x30, [sp], #32
|
||
4ec: d65f03c0 ret
|
||
|
||
00000000000004f0 <putc>:
|
||
|
||
void putc(char ch)
|
||
{
|
||
4f0: 12001c00 and w0, w0, #0xff
|
||
static struct NS16550* com_port = (struct NS16550*)UART_ADDR;
|
||
|
||
if (ch == '\n') {
|
||
4f4: 7100281f cmp w0, #0xa
|
||
4f8: 540000c0 b.eq 510 <putc+0x20> // b.none
|
||
return in_le32(addr);
|
||
4fc: d2bfccc2 mov x2, #0xfe660000 // #4268097536
|
||
500: b9401441 ldr w1, [x2, #20]
|
||
putc('\r');
|
||
}
|
||
|
||
while (!(serial_din(&com_port->lsr) & UART_LSR_THRE))
|
||
504: 362fffe1 tbz w1, #5, 500 <putc+0x10>
|
||
out_le32(addr, value);
|
||
508: b9000040 str w0, [x2]
|
||
;
|
||
serial_dout(&com_port->thr, ch);
|
||
}
|
||
50c: d65f03c0 ret
|
||
return in_le32(addr);
|
||
510: d2bfccc2 mov x2, #0xfe660000 // #4268097536
|
||
514: d503201f nop
|
||
518: b9401441 ldr w1, [x2, #20]
|
||
while (!(serial_din(&com_port->lsr) & UART_LSR_THRE))
|
||
51c: 362fffe1 tbz w1, #5, 518 <putc+0x28>
|
||
out_le32(addr, value);
|
||
520: 528001a1 mov w1, #0xd // #13
|
||
524: b9000041 str w1, [x2]
|
||
}
|
||
528: 17fffff5 b 4fc <putc+0xc>
|
||
52c: d503201f nop
|
||
|
||
0000000000000530 <getc>:
|
||
return in_le32(addr);
|
||
530: d2bfccc1 mov x1, #0xfe660000 // #4268097536
|
||
534: d503201f nop
|
||
538: b9401420 ldr w0, [x1, #20]
|
||
|
||
char getc(void)
|
||
{
|
||
static struct NS16550* com_port = (struct NS16550*)UART_ADDR;
|
||
|
||
while (!(serial_din(&com_port->lsr) & UART_LSR_DR))
|
||
53c: 3607ffe0 tbz w0, #0, 538 <getc+0x8>
|
||
return in_le32(addr);
|
||
540: b9400020 ldr w0, [x1]
|
||
;
|
||
|
||
return serial_din(&com_port->rbr);
|
||
544: d65f03c0 ret
|
||
548: d503201f nop
|
||
54c: d503201f nop
|
||
|
||
0000000000000550 <_out_buffer>:
|
||
} out_fct_wrap_type;
|
||
|
||
// internal buffer output
|
||
static inline void _out_buffer(char character, void* buffer, size_t idx, size_t maxlen)
|
||
{
|
||
if (idx < maxlen) {
|
||
550: eb03005f cmp x2, x3
|
||
{
|
||
554: 12001c00 and w0, w0, #0xff
|
||
if (idx < maxlen) {
|
||
558: 54000042 b.cs 560 <_out_buffer+0x10> // b.hs, b.nlast
|
||
((char*)buffer)[idx] = character;
|
||
55c: 38226820 strb w0, [x1, x2]
|
||
}
|
||
}
|
||
560: d65f03c0 ret
|
||
564: d503201f nop
|
||
568: d503201f nop
|
||
56c: d503201f nop
|
||
|
||
0000000000000570 <_out_null>:
|
||
{
|
||
(void)character;
|
||
(void)buffer;
|
||
(void)idx;
|
||
(void)maxlen;
|
||
}
|
||
570: d65f03c0 ret
|
||
574: d503201f nop
|
||
578: d503201f nop
|
||
57c: d503201f nop
|
||
|
||
0000000000000580 <_out_rev>:
|
||
return i;
|
||
}
|
||
|
||
// output the specified string in reverse, taking care of any zero-padding
|
||
static size_t _out_rev(out_fct_type out, char* buffer, size_t idx, size_t maxlen, const char* buf, size_t len, unsigned int width, unsigned int flags)
|
||
{
|
||
580: a9ba7bfd stp x29, x30, [sp, #-96]!
|
||
584: 910003fd mov x29, sp
|
||
588: a90153f3 stp x19, x20, [sp, #16]
|
||
58c: aa0503f3 mov x19, x5
|
||
590: aa0203f4 mov x20, x2
|
||
594: a9025bf5 stp x21, x22, [sp, #32]
|
||
598: aa0003f5 mov x21, x0
|
||
59c: aa0103f6 mov x22, x1
|
||
5a0: a90363f7 stp x23, x24, [sp, #48]
|
||
5a4: aa0203f7 mov x23, x2
|
||
5a8: aa0403f8 mov x24, x4
|
||
5ac: a9046bf9 stp x25, x26, [sp, #64]
|
||
5b0: 2a0703fa mov w26, w7
|
||
5b4: 2a0603f9 mov w25, w6
|
||
5b8: a90573fb stp x27, x28, [sp, #80]
|
||
const size_t start_idx = idx;
|
||
|
||
// pad spaces up to given width
|
||
if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
|
||
5bc: f240075f tst x26, #0x3
|
||
{
|
||
5c0: aa0303fb mov x27, x3
|
||
if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
|
||
5c4: 540001e1 b.ne 600 <_out_rev+0x80> // b.any
|
||
for (size_t i = len; i < width; i++) {
|
||
5c8: 2a0603e0 mov w0, w6
|
||
5cc: aa0203fc mov x28, x2
|
||
5d0: cb050014 sub x20, x0, x5
|
||
5d4: eb0000bf cmp x5, x0
|
||
5d8: 8b020294 add x20, x20, x2
|
||
5dc: 54000542 b.cs 684 <_out_rev+0x104> // b.hs, b.nlast
|
||
out(' ', buffer, idx++, maxlen);
|
||
5e0: aa1c03e2 mov x2, x28
|
||
5e4: aa1b03e3 mov x3, x27
|
||
5e8: 9100079c add x28, x28, #0x1
|
||
5ec: aa1603e1 mov x1, x22
|
||
5f0: 52800400 mov w0, #0x20 // #32
|
||
5f4: d63f02a0 blr x21
|
||
for (size_t i = len; i < width; i++) {
|
||
5f8: eb1c029f cmp x20, x28
|
||
5fc: 54ffff21 b.ne 5e0 <_out_rev+0x60> // b.any
|
||
}
|
||
}
|
||
|
||
// reverse string
|
||
while (len) {
|
||
600: 8b14027c add x28, x19, x20
|
||
604: b4000133 cbz x19, 628 <_out_rev+0xa8>
|
||
608: cb130382 sub x2, x28, x19
|
||
out(buf[--len], buffer, idx++, maxlen);
|
||
60c: d1000673 sub x19, x19, #0x1
|
||
610: aa1c03f4 mov x20, x28
|
||
614: aa1b03e3 mov x3, x27
|
||
618: aa1603e1 mov x1, x22
|
||
61c: 38736b00 ldrb w0, [x24, x19]
|
||
620: d63f02a0 blr x21
|
||
while (len) {
|
||
624: b5ffff33 cbnz x19, 608 <_out_rev+0x88>
|
||
}
|
||
|
||
// append pad spaces up to given width
|
||
if (flags & FLAGS_LEFT) {
|
||
628: 360801fa tbz w26, #1, 664 <_out_rev+0xe4>
|
||
while (idx - start_idx < width) {
|
||
62c: cb170297 sub x23, x20, x23
|
||
630: 2a1903f9 mov w25, w25
|
||
634: eb1902ff cmp x23, x25
|
||
638: 54000162 b.cs 664 <_out_rev+0xe4> // b.hs, b.nlast
|
||
63c: d503201f nop
|
||
out(' ', buffer, idx++, maxlen);
|
||
640: aa1403e2 mov x2, x20
|
||
while (idx - start_idx < width) {
|
||
644: 910006f7 add x23, x23, #0x1
|
||
out(' ', buffer, idx++, maxlen);
|
||
648: aa1b03e3 mov x3, x27
|
||
64c: aa1603e1 mov x1, x22
|
||
650: 52800400 mov w0, #0x20 // #32
|
||
654: d63f02a0 blr x21
|
||
658: 91000694 add x20, x20, #0x1
|
||
while (idx - start_idx < width) {
|
||
65c: eb1902ff cmp x23, x25
|
||
660: 54ffff03 b.cc 640 <_out_rev+0xc0> // b.lo, b.ul, b.last
|
||
}
|
||
}
|
||
|
||
return idx;
|
||
}
|
||
664: aa1403e0 mov x0, x20
|
||
668: a94153f3 ldp x19, x20, [sp, #16]
|
||
66c: a9425bf5 ldp x21, x22, [sp, #32]
|
||
670: a94363f7 ldp x23, x24, [sp, #48]
|
||
674: a9446bf9 ldp x25, x26, [sp, #64]
|
||
678: a94573fb ldp x27, x28, [sp, #80]
|
||
67c: a8c67bfd ldp x29, x30, [sp], #96
|
||
680: d65f03c0 ret
|
||
for (size_t i = len; i < width; i++) {
|
||
684: aa0203f4 mov x20, x2
|
||
688: 17ffffde b 600 <_out_rev+0x80>
|
||
68c: d503201f nop
|
||
|
||
0000000000000690 <_ntoa_long>:
|
||
return _out_rev(out, buffer, idx, maxlen, buf, len, width, flags);
|
||
}
|
||
|
||
// internal itoa for 'long' type
|
||
static size_t _ntoa_long(out_fct_type out, char* buffer, size_t idx, size_t maxlen, unsigned long value, bool negative, unsigned long base, unsigned int prec, unsigned int width, unsigned int flags)
|
||
{
|
||
690: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
694: aa0603eb mov x11, x6
|
||
698: aa0403e9 mov x9, x4
|
||
69c: 910003fd mov x29, sp
|
||
6a0: b9403be8 ldr w8, [sp, #56]
|
||
6a4: 2a0703ef mov w15, w7
|
||
6a8: b94033e6 ldr w6, [sp, #48]
|
||
6ac: 12001cb2 and w18, w5, #0xff
|
||
if (!value) {
|
||
flags &= ~FLAGS_HASH;
|
||
}
|
||
|
||
// write if precision != 0 and value is != 0
|
||
if (!(flags & FLAGS_PRECISION) || value) {
|
||
6b0: 12160110 and w16, w8, #0x400
|
||
if (!value) {
|
||
6b4: b5000c64 cbnz x4, 840 <_ntoa_long+0x1b0>
|
||
flags &= ~FLAGS_HASH;
|
||
6b8: 121b7907 and w7, w8, #0xffffffef
|
||
if (!(flags & FLAGS_PRECISION) || value) {
|
||
6bc: 34000730 cbz w16, 7a0 <_ntoa_long+0x110>
|
||
if (!(flags & FLAGS_LEFT)) {
|
||
6c0: 121f0111 and w17, w8, #0x2
|
||
6c4: 37080fc8 tbnz w8, #1, 8bc <_ntoa_long+0x22c>
|
||
size_t len = 0U;
|
||
6c8: d2800005 mov x5, #0x0 // #0
|
||
while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
6cc: 2a0f03e9 mov w9, w15
|
||
6d0: f1007cbf cmp x5, #0x1f
|
||
6d4: 910043e4 add x4, sp, #0x10
|
||
6d8: 1a9f87ea cset w10, ls // ls = plast
|
||
6dc: eb05013f cmp x9, x5
|
||
6e0: 1a9f97e8 cset w8, hi // hi = pmore
|
||
if (width && (flags & FLAGS_ZEROPAD) && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) {
|
||
6e4: 120000ec and w12, w7, #0x1
|
||
while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
6e8: 0a080148 and w8, w10, w8
|
||
if (width && (flags & FLAGS_ZEROPAD) && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) {
|
||
6ec: 350009c6 cbnz w6, 824 <_ntoa_long+0x194>
|
||
while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
6f0: 34000108 cbz w8, 710 <_ntoa_long+0x80>
|
||
buf[len++] = '0';
|
||
6f4: 5280060a mov w10, #0x30 // #48
|
||
6f8: 910004a5 add x5, x5, #0x1
|
||
6fc: 8b050088 add x8, x4, x5
|
||
while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
700: eb05013f cmp x9, x5
|
||
704: fa5f88a2 ccmp x5, #0x1f, #0x2, hi // hi = pmore
|
||
buf[len++] = '0';
|
||
708: 381ff10a sturb w10, [x8, #-1]
|
||
while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
70c: 54ffff69 b.ls 6f8 <_ntoa_long+0x68> // b.plast
|
||
while ((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
710: 340001cc cbz w12, 748 <_ntoa_long+0xb8>
|
||
714: f1007cbf cmp x5, #0x1f
|
||
718: 1a9f87ea cset w10, ls // ls = plast
|
||
71c: 7100015f cmp w10, #0x0
|
||
720: 2a0603e9 mov w9, w6
|
||
724: fa451120 ccmp x9, x5, #0x0, ne // ne = any
|
||
728: 54000109 b.ls 748 <_ntoa_long+0xb8> // b.plast
|
||
buf[len++] = '0';
|
||
72c: 5280060a mov w10, #0x30 // #48
|
||
730: 910004a5 add x5, x5, #0x1
|
||
734: 8b050088 add x8, x4, x5
|
||
while ((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
738: eb05013f cmp x9, x5
|
||
73c: fa5f88a2 ccmp x5, #0x1f, #0x2, hi // hi = pmore
|
||
buf[len++] = '0';
|
||
740: 381ff10a sturb w10, [x8, #-1]
|
||
while ((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
744: 54ffff69 b.ls 730 <_ntoa_long+0xa0> // b.plast
|
||
if (flags & FLAGS_HASH) {
|
||
748: 340001b1 cbz w17, 77c <_ntoa_long+0xec>
|
||
if (!(flags & FLAGS_PRECISION) && len && ((len == prec) || (len == width))) {
|
||
74c: 350008b0 cbnz w16, 860 <_ntoa_long+0x1d0>
|
||
750: b50007e5 cbnz x5, 84c <_ntoa_long+0x1bc>
|
||
if ((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
754: f100417f cmp x11, #0x10
|
||
758: 54000f20 b.eq 93c <_ntoa_long+0x2ac> // b.none
|
||
} else if ((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
75c: f100097f cmp x11, #0x2
|
||
760: 54000f21 b.ne 944 <_ntoa_long+0x2b4> // b.any
|
||
buf[len++] = 'b';
|
||
764: 52800c48 mov w8, #0x62 // #98
|
||
768: d2800025 mov x5, #0x1 // #1
|
||
76c: 390043e8 strb w8, [sp, #16]
|
||
buf[len++] = '0';
|
||
770: 52800608 mov w8, #0x30 // #48
|
||
774: 38256888 strb w8, [x4, x5]
|
||
778: 910004a5 add x5, x5, #0x1
|
||
if (len < PRINTF_NTOA_BUFFER_SIZE) {
|
||
77c: f10080bf cmp x5, #0x20
|
||
780: 540000a0 b.eq 794 <_ntoa_long+0x104> // b.none
|
||
if (negative) {
|
||
784: 340008d2 cbz w18, 89c <_ntoa_long+0x20c>
|
||
buf[len++] = '-';
|
||
788: 528005a8 mov w8, #0x2d // #45
|
||
78c: 38256888 strb w8, [x4, x5]
|
||
790: 910004a5 add x5, x5, #0x1
|
||
return _out_rev(out, buffer, idx, maxlen, buf, len, width, flags);
|
||
794: 97ffff7b bl 580 <_out_rev>
|
||
value /= base;
|
||
} while (value && (len < PRINTF_NTOA_BUFFER_SIZE));
|
||
}
|
||
|
||
return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
|
||
}
|
||
798: a8c37bfd ldp x29, x30, [sp], #48
|
||
79c: d65f03c0 ret
|
||
if (!(flags & FLAGS_PRECISION) || value) {
|
||
7a0: 52800011 mov w17, #0x0 // #0
|
||
7a4: f27b00ff tst x7, #0x20
|
||
7a8: 52800c24 mov w4, #0x61 // #97
|
||
7ac: 5280082e mov w14, #0x41 // #65
|
||
7b0: 1a8411ce csel w14, w14, w4, ne // ne = any
|
||
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
|
||
7b4: 510029ce sub w14, w14, #0xa
|
||
7b8: 910043e4 add x4, sp, #0x10
|
||
7bc: d2800005 mov x5, #0x0 // #0
|
||
const char digit = (char)(value % base);
|
||
7c0: 9acb092c udiv x12, x9, x11
|
||
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
|
||
7c4: 910004a5 add x5, x5, #0x1
|
||
7c8: 8b05008d add x13, x4, x5
|
||
const char digit = (char)(value % base);
|
||
7cc: 9b0ba58a msub x10, x12, x11, x9
|
||
7d0: 12001d48 and w8, w10, #0xff
|
||
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
|
||
7d4: f100255f cmp x10, #0x9
|
||
7d8: 1100c10a add w10, w8, #0x30
|
||
7dc: 0b0e0108 add w8, w8, w14
|
||
7e0: 12001d4a and w10, w10, #0xff
|
||
7e4: 12001d08 and w8, w8, #0xff
|
||
7e8: 1a8a8108 csel w8, w8, w10, hi // hi = pmore
|
||
7ec: 381ff1a8 sturb w8, [x13, #-1]
|
||
} while (value && (len < PRINTF_NTOA_BUFFER_SIZE));
|
||
7f0: eb0b013f cmp x9, x11
|
||
value /= base;
|
||
7f4: aa0c03e9 mov x9, x12
|
||
} while (value && (len < PRINTF_NTOA_BUFFER_SIZE));
|
||
7f8: fa5f28a2 ccmp x5, #0x1f, #0x2, cs // cs = hs, nlast
|
||
7fc: 54fffe29 b.ls 7c0 <_ntoa_long+0x130> // b.plast
|
||
if (!(flags & FLAGS_LEFT)) {
|
||
800: 370ffa47 tbnz w7, #1, 748 <_ntoa_long+0xb8>
|
||
while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
804: f1007cbf cmp x5, #0x1f
|
||
808: 2a0f03e9 mov w9, w15
|
||
80c: 1a9f87ea cset w10, ls // ls = plast
|
||
810: eb05013f cmp x9, x5
|
||
814: 1a9f97e8 cset w8, hi // hi = pmore
|
||
if (width && (flags & FLAGS_ZEROPAD) && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) {
|
||
818: 120000ec and w12, w7, #0x1
|
||
while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
81c: 0a080148 and w8, w10, w8
|
||
if (width && (flags & FLAGS_ZEROPAD) && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) {
|
||
820: 34fff686 cbz w6, 6f0 <_ntoa_long+0x60>
|
||
824: 3400048c cbz w12, 8b4 <_ntoa_long+0x224>
|
||
828: 35000072 cbnz w18, 834 <_ntoa_long+0x1a4>
|
||
82c: 721e04ff tst w7, #0xc
|
||
830: 54000040 b.eq 838 <_ntoa_long+0x1a8> // b.none
|
||
width--;
|
||
834: 510004c6 sub w6, w6, #0x1
|
||
while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
838: 35fff5e8 cbnz w8, 6f4 <_ntoa_long+0x64>
|
||
83c: 17ffffb8 b 71c <_ntoa_long+0x8c>
|
||
if (flags & FLAGS_HASH) {
|
||
840: 121c0111 and w17, w8, #0x10
|
||
844: 2a0803e7 mov w7, w8
|
||
848: 17ffffd7 b 7a4 <_ntoa_long+0x114>
|
||
if (!(flags & FLAGS_PRECISION) && len && ((len == prec) || (len == width))) {
|
||
84c: eb2f40bf cmp x5, w15, uxtw
|
||
850: 54000480 b.eq 8e0 <_ntoa_long+0x250> // b.none
|
||
854: eb2640bf cmp x5, w6, uxtw
|
||
858: 54000440 b.eq 8e0 <_ntoa_long+0x250> // b.none
|
||
85c: d503201f nop
|
||
} else if ((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
860: f1007cbf cmp x5, #0x1f
|
||
864: 1a9f87e8 cset w8, ls // ls = plast
|
||
if ((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
868: f100417f cmp x11, #0x10
|
||
86c: 54000480 b.eq 8fc <_ntoa_long+0x26c> // b.none
|
||
} else if ((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
870: 7100011f cmp w8, #0x0
|
||
874: 7a421960 ccmp w11, #0x2, #0x0, ne // ne = any
|
||
878: 54000081 b.ne 888 <_ntoa_long+0x1f8> // b.any
|
||
buf[len++] = 'b';
|
||
87c: 52800c48 mov w8, #0x62 // #98
|
||
880: 38256888 strb w8, [x4, x5]
|
||
884: 910004a5 add x5, x5, #0x1
|
||
if (len < PRINTF_NTOA_BUFFER_SIZE) {
|
||
888: f10080bf cmp x5, #0x20
|
||
88c: 54fff721 b.ne 770 <_ntoa_long+0xe0> // b.any
|
||
return _out_rev(out, buffer, idx, maxlen, buf, len, width, flags);
|
||
890: 97ffff3c bl 580 <_out_rev>
|
||
}
|
||
894: a8c37bfd ldp x29, x30, [sp], #48
|
||
898: d65f03c0 ret
|
||
} else if (flags & FLAGS_PLUS) {
|
||
89c: 37100167 tbnz w7, #2, 8c8 <_ntoa_long+0x238>
|
||
} else if (flags & FLAGS_SPACE) {
|
||
8a0: 361ff7a7 tbz w7, #3, 794 <_ntoa_long+0x104>
|
||
buf[len++] = ' ';
|
||
8a4: 52800408 mov w8, #0x20 // #32
|
||
8a8: 38256888 strb w8, [x4, x5]
|
||
8ac: 910004a5 add x5, x5, #0x1
|
||
8b0: 17ffffb9 b 794 <_ntoa_long+0x104>
|
||
while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
8b4: 35fff208 cbnz w8, 6f4 <_ntoa_long+0x64>
|
||
8b8: 17ffffa4 b 748 <_ntoa_long+0xb8>
|
||
8bc: 910043e4 add x4, sp, #0x10
|
||
size_t len = 0U;
|
||
8c0: d2800005 mov x5, #0x0 // #0
|
||
8c4: 17ffffb0 b 784 <_ntoa_long+0xf4>
|
||
buf[len++] = '+'; // ignore the space if the '+' exists
|
||
8c8: 52800568 mov w8, #0x2b // #43
|
||
8cc: 38256888 strb w8, [x4, x5]
|
||
8d0: 910004a5 add x5, x5, #0x1
|
||
return _out_rev(out, buffer, idx, maxlen, buf, len, width, flags);
|
||
8d4: 97ffff2b bl 580 <_out_rev>
|
||
}
|
||
8d8: a8c37bfd ldp x29, x30, [sp], #48
|
||
8dc: d65f03c0 ret
|
||
if (len && (base == 16U)) {
|
||
8e0: f10004aa subs x10, x5, #0x1
|
||
len--;
|
||
8e4: d10008a5 sub x5, x5, #0x2
|
||
if (len && (base == 16U)) {
|
||
8e8: 1a9f07e8 cset w8, ne // ne = any
|
||
8ec: 7100417f cmp w11, #0x10
|
||
8f0: 1a9f17e9 cset w9, eq // eq = none
|
||
8f4: 6a090108 ands w8, w8, w9
|
||
8f8: 54000160 b.eq 924 <_ntoa_long+0x294> // b.none
|
||
if ((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
8fc: 721b00e9 ands w9, w7, #0x20
|
||
900: 7a400904 ccmp w8, #0x0, #0x4, eq // eq = none
|
||
904: 54000141 b.ne 92c <_ntoa_long+0x29c> // b.any
|
||
} else if ((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
908: 7100013f cmp w9, #0x0
|
||
90c: 7a401904 ccmp w8, #0x0, #0x4, ne // ne = any
|
||
910: 54fffbc0 b.eq 888 <_ntoa_long+0x1f8> // b.none
|
||
buf[len++] = 'X';
|
||
914: 52800b08 mov w8, #0x58 // #88
|
||
918: 38256888 strb w8, [x4, x5]
|
||
91c: 910004a5 add x5, x5, #0x1
|
||
920: 17ffffda b 888 <_ntoa_long+0x1f8>
|
||
len--;
|
||
924: aa0a03e5 mov x5, x10
|
||
928: 17ffffce b 860 <_ntoa_long+0x1d0>
|
||
buf[len++] = 'x';
|
||
92c: 52800f08 mov w8, #0x78 // #120
|
||
930: 38256888 strb w8, [x4, x5]
|
||
934: 910004a5 add x5, x5, #0x1
|
||
938: 17ffffd4 b 888 <_ntoa_long+0x1f8>
|
||
if ((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
|
||
93c: 52800028 mov w8, #0x1 // #1
|
||
940: 17ffffef b 8fc <_ntoa_long+0x26c>
|
||
buf[len++] = '0';
|
||
944: 52800608 mov w8, #0x30 // #48
|
||
948: d2800025 mov x5, #0x1 // #1
|
||
94c: 390043e8 strb w8, [sp, #16]
|
||
if (len < PRINTF_NTOA_BUFFER_SIZE) {
|
||
950: 17ffff8d b 784 <_ntoa_long+0xf4>
|
||
954: d503201f nop
|
||
958: d503201f nop
|
||
95c: d503201f nop
|
||
|
||
0000000000000960 <_etoa>:
|
||
}
|
||
|
||
#if defined(PRINTF_SUPPORT_EXPONENTIAL)
|
||
// internal ftoa variant for exponential floating-point type, contributed by Martijn Jasperse <m.jasperse@gmail.com>
|
||
static size_t _etoa(out_fct_type out, char* buffer, size_t idx, size_t maxlen, double value, unsigned int prec, unsigned int width, unsigned int flags)
|
||
{
|
||
960: d10203ff sub sp, sp, #0x80
|
||
// check for NaN and special values
|
||
if ((value != value) || (value > DBL_MAX) || (value < -DBL_MAX)) {
|
||
964: 1e602000 fcmp d0, d0
|
||
{
|
||
968: a9017bfd stp x29, x30, [sp, #16]
|
||
96c: 910043fd add x29, sp, #0x10
|
||
970: a90253f3 stp x19, x20, [sp, #32]
|
||
974: aa0203f3 mov x19, x2
|
||
978: 2a0603f4 mov w20, w6
|
||
97c: a9035bf5 stp x21, x22, [sp, #48]
|
||
980: 2a0503f6 mov w22, w5
|
||
984: a90463f7 stp x23, x24, [sp, #64]
|
||
988: aa0003f7 mov x23, x0
|
||
98c: a9056bf9 stp x25, x26, [sp, #80]
|
||
990: aa0103f9 mov x25, x1
|
||
994: a90673fb stp x27, x28, [sp, #96]
|
||
998: aa0303fb mov x27, x3
|
||
if ((value != value) || (value > DBL_MAX) || (value < -DBL_MAX)) {
|
||
99c: 54001361 b.ne c08 <_etoa+0x2a8> // b.any
|
||
9a0: 92f00200 mov x0, #0x7fefffffffffffff // #9218868437227405311
|
||
9a4: 9e670001 fmov d1, x0
|
||
9a8: 1e612010 fcmpe d0, d1
|
||
9ac: 540012ec b.gt c08 <_etoa+0x2a8>
|
||
9b0: 92e00200 mov x0, #0xffefffffffffffff // #-4503599627370497
|
||
9b4: 9e670001 fmov d1, x0
|
||
9b8: 1e612010 fcmpe d0, d1
|
||
9bc: 54001264 b.mi c08 <_etoa+0x2a8> // b.first
|
||
return _ftoa(out, buffer, idx, maxlen, value, prec, width, flags);
|
||
}
|
||
|
||
// determine the sign
|
||
const bool negative = value < 0;
|
||
if (negative) {
|
||
9c0: 1e602018 fcmpe d0, #0.0
|
||
9c4: 1e614007 fneg d7, d0
|
||
|
||
conv.F = value;
|
||
int exp2 = (int)((conv.U >> 52U) & 0x07FFU) - 1023; // effectively log2
|
||
conv.U = (conv.U & ((1ULL << 52U) - 1U)) | (1023ULL << 52U); // drop the exponent so conv.F is now in [1,2)
|
||
// now approximate log10 from the log2 integer part and an expansion of ln around 1.5
|
||
int expval = (int)(0.1760912590558 + exp2 * 0.301029995663981 + (conv.F - 1.5) * 0.289529654602168);
|
||
9c8: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
9cc: fd47e817 ldr d23, [x0, #4048]
|
||
9d0: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
9d4: fd47ec01 ldr d1, [x0, #4056]
|
||
9d8: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
9dc: fd47f016 ldr d22, [x0, #4064]
|
||
9e0: 1e604ce7 fcsel d7, d7, d0, mi // mi = first
|
||
// now we want to compute 10^expval but we want to be sure it won't overflow
|
||
exp2 = (int)(expval * 3.321928094887362 + 0.5);
|
||
9e4: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
9e8: fd47f406 ldr d6, [x0, #4072]
|
||
const double z = expval * 2.302585092994046 - exp2 * 0.6931471805599453;
|
||
9ec: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
9f0: fd47f815 ldr d21, [x0, #4080]
|
||
9f4: d0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
9f8: fd47fc14 ldr d20, [x0, #4088]
|
||
int expval = (int)(0.1760912590558 + exp2 * 0.301029995663981 + (conv.F - 1.5) * 0.289529654602168);
|
||
9fc: 1e6f1018 fmov d24, #1.500000000000000000e+00
|
||
conv.F = value;
|
||
a00: 9e6600e1 fmov x1, d7
|
||
exp2 = (int)(expval * 3.321928094887362 + 0.5);
|
||
a04: 1e6c1003 fmov d3, #5.000000000000000000e-01
|
||
const double z2 = z * z;
|
||
conv.U = (uint64_t)(exp2 + 1023) << 52U;
|
||
// compute exp(z) using continued fractions, see https://en.wikipedia.org/wiki/Exponential_function#Continued_fractions_for_ex
|
||
conv.F *= 1 + 2 * z / (2 - z + (z2 / (6 + (z2 / (10 + z2 / 14)))));
|
||
a08: 1e659002 fmov d2, #1.400000000000000000e+01
|
||
a0c: 1e649011 fmov d17, #1.000000000000000000e+01
|
||
a10: 1e631013 fmov d19, #6.000000000000000000e+00
|
||
a14: 1e601010 fmov d16, #2.000000000000000000e+00
|
||
a18: 1e6e1012 fmov d18, #1.000000000000000000e+00
|
||
prec = PRINTF_DEFAULT_FLOAT_PRECISION;
|
||
a1c: 721600c3 ands w3, w6, #0x400
|
||
conv.U = (conv.U & ((1ULL << 52U) - 1U)) | (1023ULL << 52U); // drop the exponent so conv.F is now in [1,2)
|
||
a20: 9240cc20 and x0, x1, #0xfffffffffffff
|
||
int exp2 = (int)((conv.U >> 52U) & 0x07FFU) - 1023; // effectively log2
|
||
a24: d374f821 ubfx x1, x1, #52, #11
|
||
a28: 510ffc21 sub w1, w1, #0x3ff
|
||
conv.U = (conv.U & ((1ULL << 52U) - 1U)) | (1023ULL << 52U); // drop the exponent so conv.F is now in [1,2)
|
||
a2c: b24c2400 orr x0, x0, #0x3ff0000000000000
|
||
a30: 9e670005 fmov d5, x0
|
||
prec = PRINTF_DEFAULT_FLOAT_PRECISION;
|
||
a34: 528000c2 mov w2, #0x6 // #6
|
||
int expval = (int)(0.1760912590558 + exp2 * 0.301029995663981 + (conv.F - 1.5) * 0.289529654602168);
|
||
a38: 1e620024 scvtf d4, w1
|
||
prec = PRINTF_DEFAULT_FLOAT_PRECISION;
|
||
a3c: 1a821084 csel w4, w4, w2, ne // ne = any
|
||
int expval = (int)(0.1760912590558 + exp2 * 0.301029995663981 + (conv.F - 1.5) * 0.289529654602168);
|
||
a40: 1e7838a5 fsub d5, d5, d24
|
||
a44: 1e770884 fmul d4, d4, d23
|
||
a48: 1e7608a5 fmul d5, d5, d22
|
||
a4c: 1e612884 fadd d4, d4, d1
|
||
a50: 1e652884 fadd d4, d4, d5
|
||
a54: 1e780098 fcvtzs w24, d4
|
||
exp2 = (int)(expval * 3.321928094887362 + 0.5);
|
||
a58: 1e620301 scvtf d1, w24
|
||
a5c: 1e660824 fmul d4, d1, d6
|
||
const double z = expval * 2.302585092994046 - exp2 * 0.6931471805599453;
|
||
a60: 1e750821 fmul d1, d1, d21
|
||
exp2 = (int)(expval * 3.321928094887362 + 0.5);
|
||
a64: 1e632884 fadd d4, d4, d3
|
||
a68: 1e780080 fcvtzs w0, d4
|
||
const double z = expval * 2.302585092994046 - exp2 * 0.6931471805599453;
|
||
a6c: 1e620003 scvtf d3, w0
|
||
conv.U = (uint64_t)(exp2 + 1023) << 52U;
|
||
a70: 110ffc00 add w0, w0, #0x3ff
|
||
a74: 9e670004 fmov d4, x0
|
||
a78: 5f745484 shl d4, d4, #52
|
||
const double z = expval * 2.302585092994046 - exp2 * 0.6931471805599453;
|
||
a7c: 1e740863 fmul d3, d3, d20
|
||
a80: 1e633821 fsub d1, d1, d3
|
||
const double z2 = z * z;
|
||
a84: 1e610823 fmul d3, d1, d1
|
||
conv.F *= 1 + 2 * z / (2 - z + (z2 / (6 + (z2 / (10 + z2 / 14)))));
|
||
a88: 1e613a05 fsub d5, d16, d1
|
||
a8c: 1e612821 fadd d1, d1, d1
|
||
a90: 1e621862 fdiv d2, d3, d2
|
||
a94: 1e712842 fadd d2, d2, d17
|
||
a98: 1e621862 fdiv d2, d3, d2
|
||
a9c: 1e732842 fadd d2, d2, d19
|
||
aa0: 1e621863 fdiv d3, d3, d2
|
||
aa4: 1e652863 fadd d3, d3, d5
|
||
aa8: 1e631821 fdiv d1, d1, d3
|
||
aac: 1e722821 fadd d1, d1, d18
|
||
ab0: 1e640821 fmul d1, d1, d4
|
||
// correct for rounding errors
|
||
if (value < conv.F) {
|
||
ab4: 1e672030 fcmpe d1, d7
|
||
ab8: 54000c4c b.gt c40 <_etoa+0x2e0>
|
||
expval--;
|
||
conv.F /= 10;
|
||
}
|
||
|
||
// the exponent format is "%+03d" and largest value is "307", so set aside 4-5 characters
|
||
unsigned int minwidth = ((expval < 100) && (expval > -100)) ? 4U : 5U;
|
||
abc: 11018f00 add w0, w24, #0x63
|
||
ac0: 7103181f cmp w0, #0xc6
|
||
ac4: 1a9f97fc cset w28, hi // hi = pmore
|
||
ac8: 1100139c add w28, w28, #0x4
|
||
|
||
// in "%g" mode, "prec" is the number of *significant figures* not decimals
|
||
if (flags & FLAGS_ADAPT_EXP) {
|
||
acc: 36580134 tbz w20, #11, af0 <_etoa+0x190>
|
||
// do we want to fall-back to "%f" mode?
|
||
if ((value >= 1e-4) && (value < 1e6)) {
|
||
ad0: f0000040 adrp x0, b000 <pow10.0+0x80>
|
||
ad4: fd400002 ldr d2, [x0]
|
||
ad8: 1e6220f0 fcmpe d7, d2
|
||
adc: 54000d2a b.ge c80 <_etoa+0x320> // b.tcont
|
||
// no characters in exponent
|
||
minwidth = 0U;
|
||
expval = 0;
|
||
} else {
|
||
// we use one sigfig for the whole part
|
||
if ((prec > 0) && (flags & FLAGS_PRECISION)) {
|
||
ae0: 34000084 cbz w4, af0 <_etoa+0x190>
|
||
--prec;
|
||
ae4: 7100007f cmp w3, #0x0
|
||
ae8: 1a9f07e0 cset w0, ne // ne = any
|
||
aec: 4b000084 sub w4, w4, w0
|
||
|
||
// will everything fit?
|
||
unsigned int fwidth = width;
|
||
if (width > minwidth) {
|
||
// we didn't fall-back so subtract the characters required for the exponent
|
||
fwidth -= minwidth;
|
||
af0: 6b16039f cmp w28, w22
|
||
} else {
|
||
// not enough characters, so go back to default sizing
|
||
fwidth = 0U;
|
||
}
|
||
if ((flags & FLAGS_LEFT) && minwidth) {
|
||
af4: 121f0280 and w0, w20, #0x2
|
||
fwidth -= minwidth;
|
||
af8: 4b1c02c5 sub w5, w22, w28
|
||
afc: 5280003a mov w26, #0x1 // #1
|
||
b00: 1a9f30a5 csel w5, w5, wzr, cc // cc = lo, ul, last
|
||
if ((flags & FLAGS_LEFT) && minwidth) {
|
||
b04: 7100001f cmp w0, #0x0
|
||
b08: 1a9f07e0 cset w0, ne // ne = any
|
||
b0c: b9007fe0 str w0, [sp, #124]
|
||
b10: 1a9f00a5 csel w5, w5, wzr, eq // eq = none
|
||
// if we're padding on the right, DON'T pad the floating part
|
||
fwidth = 0U;
|
||
}
|
||
|
||
// rescale the float value
|
||
if (expval) {
|
||
b14: 34000058 cbz w24, b1c <_etoa+0x1bc>
|
||
value /= conv.F;
|
||
b18: 1e6118e7 fdiv d7, d7, d1
|
||
}
|
||
|
||
// output the floating part
|
||
const size_t start_idx = idx;
|
||
idx = _ftoa(out, buffer, idx, maxlen, negative ? -value : value, prec, fwidth, flags & ~FLAGS_ADAPT_EXP);
|
||
b1c: 1e602018 fcmpe d0, #0.0
|
||
b20: 54000ac4 b.mi c78 <_etoa+0x318> // b.first
|
||
b24: 1e6040e0 fmov d0, d7
|
||
b28: 12147a86 and w6, w20, #0xfffff7ff
|
||
b2c: aa1b03e3 mov x3, x27
|
||
b30: aa1303e2 mov x2, x19
|
||
b34: aa1903e1 mov x1, x25
|
||
b38: aa1703e0 mov x0, x23
|
||
b3c: 94000071 bl d00 <_ftoa>
|
||
b40: aa0003f5 mov x21, x0
|
||
|
||
// output the exponent part
|
||
if (minwidth) {
|
||
b44: 3400051a cbz w26, be4 <_etoa+0x284>
|
||
// output the exponential symbol
|
||
out((flags & FLAGS_UPPERCASE) ? 'E' : 'e', buffer, idx++, maxlen);
|
||
b48: f27b029f tst x20, #0x20
|
||
b4c: 528008a1 mov w1, #0x45 // #69
|
||
b50: aa1503e2 mov x2, x21
|
||
b54: aa1b03e3 mov x3, x27
|
||
b58: 52800ca0 mov w0, #0x65 // #101
|
||
b5c: 1a801020 csel w0, w1, w0, ne // ne = any
|
||
b60: aa1903e1 mov x1, x25
|
||
b64: d63f02e0 blr x23
|
||
// output the exponent value
|
||
idx = _ntoa_long(out, buffer, idx, maxlen, (expval < 0) ? -expval : expval, expval < 0, 10, 0, minwidth - 1, FLAGS_ZEROPAD | FLAGS_PLUS);
|
||
b68: 7100031f cmp w24, #0x0
|
||
b6c: 528000a0 mov w0, #0x5 // #5
|
||
b70: 5a98a704 cneg w4, w24, lt // lt = tstop
|
||
b74: 5100079c sub w28, w28, #0x1
|
||
b78: b90003fc str w28, [sp]
|
||
out((flags & FLAGS_UPPERCASE) ? 'E' : 'e', buffer, idx++, maxlen);
|
||
b7c: 910006a2 add x2, x21, #0x1
|
||
idx = _ntoa_long(out, buffer, idx, maxlen, (expval < 0) ? -expval : expval, expval < 0, 10, 0, minwidth - 1, FLAGS_ZEROPAD | FLAGS_PLUS);
|
||
b80: b9000be0 str w0, [sp, #8]
|
||
b84: 93407c84 sxtw x4, w4
|
||
b88: 531f7f05 lsr w5, w24, #31
|
||
b8c: aa1b03e3 mov x3, x27
|
||
b90: aa1903e1 mov x1, x25
|
||
b94: aa1703e0 mov x0, x23
|
||
b98: 52800007 mov w7, #0x0 // #0
|
||
b9c: d2800146 mov x6, #0xa // #10
|
||
ba0: 97fffebc bl 690 <_ntoa_long>
|
||
ba4: aa0003f5 mov x21, x0
|
||
// might need to right-pad spaces
|
||
if (flags & FLAGS_LEFT) {
|
||
ba8: b9407fe0 ldr w0, [sp, #124]
|
||
bac: 340001c0 cbz w0, be4 <_etoa+0x284>
|
||
while (idx - start_idx < width)
|
||
bb0: cb1302b3 sub x19, x21, x19
|
||
bb4: eb1302df cmp x22, x19
|
||
bb8: 54000169 b.ls be4 <_etoa+0x284> // b.plast
|
||
bbc: d503201f nop
|
||
out(' ', buffer, idx++, maxlen);
|
||
bc0: aa1503e2 mov x2, x21
|
||
while (idx - start_idx < width)
|
||
bc4: 91000673 add x19, x19, #0x1
|
||
out(' ', buffer, idx++, maxlen);
|
||
bc8: aa1b03e3 mov x3, x27
|
||
bcc: aa1903e1 mov x1, x25
|
||
bd0: 52800400 mov w0, #0x20 // #32
|
||
bd4: d63f02e0 blr x23
|
||
bd8: 910006b5 add x21, x21, #0x1
|
||
while (idx - start_idx < width)
|
||
bdc: eb1302df cmp x22, x19
|
||
be0: 54ffff08 b.hi bc0 <_etoa+0x260> // b.pmore
|
||
}
|
||
}
|
||
return idx;
|
||
}
|
||
be4: aa1503e0 mov x0, x21
|
||
be8: a9417bfd ldp x29, x30, [sp, #16]
|
||
bec: a94253f3 ldp x19, x20, [sp, #32]
|
||
bf0: a9435bf5 ldp x21, x22, [sp, #48]
|
||
bf4: a94463f7 ldp x23, x24, [sp, #64]
|
||
bf8: a9456bf9 ldp x25, x26, [sp, #80]
|
||
bfc: a94673fb ldp x27, x28, [sp, #96]
|
||
c00: 910203ff add sp, sp, #0x80
|
||
c04: d65f03c0 ret
|
||
return _ftoa(out, buffer, idx, maxlen, value, prec, width, flags);
|
||
c08: 2a1403e6 mov w6, w20
|
||
c0c: 2a1603e5 mov w5, w22
|
||
c10: aa1b03e3 mov x3, x27
|
||
c14: aa1303e2 mov x2, x19
|
||
c18: aa1903e1 mov x1, x25
|
||
c1c: aa1703e0 mov x0, x23
|
||
}
|
||
c20: a9417bfd ldp x29, x30, [sp, #16]
|
||
c24: a94253f3 ldp x19, x20, [sp, #32]
|
||
c28: a9435bf5 ldp x21, x22, [sp, #48]
|
||
c2c: a94463f7 ldp x23, x24, [sp, #64]
|
||
c30: a9456bf9 ldp x25, x26, [sp, #80]
|
||
c34: a94673fb ldp x27, x28, [sp, #96]
|
||
c38: 910203ff add sp, sp, #0x80
|
||
idx = _ftoa(out, buffer, idx, maxlen, negative ? -value : value, prec, fwidth, flags & ~FLAGS_ADAPT_EXP);
|
||
c3c: 14000031 b d00 <_ftoa>
|
||
conv.F /= 10;
|
||
c40: 1e711821 fdiv d1, d1, d17
|
||
expval--;
|
||
c44: 51000718 sub w24, w24, #0x1
|
||
unsigned int minwidth = ((expval < 100) && (expval > -100)) ? 4U : 5U;
|
||
c48: 11018f00 add w0, w24, #0x63
|
||
c4c: 7103181f cmp w0, #0xc6
|
||
c50: 1a9f97fc cset w28, hi // hi = pmore
|
||
c54: 1100139c add w28, w28, #0x4
|
||
if (flags & FLAGS_ADAPT_EXP) {
|
||
c58: 365ff4d4 tbz w20, #11, af0 <_etoa+0x190>
|
||
c5c: 17ffff9d b ad0 <_etoa+0x170>
|
||
flags |= FLAGS_PRECISION; // make sure _ftoa respects precision
|
||
c60: 2a0003f4 mov w20, w0
|
||
fwidth = 0U;
|
||
c64: 52800005 mov w5, #0x0 // #0
|
||
minwidth = 0U;
|
||
c68: 5280001c mov w28, #0x0 // #0
|
||
expval = 0;
|
||
c6c: 52800018 mov w24, #0x0 // #0
|
||
if ((flags & FLAGS_LEFT) && minwidth) {
|
||
c70: 5280001a mov w26, #0x0 // #0
|
||
c74: b9007fff str wzr, [sp, #124]
|
||
idx = _ftoa(out, buffer, idx, maxlen, negative ? -value : value, prec, fwidth, flags & ~FLAGS_ADAPT_EXP);
|
||
c78: 1e6140e7 fneg d7, d7
|
||
c7c: 17ffffaa b b24 <_etoa+0x1c4>
|
||
if ((value >= 1e-4) && (value < 1e6)) {
|
||
c80: d2d09000 mov x0, #0x848000000000 // #145685290680320
|
||
c84: f2e825c0 movk x0, #0x412e, lsl #48
|
||
c88: 9e670002 fmov d2, x0
|
||
c8c: 1e6220f0 fcmpe d7, d2
|
||
c90: 54000044 b.mi c98 <_etoa+0x338> // b.first
|
||
c94: 17ffff93 b ae0 <_etoa+0x180>
|
||
prec = (unsigned)((int)prec - expval - 1);
|
||
c98: 6b180080 subs w0, w4, w24
|
||
c9c: 51000404 sub w4, w0, #0x1
|
||
flags |= FLAGS_PRECISION; // make sure _ftoa respects precision
|
||
ca0: 32160280 orr w0, w20, #0x400
|
||
prec = (unsigned)((int)prec - expval - 1);
|
||
ca4: 1a9fc084 csel w4, w4, wzr, gt
|
||
if (width > minwidth) {
|
||
ca8: 35000196 cbnz w22, cd8 <_etoa+0x378>
|
||
idx = _ftoa(out, buffer, idx, maxlen, negative ? -value : value, prec, fwidth, flags & ~FLAGS_ADAPT_EXP);
|
||
cac: 1e602018 fcmpe d0, #0.0
|
||
cb0: 54fffd84 b.mi c60 <_etoa+0x300> // b.first
|
||
cb4: 12147a86 and w6, w20, #0xfffff7ff
|
||
cb8: 1e6040e0 fmov d0, d7
|
||
cbc: 321600c6 orr w6, w6, #0x400
|
||
cc0: aa1b03e3 mov x3, x27
|
||
cc4: aa1303e2 mov x2, x19
|
||
cc8: aa1903e1 mov x1, x25
|
||
ccc: aa1703e0 mov x0, x23
|
||
cd0: 52800005 mov w5, #0x0 // #0
|
||
cd4: 17ffffd3 b c20 <_etoa+0x2c0>
|
||
flags |= FLAGS_PRECISION; // make sure _ftoa respects precision
|
||
cd8: 2a0003f4 mov w20, w0
|
||
if (width > minwidth) {
|
||
cdc: 2a1603e5 mov w5, w22
|
||
ce0: 5280001a mov w26, #0x0 // #0
|
||
ce4: 52800018 mov w24, #0x0 // #0
|
||
minwidth = 0U;
|
||
ce8: 5280001c mov w28, #0x0 // #0
|
||
if (width > minwidth) {
|
||
cec: b9007fff str wzr, [sp, #124]
|
||
cf0: 17ffff8b b b1c <_etoa+0x1bc>
|
||
cf4: d503201f nop
|
||
cf8: d503201f nop
|
||
cfc: d503201f nop
|
||
|
||
0000000000000d00 <_ftoa>:
|
||
if (value != value)
|
||
d00: 1e602000 fcmp d0, d0
|
||
{
|
||
d04: 2a0603e7 mov w7, w6
|
||
if (value != value)
|
||
d08: 54000e01 b.ne ec8 <_ftoa+0x1c8> // b.any
|
||
if (value < -DBL_MAX)
|
||
d0c: 92e00206 mov x6, #0xffefffffffffffff // #-4503599627370497
|
||
d10: 9e6700c1 fmov d1, x6
|
||
d14: 1e612010 fcmpe d0, d1
|
||
d18: 54001184 b.mi f48 <_ftoa+0x248> // b.first
|
||
d1c: aa0003ef mov x15, x0
|
||
if (value > DBL_MAX)
|
||
d20: 92f00200 mov x0, #0x7fefffffffffffff // #9218868437227405311
|
||
d24: 9e670001 fmov d1, x0
|
||
d28: aa0103f0 mov x16, x1
|
||
d2c: aa0203f1 mov x17, x2
|
||
d30: aa0303f2 mov x18, x3
|
||
d34: 1e612010 fcmpe d0, d1
|
||
d38: 54000b2c b.gt e9c <_ftoa+0x19c>
|
||
if ((value > PRINTF_MAX_FLOAT) || (value < -PRINTF_MAX_FLOAT)) {
|
||
d3c: d2d9aca0 mov x0, #0xcd6500000000 // #225833675390976
|
||
d40: f2e839a0 movk x0, #0x41cd, lsl #48
|
||
d44: 9e670001 fmov d1, x0
|
||
d48: 1e612010 fcmpe d0, d1
|
||
d4c: 54000f2c b.gt f30 <_ftoa+0x230>
|
||
d50: d2d9aca0 mov x0, #0xcd6500000000 // #225833675390976
|
||
d54: f2f839a0 movk x0, #0xc1cd, lsl #48
|
||
d58: 9e670001 fmov d1, x0
|
||
d5c: 1e612010 fcmpe d0, d1
|
||
d60: 54000e84 b.mi f30 <_ftoa+0x230> // b.first
|
||
if (value < 0) {
|
||
d64: 1e602018 fcmpe d0, #0.0
|
||
{
|
||
d68: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
d6c: 910003fd mov x29, sp
|
||
if (value < 0) {
|
||
d70: 54000ca4 b.mi f04 <_ftoa+0x204> // b.first
|
||
bool negative = false;
|
||
d74: 52800003 mov w3, #0x0 // #0
|
||
if (!(flags & FLAGS_PRECISION)) {
|
||
d78: 36500ce7 tbz w7, #10, f14 <_ftoa+0x214>
|
||
while ((len < PRINTF_FTOA_BUFFER_SIZE) && (prec > 9U)) {
|
||
d7c: 7100249f cmp w4, #0x9
|
||
d80: 910043ec add x12, sp, #0x10
|
||
d84: d2800008 mov x8, #0x0 // #0
|
||
buf[len++] = '0';
|
||
d88: 52800601 mov w1, #0x30 // #48
|
||
while ((len < PRINTF_FTOA_BUFFER_SIZE) && (prec > 9U)) {
|
||
d8c: 54001929 b.ls 10b0 <_ftoa+0x3b0> // b.plast
|
||
buf[len++] = '0';
|
||
d90: 91000508 add x8, x8, #0x1
|
||
prec--;
|
||
d94: 51000484 sub w4, w4, #0x1
|
||
buf[len++] = '0';
|
||
d98: 8b080180 add x0, x12, x8
|
||
while ((len < PRINTF_FTOA_BUFFER_SIZE) && (prec > 9U)) {
|
||
d9c: f1007d1f cmp x8, #0x1f
|
||
da0: 7a499880 ccmp w4, #0x9, #0x0, ls // ls = plast
|
||
buf[len++] = '0';
|
||
da4: 381ff001 sturb w1, [x0, #-1]
|
||
while ((len < PRINTF_FTOA_BUFFER_SIZE) && (prec > 9U)) {
|
||
da8: 54ffff48 b.hi d90 <_ftoa+0x90> // b.pmore
|
||
dac: d2d9aca0 mov x0, #0xcd6500000000 // #225833675390976
|
||
db0: f2e839a0 movk x0, #0x41cd, lsl #48
|
||
db4: 9e670002 fmov d2, x0
|
||
int whole = (int)value;
|
||
db8: 1e78000a fcvtzs w10, d0
|
||
if (diff > 0.5) {
|
||
dbc: 1e6c1003 fmov d3, #5.000000000000000000e-01
|
||
double tmp = (value - whole) * pow10[prec];
|
||
dc0: 1e620141 scvtf d1, w10
|
||
dc4: 1e613801 fsub d1, d0, d1
|
||
dc8: 1e620821 fmul d1, d1, d2
|
||
unsigned long frac = (unsigned long)tmp;
|
||
dcc: 9e79002e fcvtzu x14, d1
|
||
diff = tmp - frac;
|
||
dd0: 9e6301c4 ucvtf d4, x14
|
||
dd4: 1e643821 fsub d1, d1, d4
|
||
if (diff > 0.5) {
|
||
dd8: 1e632030 fcmpe d1, d3
|
||
ddc: 5400112c b.gt 1000 <_ftoa+0x300>
|
||
} else if (diff < 0.5) {
|
||
de0: 54000084 b.mi df0 <_ftoa+0xf0> // b.first
|
||
} else if ((frac == 0U) || (frac & 1U)) {
|
||
de4: b500154e cbnz x14, 108c <_ftoa+0x38c>
|
||
++frac;
|
||
de8: 910005ce add x14, x14, #0x1
|
||
dec: d503201f nop
|
||
if (prec == 0U) {
|
||
df0: 35000b64 cbnz w4, f5c <_ftoa+0x25c>
|
||
diff = value - (double)whole;
|
||
df4: 1e620141 scvtf d1, w10
|
||
if ((!(diff < 0.5) || (diff > 0.5)) && (whole & 1)) {
|
||
df8: 1e6c1002 fmov d2, #5.000000000000000000e-01
|
||
diff = value - (double)whole;
|
||
dfc: 1e613800 fsub d0, d0, d1
|
||
if ((!(diff < 0.5) || (diff > 0.5)) && (whole & 1)) {
|
||
e00: 1e622010 fcmpe d0, d2
|
||
e04: 540011a4 b.mi 1038 <_ftoa+0x338> // b.first
|
||
++whole;
|
||
e08: 12000140 and w0, w10, #0x1
|
||
e0c: 0b00014a add w10, w10, w0
|
||
buf[len++] = (char)(48 + (whole % 10));
|
||
e10: 528ccce1 mov w1, #0x6667 // #26215
|
||
e14: 72acccc1 movk w1, #0x6666, lsl #16
|
||
e18: 52800142 mov w2, #0xa // #10
|
||
e1c: d503201f nop
|
||
e20: 9b217d49 smull x9, w10, w1
|
||
while (len < PRINTF_FTOA_BUFFER_SIZE) {
|
||
e24: f100811f cmp x8, #0x20
|
||
e28: 54000c20 b.eq fac <_ftoa+0x2ac> // b.none
|
||
buf[len++] = (char)(48 + (whole % 10));
|
||
e2c: 9362fd29 asr x9, x9, #34
|
||
e30: 91000508 add x8, x8, #0x1
|
||
e34: 4b8a7d29 sub w9, w9, w10, asr #31
|
||
e38: 8b080180 add x0, x12, x8
|
||
e3c: 1b02a92b msub w11, w9, w2, w10
|
||
if (!(whole /= 10)) {
|
||
e40: 2a0903ea mov w10, w9
|
||
buf[len++] = (char)(48 + (whole % 10));
|
||
e44: 1100c169 add w9, w11, #0x30
|
||
e48: 381ff009 sturb w9, [x0, #-1]
|
||
if (!(whole /= 10)) {
|
||
e4c: 35fffeaa cbnz w10, e20 <_ftoa+0x120>
|
||
if (!(flags & FLAGS_LEFT) && (flags & FLAGS_ZEROPAD)) {
|
||
e50: 120004e0 and w0, w7, #0x3
|
||
e54: 7100041f cmp w0, #0x1
|
||
e58: 54000b00 b.eq fb8 <_ftoa+0x2b8> // b.none
|
||
if (len < PRINTF_FTOA_BUFFER_SIZE) {
|
||
e5c: f1007d1f cmp x8, #0x1f
|
||
e60: 540000a8 b.hi e74 <_ftoa+0x174> // b.pmore
|
||
if (negative) {
|
||
e64: 34000de3 cbz w3, 1020 <_ftoa+0x320>
|
||
buf[len++] = '-';
|
||
e68: 528005a0 mov w0, #0x2d // #45
|
||
e6c: 38286980 strb w0, [x12, x8]
|
||
e70: 91000508 add x8, x8, #0x1
|
||
return _out_rev(out, buffer, idx, maxlen, buf, len, width, flags);
|
||
e74: 2a0503e6 mov w6, w5
|
||
e78: aa0c03e4 mov x4, x12
|
||
e7c: aa0803e5 mov x5, x8
|
||
e80: aa1203e3 mov x3, x18
|
||
e84: aa1103e2 mov x2, x17
|
||
e88: aa1003e1 mov x1, x16
|
||
e8c: aa0f03e0 mov x0, x15
|
||
e90: 97fffdbc bl 580 <_out_rev>
|
||
}
|
||
e94: a8c37bfd ldp x29, x30, [sp], #48
|
||
e98: d65f03c0 ret
|
||
return _out_rev(out, buffer, idx, maxlen, (flags & FLAGS_PLUS) ? "fni+" : "fni", (flags & FLAGS_PLUS) ? 4U : 3U, width, flags);
|
||
e9c: 37100207 tbnz w7, #2, edc <_ftoa+0x1dc>
|
||
ea0: d2800060 mov x0, #0x3 // #3
|
||
ea4: 2a0503e6 mov w6, w5
|
||
ea8: d0000044 adrp x4, a000 <__swbuf_r+0xb0>
|
||
eac: 913a8084 add x4, x4, #0xea0
|
||
eb0: aa0003e5 mov x5, x0
|
||
eb4: aa1203e3 mov x3, x18
|
||
eb8: aa1103e2 mov x2, x17
|
||
ebc: aa1003e1 mov x1, x16
|
||
ec0: aa0f03e0 mov x0, x15
|
||
ec4: 17fffdaf b 580 <_out_rev>
|
||
return _out_rev(out, buffer, idx, maxlen, "nan", 3, width, flags);
|
||
ec8: 2a0503e6 mov w6, w5
|
||
ecc: d0000044 adrp x4, a000 <__swbuf_r+0xb0>
|
||
ed0: d2800065 mov x5, #0x3 // #3
|
||
ed4: 913ac084 add x4, x4, #0xeb0
|
||
ed8: 17fffdaa b 580 <_out_rev>
|
||
return _out_rev(out, buffer, idx, maxlen, (flags & FLAGS_PLUS) ? "fni+" : "fni", (flags & FLAGS_PLUS) ? 4U : 3U, width, flags);
|
||
edc: d2800080 mov x0, #0x4 // #4
|
||
ee0: 2a0503e6 mov w6, w5
|
||
ee4: d0000044 adrp x4, a000 <__swbuf_r+0xb0>
|
||
ee8: 913aa084 add x4, x4, #0xea8
|
||
eec: aa0003e5 mov x5, x0
|
||
ef0: aa1203e3 mov x3, x18
|
||
ef4: aa1103e2 mov x2, x17
|
||
ef8: aa1003e1 mov x1, x16
|
||
efc: aa0f03e0 mov x0, x15
|
||
f00: 17fffda0 b 580 <_out_rev>
|
||
value = 0 - value;
|
||
f04: 2f00e401 movi d1, #0x0
|
||
negative = true;
|
||
f08: 52800023 mov w3, #0x1 // #1
|
||
value = 0 - value;
|
||
f0c: 1e603820 fsub d0, d1, d0
|
||
if (!(flags & FLAGS_PRECISION)) {
|
||
f10: 3757f367 tbnz w7, #10, d7c <_ftoa+0x7c>
|
||
f14: d2d09000 mov x0, #0x848000000000 // #145685290680320
|
||
f18: 910043ec add x12, sp, #0x10
|
||
f1c: f2e825c0 movk x0, #0x412e, lsl #48
|
||
f20: d2800008 mov x8, #0x0 // #0
|
||
f24: 9e670002 fmov d2, x0
|
||
prec = PRINTF_DEFAULT_FLOAT_PRECISION;
|
||
f28: 528000c4 mov w4, #0x6 // #6
|
||
f2c: 17ffffa3 b db8 <_ftoa+0xb8>
|
||
return _etoa(out, buffer, idx, maxlen, value, prec, width, flags);
|
||
f30: 2a0703e6 mov w6, w7
|
||
f34: aa1203e3 mov x3, x18
|
||
f38: aa1103e2 mov x2, x17
|
||
f3c: aa1003e1 mov x1, x16
|
||
f40: aa0f03e0 mov x0, x15
|
||
f44: 17fffe87 b 960 <_etoa>
|
||
return _out_rev(out, buffer, idx, maxlen, "fni-", 4, width, flags);
|
||
f48: 2a0503e6 mov w6, w5
|
||
f4c: d0000044 adrp x4, a000 <__swbuf_r+0xb0>
|
||
f50: d2800085 mov x5, #0x4 // #4
|
||
f54: 913ae084 add x4, x4, #0xeb8
|
||
f58: 17fffd8a b 580 <_out_rev>
|
||
f5c: 51008081 sub w1, w4, #0x20
|
||
buf[len++] = (char)(48U + (frac % 10U));
|
||
f60: b202e7e2 mov x2, #0xcccccccccccccccc // #-3689348814741910324
|
||
f64: 0b080021 add w1, w1, w8
|
||
f68: f29999a2 movk x2, #0xcccd
|
||
f6c: 1400000d b fa0 <_ftoa+0x2a0>
|
||
f70: d343fd6b lsr x11, x11, #3
|
||
if (!(frac /= 10U)) {
|
||
f74: f10025df cmp x14, #0x9
|
||
--count;
|
||
f78: 51000480 sub w0, w4, #0x1
|
||
buf[len++] = (char)(48U + (frac % 10U));
|
||
f7c: 91000509 add x9, x8, #0x1
|
||
f80: 8b0b096d add x13, x11, x11, lsl #2
|
||
f84: cb0d05cd sub x13, x14, x13, lsl #1
|
||
if (!(frac /= 10U)) {
|
||
f88: aa0b03ee mov x14, x11
|
||
buf[len++] = (char)(48U + (frac % 10U));
|
||
f8c: 1100c1ab add w11, w13, #0x30
|
||
f90: 3828698b strb w11, [x12, x8]
|
||
if (!(frac /= 10U)) {
|
||
f94: 54000569 b.ls 1040 <_ftoa+0x340> // b.plast
|
||
--count;
|
||
f98: 2a0003e4 mov w4, w0
|
||
buf[len++] = (char)(48U + (frac % 10U));
|
||
f9c: aa0903e8 mov x8, x9
|
||
fa0: 9bc27dcb umulh x11, x14, x2
|
||
while (len < PRINTF_FTOA_BUFFER_SIZE) {
|
||
fa4: 6b01009f cmp w4, w1
|
||
fa8: 54fffe41 b.ne f70 <_ftoa+0x270> // b.any
|
||
if (!(flags & FLAGS_LEFT) && (flags & FLAGS_ZEROPAD)) {
|
||
fac: 120004e0 and w0, w7, #0x3
|
||
fb0: 7100041f cmp w0, #0x1
|
||
fb4: 54fff601 b.ne e74 <_ftoa+0x174> // b.any
|
||
if (width && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) {
|
||
fb8: 34fff525 cbz w5, e5c <_ftoa+0x15c>
|
||
fbc: 35000763 cbnz w3, 10a8 <_ftoa+0x3a8>
|
||
fc0: 721e04ff tst w7, #0xc
|
||
fc4: 54000721 b.ne 10a8 <_ftoa+0x3a8> // b.any
|
||
while ((len < width) && (len < PRINTF_FTOA_BUFFER_SIZE)) {
|
||
fc8: 2a0503e1 mov w1, w5
|
||
fcc: eb01011f cmp x8, x1
|
||
fd0: 54fff462 b.cs e5c <_ftoa+0x15c> // b.hs, b.nlast
|
||
fd4: f1007d1f cmp x8, #0x1f
|
||
buf[len++] = '0';
|
||
fd8: 52800602 mov w2, #0x30 // #48
|
||
while ((len < width) && (len < PRINTF_FTOA_BUFFER_SIZE)) {
|
||
fdc: 54fff4c8 b.hi e74 <_ftoa+0x174> // b.pmore
|
||
buf[len++] = '0';
|
||
fe0: 91000508 add x8, x8, #0x1
|
||
fe4: 8b080180 add x0, x12, x8
|
||
while ((len < width) && (len < PRINTF_FTOA_BUFFER_SIZE)) {
|
||
fe8: eb01011f cmp x8, x1
|
||
buf[len++] = '0';
|
||
fec: 381ff002 sturb w2, [x0, #-1]
|
||
while ((len < width) && (len < PRINTF_FTOA_BUFFER_SIZE)) {
|
||
ff0: 54fff360 b.eq e5c <_ftoa+0x15c> // b.none
|
||
ff4: f100811f cmp x8, #0x20
|
||
ff8: 54ffff41 b.ne fe0 <_ftoa+0x2e0> // b.any
|
||
ffc: 17ffff9e b e74 <_ftoa+0x174>
|
||
++frac;
|
||
1000: 910005ce add x14, x14, #0x1
|
||
if (frac >= pow10[prec]) {
|
||
1004: 9e6301c1 ucvtf d1, x14
|
||
1008: 1e622030 fcmpe d1, d2
|
||
100c: 5400004a b.ge 1014 <_ftoa+0x314> // b.tcont
|
||
1010: 17ffff78 b df0 <_ftoa+0xf0>
|
||
++whole;
|
||
1014: 1100054a add w10, w10, #0x1
|
||
frac = 0;
|
||
1018: d280000e mov x14, #0x0 // #0
|
||
101c: 17ffff75 b df0 <_ftoa+0xf0>
|
||
} else if (flags & FLAGS_PLUS) {
|
||
1020: 371003c7 tbnz w7, #2, 1098 <_ftoa+0x398>
|
||
} else if (flags & FLAGS_SPACE) {
|
||
1024: 361ff287 tbz w7, #3, e74 <_ftoa+0x174>
|
||
buf[len++] = ' ';
|
||
1028: 52800400 mov w0, #0x20 // #32
|
||
102c: 38286980 strb w0, [x12, x8]
|
||
1030: 91000508 add x8, x8, #0x1
|
||
1034: 17ffff90 b e74 <_ftoa+0x174>
|
||
if ((!(diff < 0.5) || (diff > 0.5)) && (whole & 1)) {
|
||
1038: 54ffee8c b.gt e08 <_ftoa+0x108>
|
||
103c: 17ffff75 b e10 <_ftoa+0x110>
|
||
while ((len < PRINTF_FTOA_BUFFER_SIZE) && (count-- > 0U)) {
|
||
1040: f100813f cmp x9, #0x20
|
||
1044: 54000420 b.eq 10c8 <_ftoa+0x3c8> // b.none
|
||
1048: 91000901 add x1, x8, #0x2
|
||
104c: 51000884 sub w4, w4, #0x2
|
||
1050: 8b040021 add x1, x1, x4
|
||
buf[len++] = '0';
|
||
1054: 52800602 mov w2, #0x30 // #48
|
||
while ((len < PRINTF_FTOA_BUFFER_SIZE) && (count-- > 0U)) {
|
||
1058: 34000340 cbz w0, 10c0 <_ftoa+0x3c0>
|
||
105c: d503201f nop
|
||
buf[len++] = '0';
|
||
1060: 91000529 add x9, x9, #0x1
|
||
1064: 8b090180 add x0, x12, x9
|
||
while ((len < PRINTF_FTOA_BUFFER_SIZE) && (count-- > 0U)) {
|
||
1068: f100813f cmp x9, #0x20
|
||
buf[len++] = '0';
|
||
106c: 381ff002 sturb w2, [x0, #-1]
|
||
while ((len < PRINTF_FTOA_BUFFER_SIZE) && (count-- > 0U)) {
|
||
1070: 540002c0 b.eq 10c8 <_ftoa+0x3c8> // b.none
|
||
1074: eb01013f cmp x9, x1
|
||
1078: 54ffff41 b.ne 1060 <_ftoa+0x360> // b.any
|
||
buf[len++] = '.';
|
||
107c: 528005c0 mov w0, #0x2e // #46
|
||
1080: 91000428 add x8, x1, #0x1
|
||
1084: 38216980 strb w0, [x12, x1]
|
||
1088: 17ffff62 b e10 <_ftoa+0x110>
|
||
} else if ((frac == 0U) || (frac & 1U)) {
|
||
108c: 3607eb2e tbz w14, #0, df0 <_ftoa+0xf0>
|
||
++frac;
|
||
1090: 910005ce add x14, x14, #0x1
|
||
1094: 17ffff57 b df0 <_ftoa+0xf0>
|
||
buf[len++] = '+'; // ignore the space if the '+' exists
|
||
1098: 52800560 mov w0, #0x2b // #43
|
||
109c: 38286980 strb w0, [x12, x8]
|
||
10a0: 91000508 add x8, x8, #0x1
|
||
10a4: 17ffff74 b e74 <_ftoa+0x174>
|
||
width--;
|
||
10a8: 510004a5 sub w5, w5, #0x1
|
||
10ac: 17ffffc7 b fc8 <_ftoa+0x2c8>
|
||
double tmp = (value - whole) * pow10[prec];
|
||
10b0: b0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
10b4: 913e0000 add x0, x0, #0xf80
|
||
10b8: fc645802 ldr d2, [x0, w4, uxtw #3]
|
||
10bc: 17ffff3f b db8 <_ftoa+0xb8>
|
||
while ((len < PRINTF_FTOA_BUFFER_SIZE) && (count-- > 0U)) {
|
||
10c0: aa0903e1 mov x1, x9
|
||
10c4: 17ffffee b 107c <_ftoa+0x37c>
|
||
buf[len++] = '0';
|
||
10c8: aa0903e8 mov x8, x9
|
||
10cc: 17ffffb8 b fac <_ftoa+0x2ac>
|
||
|
||
00000000000010d0 <_out_char>:
|
||
if (character) {
|
||
10d0: 72001c00 ands w0, w0, #0xff
|
||
10d4: 54000041 b.ne 10dc <_out_char+0xc> // b.any
|
||
}
|
||
10d8: d65f03c0 ret
|
||
_putchar(character);
|
||
10dc: 17fffd05 b 4f0 <putc>
|
||
|
||
00000000000010e0 <_out_fct>:
|
||
if (character) {
|
||
10e0: 72001c00 ands w0, w0, #0xff
|
||
10e4: 54000080 b.eq 10f4 <_out_fct+0x14> // b.none
|
||
((out_fct_wrap_type*)buffer)->fct(character, ((out_fct_wrap_type*)buffer)->arg);
|
||
10e8: a9400422 ldp x2, x1, [x1]
|
||
10ec: aa0203f0 mov x16, x2
|
||
10f0: d61f0200 br x16
|
||
}
|
||
10f4: d65f03c0 ret
|
||
10f8: d503201f nop
|
||
10fc: d503201f nop
|
||
|
||
0000000000001100 <_vsnprintf>:
|
||
#endif // PRINTF_SUPPORT_EXPONENTIAL
|
||
#endif // PRINTF_SUPPORT_FLOAT
|
||
|
||
// internal vsnprintf
|
||
static int _vsnprintf(out_fct_type out, char* buffer, const size_t maxlen, const char* format, va_list va)
|
||
{
|
||
1100: d102c3ff sub sp, sp, #0xb0
|
||
unsigned int flags, width, precision, n;
|
||
size_t idx = 0U;
|
||
|
||
if (!buffer) {
|
||
// use null output function
|
||
out = _out_null;
|
||
1104: f100003f cmp x1, #0x0
|
||
{
|
||
1108: a9017bfd stp x29, x30, [sp, #16]
|
||
110c: 910043fd add x29, sp, #0x10
|
||
1110: a90253f3 stp x19, x20, [sp, #32]
|
||
out = _out_null;
|
||
1114: f0fffff3 adrp x19, 0 <main>
|
||
1118: 9115c273 add x19, x19, #0x570
|
||
{
|
||
111c: a9056bf9 stp x25, x26, [sp, #80]
|
||
out = _out_null;
|
||
1120: 9a800273 csel x19, x19, x0, eq // eq = none
|
||
{
|
||
1124: aa0103fa mov x26, x1
|
||
1128: a90673fb stp x27, x28, [sp, #96]
|
||
112c: aa0203fc mov x28, x2
|
||
}
|
||
|
||
while (*format) {
|
||
1130: d280001b mov x27, #0x0 // #0
|
||
1134: b9401880 ldr w0, [x4, #24]
|
||
1138: b9007be0 str w0, [sp, #120]
|
||
113c: f9400480 ldr x0, [x4, #8]
|
||
1140: f90047e0 str x0, [sp, #136]
|
||
1144: 39400065 ldrb w5, [x3]
|
||
1148: f9400880 ldr x0, [x4, #16]
|
||
114c: f9004be0 str x0, [sp, #144]
|
||
1150: b9401c80 ldr w0, [x4, #28]
|
||
1154: b900abe0 str w0, [sp, #168]
|
||
1158: f9400094 ldr x20, [x4]
|
||
115c: 34003ae5 cbz w5, 18b8 <_vsnprintf+0x7b8>
|
||
1160: a90463f7 stp x23, x24, [sp, #64]
|
||
default:
|
||
break;
|
||
}
|
||
|
||
// evaluate specifier
|
||
switch (*format) {
|
||
1164: b0000058 adrp x24, a000 <__swbuf_r+0xb0>
|
||
1168: 913b0300 add x0, x24, #0xec0
|
||
116c: aa0303f9 mov x25, x3
|
||
1170: f90043e0 str x0, [sp, #128]
|
||
1174: b0000040 adrp x0, a000 <__swbuf_r+0xb0>
|
||
1178: 913da000 add x0, x0, #0xf68
|
||
117c: f9004fe0 str x0, [sp, #152]
|
||
1180: 1400000a b 11a8 <_vsnprintf+0xa8>
|
||
out(*format, buffer, idx++, maxlen);
|
||
1184: 91000764 add x4, x27, #0x1
|
||
1188: 2a0503e0 mov w0, w5
|
||
out('%', buffer, idx++, maxlen);
|
||
format++;
|
||
break;
|
||
|
||
default:
|
||
out(*format, buffer, idx++, maxlen);
|
||
118c: aa1b03e2 mov x2, x27
|
||
1190: aa1c03e3 mov x3, x28
|
||
1194: aa1a03e1 mov x1, x26
|
||
1198: aa0403fb mov x27, x4
|
||
119c: d63f0260 blr x19
|
||
while (*format) {
|
||
11a0: 39400325 ldrb w5, [x25]
|
||
11a4: 34000c85 cbz w5, 1334 <_vsnprintf+0x234>
|
||
format++;
|
||
11a8: 91000739 add x25, x25, #0x1
|
||
if (*format != '%') {
|
||
11ac: 710094bf cmp w5, #0x25
|
||
11b0: 54fffea1 b.ne 1184 <_vsnprintf+0x84> // b.any
|
||
switch (*format) {
|
||
11b4: aa1903e8 mov x8, x25
|
||
flags = 0U;
|
||
11b8: 52800006 mov w6, #0x0 // #0
|
||
switch (*format) {
|
||
11bc: 38401500 ldrb w0, [x8], #1
|
||
11c0: 7100ac1f cmp w0, #0x2b
|
||
11c4: 54000180 b.eq 11f4 <_vsnprintf+0xf4> // b.none
|
||
11c8: 540001c8 b.hi 1200 <_vsnprintf+0x100> // b.pmore
|
||
11cc: 7100801f cmp w0, #0x20
|
||
11d0: 54000260 b.eq 121c <_vsnprintf+0x11c> // b.none
|
||
11d4: 71008c1f cmp w0, #0x23
|
||
11d8: 540002e1 b.ne 1234 <_vsnprintf+0x134> // b.any
|
||
flags |= FLAGS_HASH;
|
||
11dc: 321c00c6 orr w6, w6, #0x10
|
||
format++;
|
||
11e0: aa0803f9 mov x25, x8
|
||
switch (*format) {
|
||
11e4: aa1903e8 mov x8, x25
|
||
11e8: 38401500 ldrb w0, [x8], #1
|
||
11ec: 7100ac1f cmp w0, #0x2b
|
||
11f0: 54fffec1 b.ne 11c8 <_vsnprintf+0xc8> // b.any
|
||
flags |= FLAGS_PLUS;
|
||
11f4: 321e00c6 orr w6, w6, #0x4
|
||
format++;
|
||
11f8: aa0803f9 mov x25, x8
|
||
11fc: 17fffffa b 11e4 <_vsnprintf+0xe4>
|
||
switch (*format) {
|
||
1200: 7100b41f cmp w0, #0x2d
|
||
1204: 54000120 b.eq 1228 <_vsnprintf+0x128> // b.none
|
||
1208: 7100c01f cmp w0, #0x30
|
||
120c: 540062c1 b.ne 1e64 <_vsnprintf+0xd64> // b.any
|
||
flags |= FLAGS_ZEROPAD;
|
||
1210: 320000c6 orr w6, w6, #0x1
|
||
format++;
|
||
1214: aa0803f9 mov x25, x8
|
||
1218: 17fffff3 b 11e4 <_vsnprintf+0xe4>
|
||
flags |= FLAGS_SPACE;
|
||
121c: 321d00c6 orr w6, w6, #0x8
|
||
format++;
|
||
1220: aa0803f9 mov x25, x8
|
||
1224: 17fffff0 b 11e4 <_vsnprintf+0xe4>
|
||
flags |= FLAGS_LEFT;
|
||
1228: 321f00c6 orr w6, w6, #0x2
|
||
format++;
|
||
122c: aa0803f9 mov x25, x8
|
||
1230: 17ffffed b 11e4 <_vsnprintf+0xe4>
|
||
} else if (*format == '*') {
|
||
1234: 7100a81f cmp w0, #0x2a
|
||
width = 0U;
|
||
1238: 52800018 mov w24, #0x0 // #0
|
||
} else if (*format == '*') {
|
||
123c: 540002e0 b.eq 1298 <_vsnprintf+0x198> // b.none
|
||
precision = 0U;
|
||
1240: 52800017 mov w23, #0x0 // #0
|
||
switch (*format) {
|
||
1244: 7101b01f cmp w0, #0x6c
|
||
format++;
|
||
1248: aa0803e4 mov x4, x8
|
||
switch (*format) {
|
||
124c: 54001f20 b.eq 1630 <_vsnprintf+0x530> // b.none
|
||
1250: 54000588 b.hi 1300 <_vsnprintf+0x200> // b.pmore
|
||
1254: 7101a01f cmp w0, #0x68
|
||
1258: 54001e20 b.eq 161c <_vsnprintf+0x51c> // b.none
|
||
125c: 7101a81f cmp w0, #0x6a
|
||
1260: 54006241 b.ne 1ea8 <_vsnprintf+0xda8> // b.any
|
||
switch (*format) {
|
||
1264: 39400720 ldrb w0, [x25, #1]
|
||
flags |= (sizeof(size_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG);
|
||
1268: 321800c6 orr w6, w6, #0x100
|
||
switch (*format) {
|
||
126c: 51009402 sub w2, w0, #0x25
|
||
format++;
|
||
1270: 91000499 add x25, x4, #0x1
|
||
switch (*format) {
|
||
1274: 71014c5f cmp w2, #0x53
|
||
1278: 54000069 b.ls 1284 <_vsnprintf+0x184> // b.plast
|
||
out(*format, buffer, idx++, maxlen);
|
||
127c: 91000764 add x4, x27, #0x1
|
||
1280: 17ffffc3 b 118c <_vsnprintf+0x8c>
|
||
switch (*format) {
|
||
1284: f94043e1 ldr x1, [sp, #128]
|
||
1288: 78625821 ldrh w1, [x1, w2, uxtw #1]
|
||
128c: 10000062 adr x2, 1298 <_vsnprintf+0x198>
|
||
1290: 8b21a841 add x1, x2, w1, sxth #2
|
||
1294: d61f0020 br x1
|
||
const int w = va_arg(va, int);
|
||
1298: b9407be0 ldr w0, [sp, #120]
|
||
129c: 37f806c0 tbnz w0, #31, 1374 <_vsnprintf+0x274>
|
||
12a0: 91002e82 add x2, x20, #0xb
|
||
12a4: aa1403e0 mov x0, x20
|
||
12a8: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
12ac: b9400018 ldr w24, [x0]
|
||
if (w < 0) {
|
||
12b0: 36f80078 tbz w24, #31, 12bc <_vsnprintf+0x1bc>
|
||
flags |= FLAGS_LEFT; // reverse padding
|
||
12b4: 321f00c6 orr w6, w6, #0x2
|
||
width = (unsigned int)-w;
|
||
12b8: 4b1803f8 neg w24, w24
|
||
if (*format == '.') {
|
||
12bc: 39400720 ldrb w0, [x25, #1]
|
||
format++;
|
||
12c0: aa0803f9 mov x25, x8
|
||
12c4: 91000508 add x8, x8, #0x1
|
||
if (*format == '.') {
|
||
12c8: 7100b81f cmp w0, #0x2e
|
||
12cc: 54fffba1 b.ne 1240 <_vsnprintf+0x140> // b.any
|
||
if (_is_digit(*format)) {
|
||
12d0: 39400720 ldrb w0, [x25, #1]
|
||
flags |= FLAGS_PRECISION;
|
||
12d4: 321600c6 orr w6, w6, #0x400
|
||
format++;
|
||
12d8: aa0803e4 mov x4, x8
|
||
return (ch >= '0') && (ch <= '9');
|
||
12dc: 5100c002 sub w2, w0, #0x30
|
||
if (_is_digit(*format)) {
|
||
12e0: 12001c42 and w2, w2, #0xff
|
||
12e4: 7100245f cmp w2, #0x9
|
||
12e8: 54001b29 b.ls 164c <_vsnprintf+0x54c> // b.plast
|
||
} else if (*format == '*') {
|
||
12ec: 7100a81f cmp w0, #0x2a
|
||
12f0: 54002a20 b.eq 1834 <_vsnprintf+0x734> // b.none
|
||
format++;
|
||
12f4: aa0803f9 mov x25, x8
|
||
12f8: 91000508 add x8, x8, #0x1
|
||
12fc: 17ffffd1 b 1240 <_vsnprintf+0x140>
|
||
switch (*format) {
|
||
1300: 7101d01f cmp w0, #0x74
|
||
1304: 54fffb00 b.eq 1264 <_vsnprintf+0x164> // b.none
|
||
1308: 7101e81f cmp w0, #0x7a
|
||
130c: 54fffac0 b.eq 1264 <_vsnprintf+0x164> // b.none
|
||
switch (*format) {
|
||
1310: 5101bc02 sub w2, w0, #0x6f
|
||
format++;
|
||
1314: aa0803f9 mov x25, x8
|
||
switch (*format) {
|
||
1318: 7100245f cmp w2, #0x9
|
||
131c: 54fffb08 b.hi 127c <_vsnprintf+0x17c> // b.pmore
|
||
1320: f9404fe1 ldr x1, [sp, #152]
|
||
1324: 78625821 ldrh w1, [x1, w2, uxtw #1]
|
||
1328: 10000062 adr x2, 1334 <_vsnprintf+0x234>
|
||
132c: 8b21a841 add x1, x2, w1, sxth #2
|
||
1330: d61f0020 br x1
|
||
1334: a94463f7 ldp x23, x24, [sp, #64]
|
||
|
||
// termination
|
||
out((char)0, buffer, idx < maxlen ? idx : maxlen - 1U, maxlen);
|
||
|
||
// return written chars without terminating \0
|
||
return (int)idx;
|
||
1338: 2a1b03f4 mov w20, w27
|
||
out((char)0, buffer, idx < maxlen ? idx : maxlen - 1U, maxlen);
|
||
133c: eb1b039f cmp x28, x27
|
||
1340: d1000782 sub x2, x28, #0x1
|
||
1344: aa1a03e1 mov x1, x26
|
||
1348: 9a9b9042 csel x2, x2, x27, ls // ls = plast
|
||
134c: aa1c03e3 mov x3, x28
|
||
1350: 52800000 mov w0, #0x0 // #0
|
||
1354: d63f0260 blr x19
|
||
}
|
||
1358: 2a1403e0 mov w0, w20
|
||
135c: a9417bfd ldp x29, x30, [sp, #16]
|
||
1360: a94253f3 ldp x19, x20, [sp, #32]
|
||
1364: a9456bf9 ldp x25, x26, [sp, #80]
|
||
1368: a94673fb ldp x27, x28, [sp, #96]
|
||
136c: 9102c3ff add sp, sp, #0xb0
|
||
1370: d65f03c0 ret
|
||
const int w = va_arg(va, int);
|
||
1374: b9407be0 ldr w0, [sp, #120]
|
||
1378: 11002002 add w2, w0, #0x8
|
||
137c: 7100005f cmp w2, #0x0
|
||
1380: 5400228d b.le 17d0 <_vsnprintf+0x6d0>
|
||
1384: 91002e84 add x4, x20, #0xb
|
||
1388: aa1403e0 mov x0, x20
|
||
138c: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
1390: b9007be2 str w2, [sp, #120]
|
||
1394: 17ffffc6 b 12ac <_vsnprintf+0x1ac>
|
||
if (*format == 'x' || *format == 'X') {
|
||
1398: 121a7802 and w2, w0, #0xffffffdf
|
||
139c: 7101605f cmp w2, #0x58
|
||
13a0: 54001781 b.ne 1690 <_vsnprintf+0x590> // b.any
|
||
if (*format == 'X') {
|
||
13a4: 7101601f cmp w0, #0x58
|
||
13a8: 54003c81 b.ne 1b38 <_vsnprintf+0xa38> // b.any
|
||
flags |= FLAGS_UPPERCASE;
|
||
13ac: 321b00c6 orr w6, w6, #0x20
|
||
13b0: d2800208 mov x8, #0x10 // #16
|
||
flags &= ~(FLAGS_PLUS | FLAGS_SPACE);
|
||
13b4: 121c74c6 and w6, w6, #0xfffffff3
|
||
13b8: 140000c0 b 16b8 <_vsnprintf+0x5b8>
|
||
if ((*format == 'g') || (*format == 'G'))
|
||
13bc: 121a7802 and w2, w0, #0xffffffdf
|
||
if ((*format == 'E') || (*format == 'G'))
|
||
13c0: 121e7800 and w0, w0, #0xfffffffd
|
||
flags |= FLAGS_ADAPT_EXP;
|
||
13c4: 71011c5f cmp w2, #0x47
|
||
13c8: 321500c2 orr w2, w6, #0x800
|
||
13cc: 1a860046 csel w6, w2, w6, eq // eq = none
|
||
flags |= FLAGS_UPPERCASE;
|
||
13d0: 7101141f cmp w0, #0x45
|
||
13d4: 321b00c0 orr w0, w6, #0x20
|
||
13d8: 1a860006 csel w6, w0, w6, eq // eq = none
|
||
idx = _etoa(out, buffer, idx, maxlen, va_arg(va, double), precision, width, flags);
|
||
13dc: b940abe0 ldr w0, [sp, #168]
|
||
13e0: 37f81c20 tbnz w0, #31, 1764 <_vsnprintf+0x664>
|
||
13e4: 91003e82 add x2, x20, #0xf
|
||
13e8: aa1403e0 mov x0, x20
|
||
13ec: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
13f0: fd400000 ldr d0, [x0]
|
||
13f4: aa1b03e2 mov x2, x27
|
||
13f8: 2a1803e5 mov w5, w24
|
||
13fc: 2a1703e4 mov w4, w23
|
||
1400: aa1c03e3 mov x3, x28
|
||
1404: aa1a03e1 mov x1, x26
|
||
1408: aa1303e0 mov x0, x19
|
||
140c: 97fffd55 bl 960 <_etoa>
|
||
1410: aa0003fb mov x27, x0
|
||
break;
|
||
1414: 17ffff63 b 11a0 <_vsnprintf+0xa0>
|
||
flags |= FLAGS_UPPERCASE;
|
||
1418: 7101181f cmp w0, #0x46
|
||
141c: 321b00c0 orr w0, w6, #0x20
|
||
1420: 1a860006 csel w6, w0, w6, eq // eq = none
|
||
idx = _ftoa(out, buffer, idx, maxlen, va_arg(va, double), precision, width, flags);
|
||
1424: b940abe0 ldr w0, [sp, #168]
|
||
1428: 37f818c0 tbnz w0, #31, 1740 <_vsnprintf+0x640>
|
||
142c: 91003e82 add x2, x20, #0xf
|
||
1430: aa1403e0 mov x0, x20
|
||
1434: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
1438: fd400000 ldr d0, [x0]
|
||
143c: aa1b03e2 mov x2, x27
|
||
1440: 2a1803e5 mov w5, w24
|
||
1444: 2a1703e4 mov w4, w23
|
||
1448: aa1c03e3 mov x3, x28
|
||
144c: aa1a03e1 mov x1, x26
|
||
1450: aa1303e0 mov x0, x19
|
||
1454: 97fffe2b bl d00 <_ftoa>
|
||
1458: aa0003fb mov x27, x0
|
||
break;
|
||
145c: 17ffff51 b 11a0 <_vsnprintf+0xa0>
|
||
out('%', buffer, idx++, maxlen);
|
||
1460: 91000760 add x0, x27, #0x1
|
||
1464: aa1b03e2 mov x2, x27
|
||
1468: aa1c03e3 mov x3, x28
|
||
146c: aa0003fb mov x27, x0
|
||
1470: aa1a03e1 mov x1, x26
|
||
1474: 528004a0 mov w0, #0x25 // #37
|
||
1478: d63f0260 blr x19
|
||
break;
|
||
147c: 17ffff49 b 11a0 <_vsnprintf+0xa0>
|
||
flags |= FLAGS_ZEROPAD | FLAGS_UPPERCASE;
|
||
1480: 52800420 mov w0, #0x21 // #33
|
||
1484: 2a0000c6 orr w6, w6, w0
|
||
idx = _ntoa_long_long(out, buffer, idx, maxlen, (uintptr_t)va_arg(va, void*), false, 16U, precision, width, flags);
|
||
1488: b9407be0 ldr w0, [sp, #120]
|
||
148c: 37f817e0 tbnz w0, #31, 1788 <_vsnprintf+0x688>
|
||
1490: 91003e82 add x2, x20, #0xf
|
||
1494: aa1403e0 mov x0, x20
|
||
1498: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
149c: 2a1703e7 mov w7, w23
|
||
14a0: aa1b03e2 mov x2, x27
|
||
14a4: f9400004 ldr x4, [x0]
|
||
14a8: 52800200 mov w0, #0x10 // #16
|
||
14ac: b90003e0 str w0, [sp]
|
||
14b0: b9000be6 str w6, [sp, #8]
|
||
14b4: d2800206 mov x6, #0x10 // #16
|
||
14b8: 52800005 mov w5, #0x0 // #0
|
||
14bc: aa1c03e3 mov x3, x28
|
||
14c0: aa1a03e1 mov x1, x26
|
||
14c4: aa1303e0 mov x0, x19
|
||
14c8: 97fffc72 bl 690 <_ntoa_long>
|
||
14cc: aa0003fb mov x27, x0
|
||
break;
|
||
14d0: 17ffff34 b 11a0 <_vsnprintf+0xa0>
|
||
if (!(flags & FLAGS_LEFT)) {
|
||
14d4: a9035bf5 stp x21, x22, [sp, #48]
|
||
14d8: 36082306 tbz w6, #1, 1938 <_vsnprintf+0x838>
|
||
out((char)va_arg(va, int), buffer, idx++, maxlen);
|
||
14dc: b9407be0 ldr w0, [sp, #120]
|
||
14e0: 37f82a20 tbnz w0, #31, 1a24 <_vsnprintf+0x924>
|
||
14e4: 91002e82 add x2, x20, #0xb
|
||
14e8: aa1403e0 mov x0, x20
|
||
14ec: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
14f0: 39400000 ldrb w0, [x0]
|
||
14f4: aa1b03e2 mov x2, x27
|
||
14f8: aa1c03e3 mov x3, x28
|
||
14fc: aa1a03e1 mov x1, x26
|
||
1500: 91000775 add x21, x27, #0x1
|
||
1504: d63f0260 blr x19
|
||
while (l++ < width) {
|
||
1508: 51000b00 sub w0, w24, #0x2
|
||
150c: 91000b6a add x10, x27, #0x2
|
||
1510: 7100071f cmp w24, #0x1
|
||
1514: 8b00015b add x27, x10, x0
|
||
1518: 540007c9 b.ls 1610 <_vsnprintf+0x510> // b.plast
|
||
151c: d503201f nop
|
||
out(' ', buffer, idx++, maxlen);
|
||
1520: aa1503e2 mov x2, x21
|
||
1524: aa1c03e3 mov x3, x28
|
||
1528: 910006b5 add x21, x21, #0x1
|
||
152c: aa1a03e1 mov x1, x26
|
||
1530: 52800400 mov w0, #0x20 // #32
|
||
1534: d63f0260 blr x19
|
||
while (l++ < width) {
|
||
1538: eb1b02bf cmp x21, x27
|
||
153c: 54ffff21 b.ne 1520 <_vsnprintf+0x420> // b.any
|
||
1540: a9435bf5 ldp x21, x22, [sp, #48]
|
||
1544: 17ffff17 b 11a0 <_vsnprintf+0xa0>
|
||
const char* p = va_arg(va, char*);
|
||
1548: b9407be0 ldr w0, [sp, #120]
|
||
154c: a9035bf5 stp x21, x22, [sp, #48]
|
||
1550: 37f812e0 tbnz w0, #31, 17ac <_vsnprintf+0x6ac>
|
||
1554: 91003e82 add x2, x20, #0xf
|
||
1558: aa1403e0 mov x0, x20
|
||
155c: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
1560: f9400015 ldr x21, [x0]
|
||
for (s = str; *s && maxsize--; ++s)
|
||
1564: 394002a8 ldrb w8, [x21]
|
||
1568: 2a0803e0 mov w0, w8
|
||
unsigned int l = _strnlen_s(p, precision ? precision : (size_t)-1);
|
||
156c: 350017d7 cbnz w23, 1864 <_vsnprintf+0x764>
|
||
for (s = str; *s && maxsize--; ++s)
|
||
1570: 92800022 mov x2, #0xfffffffffffffffe // #-2
|
||
1574: 340035c8 cbz w8, 1c2c <_vsnprintf+0xb2c>
|
||
1578: 91000456 add x22, x2, #0x1
|
||
157c: aa1503e2 mov x2, x21
|
||
1580: 8b1602b6 add x22, x21, x22
|
||
1584: 14000003 b 1590 <_vsnprintf+0x490>
|
||
1588: eb0202df cmp x22, x2
|
||
158c: 54001900 b.eq 18ac <_vsnprintf+0x7ac> // b.none
|
||
1590: 38401c44 ldrb w4, [x2, #1]!
|
||
1594: 35ffffa4 cbnz w4, 1588 <_vsnprintf+0x488>
|
||
return (unsigned int)(s - str);
|
||
1598: 4b150041 sub w1, w2, w21
|
||
159c: b900a3e1 str w1, [sp, #160]
|
||
if (flags & FLAGS_PRECISION) {
|
||
15a0: 121600c1 and w1, w6, #0x400
|
||
15a4: b9007fe1 str w1, [sp, #124]
|
||
15a8: 365000a6 tbz w6, #10, 15bc <_vsnprintf+0x4bc>
|
||
l = (l < precision ? l : precision);
|
||
15ac: b940a3e1 ldr w1, [sp, #160]
|
||
15b0: 6b17003f cmp w1, w23
|
||
15b4: 1a979021 csel w1, w1, w23, ls // ls = plast
|
||
15b8: b900a3e1 str w1, [sp, #160]
|
||
if (!(flags & FLAGS_LEFT)) {
|
||
15bc: 121f00c1 and w1, w6, #0x2
|
||
15c0: b900afe1 str w1, [sp, #172]
|
||
15c4: 36081826 tbz w6, #1, 18c8 <_vsnprintf+0x7c8>
|
||
while ((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
|
||
15c8: 34001108 cbz w8, 17e8 <_vsnprintf+0x6e8>
|
||
15cc: aa1b03e2 mov x2, x27
|
||
15d0: cb1b02b6 sub x22, x21, x27
|
||
15d4: 14000002 b 15dc <_vsnprintf+0x4dc>
|
||
out(*(p++), buffer, idx++, maxlen);
|
||
15d8: aa1503e2 mov x2, x21
|
||
while ((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
|
||
15dc: b9407fe1 ldr w1, [sp, #124]
|
||
15e0: 34000081 cbz w1, 15f0 <_vsnprintf+0x4f0>
|
||
15e4: 510006e4 sub w4, w23, #0x1
|
||
15e8: 340016d7 cbz w23, 18c0 <_vsnprintf+0x7c0>
|
||
15ec: 2a0403f7 mov w23, w4
|
||
out(*(p++), buffer, idx++, maxlen);
|
||
15f0: 91000455 add x21, x2, #0x1
|
||
15f4: aa1c03e3 mov x3, x28
|
||
15f8: aa1a03e1 mov x1, x26
|
||
15fc: d63f0260 blr x19
|
||
while ((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
|
||
1600: 38756ac0 ldrb w0, [x22, x21]
|
||
1604: 35fffea0 cbnz w0, 15d8 <_vsnprintf+0x4d8>
|
||
if (flags & FLAGS_LEFT) {
|
||
1608: b940afe0 ldr w0, [sp, #172]
|
||
160c: 35000ec0 cbnz w0, 17e4 <_vsnprintf+0x6e4>
|
||
while (l++ < width) {
|
||
1610: aa1503fb mov x27, x21
|
||
1614: a9435bf5 ldp x21, x22, [sp, #48]
|
||
1618: 17fffee2 b 11a0 <_vsnprintf+0xa0>
|
||
if (*format == 'h') {
|
||
161c: 39400720 ldrb w0, [x25, #1]
|
||
1620: 7101a01f cmp w0, #0x68
|
||
1624: 540013c0 b.eq 189c <_vsnprintf+0x79c> // b.none
|
||
flags |= FLAGS_SHORT;
|
||
1628: 321900c6 orr w6, w6, #0x80
|
||
162c: 17ffff10 b 126c <_vsnprintf+0x16c>
|
||
if (*format == 'l') {
|
||
1630: 39400720 ldrb w0, [x25, #1]
|
||
1634: 7101b01f cmp w0, #0x6c
|
||
1638: 54ffe181 b.ne 1268 <_vsnprintf+0x168> // b.any
|
||
switch (*format) {
|
||
163c: 39400b20 ldrb w0, [x25, #2]
|
||
flags |= FLAGS_LONG_LONG;
|
||
1640: 321804c6 orr w6, w6, #0x300
|
||
format++;
|
||
1644: 91000b24 add x4, x25, #0x2
|
||
1648: 17ffff09 b 126c <_vsnprintf+0x16c>
|
||
unsigned int i = 0U;
|
||
164c: 52800017 mov w23, #0x0 // #0
|
||
i = i * 10U + (unsigned int)(*((*str)++) - '0');
|
||
1650: 52800148 mov w8, #0xa // #10
|
||
1654: d503201f nop
|
||
1658: 1b0802e7 madd w7, w23, w8, w0
|
||
while (_is_digit(**str)) {
|
||
165c: 38401c80 ldrb w0, [x4, #1]!
|
||
return (ch >= '0') && (ch <= '9');
|
||
1660: 5100c002 sub w2, w0, #0x30
|
||
i = i * 10U + (unsigned int)(*((*str)++) - '0');
|
||
1664: 5100c0f7 sub w23, w7, #0x30
|
||
while (_is_digit(**str)) {
|
||
1668: 12001c42 and w2, w2, #0xff
|
||
166c: 7100245f cmp w2, #0x9
|
||
1670: 54ffff49 b.ls 1658 <_vsnprintf+0x558> // b.plast
|
||
1674: aa0403f9 mov x25, x4
|
||
1678: 91000488 add x8, x4, #0x1
|
||
167c: 17fffef2 b 1244 <_vsnprintf+0x144>
|
||
if (*format == 'x' || *format == 'X') {
|
||
1680: 121a7802 and w2, w0, #0xffffffdf
|
||
1684: 7101605f cmp w2, #0x58
|
||
1688: 54002580 b.eq 1b38 <_vsnprintf+0xa38> // b.none
|
||
168c: d503201f nop
|
||
} else if (*format == 'o') {
|
||
1690: 7101bc1f cmp w0, #0x6f
|
||
1694: 540021a0 b.eq 1ac8 <_vsnprintf+0x9c8> // b.none
|
||
} else if (*format == 'b') {
|
||
1698: 7101881f cmp w0, #0x62
|
||
169c: 54002820 b.eq 1ba0 <_vsnprintf+0xaa0> // b.none
|
||
flags &= ~FLAGS_HASH; // no hash for dec format
|
||
16a0: 121b78c6 and w6, w6, #0xffffffef
|
||
16a4: d2800148 mov x8, #0xa // #10
|
||
if ((*format != 'i') && (*format != 'd')) {
|
||
16a8: 7101a41f cmp w0, #0x69
|
||
16ac: 52800c82 mov w2, #0x64 // #100
|
||
16b0: 7a421004 ccmp w0, w2, #0x4, ne // ne = any
|
||
16b4: 54ffe801 b.ne 13b4 <_vsnprintf+0x2b4> // b.any
|
||
flags &= ~FLAGS_ZEROPAD;
|
||
16b8: f27600df tst x6, #0x400
|
||
16bc: 121f78c2 and w2, w6, #0xfffffffe
|
||
16c0: 1a861046 csel w6, w2, w6, ne // ne = any
|
||
if ((*format == 'i') || (*format == 'd')) {
|
||
16c4: 7101a41f cmp w0, #0x69
|
||
16c8: 52800c84 mov w4, #0x64 // #100
|
||
if (flags & FLAGS_LONG_LONG) {
|
||
16cc: 121700c2 and w2, w6, #0x200
|
||
if ((*format == 'i') || (*format == 'd')) {
|
||
16d0: 7a441004 ccmp w0, w4, #0x4, ne // ne = any
|
||
const long long value = va_arg(va, long long);
|
||
16d4: b9407be0 ldr w0, [sp, #120]
|
||
if ((*format == 'i') || (*format == 'd')) {
|
||
16d8: 54000ce1 b.ne 1874 <_vsnprintf+0x774> // b.any
|
||
if (flags & FLAGS_LONG_LONG) {
|
||
16dc: 35002122 cbnz w2, 1b00 <_vsnprintf+0xa00>
|
||
} else if (flags & FLAGS_LONG) {
|
||
16e0: 37402306 tbnz w6, #8, 1b40 <_vsnprintf+0xa40>
|
||
const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, int)
|
||
16e4: 37301b26 tbnz w6, #6, 1a48 <_vsnprintf+0x948>
|
||
: va_arg(va, int);
|
||
16e8: 36382926 tbz w6, #7, 1c0c <_vsnprintf+0xb0c>
|
||
const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, int)
|
||
16ec: 37f83300 tbnz w0, #31, 1d4c <_vsnprintf+0xc4c>
|
||
16f0: 91002e82 add x2, x20, #0xb
|
||
16f4: aa1403e0 mov x0, x20
|
||
16f8: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
16fc: 79c00005 ldrsh w5, [x0]
|
||
idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned int)(value > 0 ? value : 0 - value), value < 0, base, precision, width, flags);
|
||
1700: 710000bf cmp w5, #0x0
|
||
1704: 5a85a4a4 cneg w4, w5, lt // lt = tstop
|
||
1708: 12003c84 and w4, w4, #0xffff
|
||
170c: 2a1703e7 mov w7, w23
|
||
1710: 531f7ca5 lsr w5, w5, #31
|
||
1714: 93407c84 sxtw x4, w4
|
||
1718: aa1b03e2 mov x2, x27
|
||
171c: b9000be6 str w6, [sp, #8]
|
||
1720: aa0803e6 mov x6, x8
|
||
1724: b90003f8 str w24, [sp]
|
||
idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags);
|
||
1728: aa1c03e3 mov x3, x28
|
||
172c: aa1a03e1 mov x1, x26
|
||
1730: aa1303e0 mov x0, x19
|
||
1734: 97fffbd7 bl 690 <_ntoa_long>
|
||
1738: aa0003fb mov x27, x0
|
||
break;
|
||
173c: 17fffe99 b 11a0 <_vsnprintf+0xa0>
|
||
idx = _ftoa(out, buffer, idx, maxlen, va_arg(va, double), precision, width, flags);
|
||
1740: b940abe0 ldr w0, [sp, #168]
|
||
1744: 11004002 add w2, w0, #0x10
|
||
1748: 7100005f cmp w2, #0x0
|
||
174c: 54001b4d b.le 1ab4 <_vsnprintf+0x9b4>
|
||
1750: 91003e84 add x4, x20, #0xf
|
||
1754: aa1403e0 mov x0, x20
|
||
1758: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
175c: b900abe2 str w2, [sp, #168]
|
||
1760: 17ffff36 b 1438 <_vsnprintf+0x338>
|
||
idx = _etoa(out, buffer, idx, maxlen, va_arg(va, double), precision, width, flags);
|
||
1764: b940abe0 ldr w0, [sp, #168]
|
||
1768: 11004002 add w2, w0, #0x10
|
||
176c: 7100005f cmp w2, #0x0
|
||
1770: 5400198d b.le 1aa0 <_vsnprintf+0x9a0>
|
||
1774: 91003e84 add x4, x20, #0xf
|
||
1778: aa1403e0 mov x0, x20
|
||
177c: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
1780: b900abe2 str w2, [sp, #168]
|
||
1784: 17ffff1b b 13f0 <_vsnprintf+0x2f0>
|
||
idx = _ntoa_long_long(out, buffer, idx, maxlen, (uintptr_t)va_arg(va, void*), false, 16U, precision, width, flags);
|
||
1788: b9407be0 ldr w0, [sp, #120]
|
||
178c: 11002002 add w2, w0, #0x8
|
||
1790: 7100005f cmp w2, #0x0
|
||
1794: 540017cd b.le 1a8c <_vsnprintf+0x98c>
|
||
1798: 91003e84 add x4, x20, #0xf
|
||
179c: aa1403e0 mov x0, x20
|
||
17a0: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
17a4: b9007be2 str w2, [sp, #120]
|
||
17a8: 17ffff3d b 149c <_vsnprintf+0x39c>
|
||
const char* p = va_arg(va, char*);
|
||
17ac: b9407be0 ldr w0, [sp, #120]
|
||
17b0: 11002002 add w2, w0, #0x8
|
||
17b4: 7100005f cmp w2, #0x0
|
||
17b8: 5400160d b.le 1a78 <_vsnprintf+0x978>
|
||
17bc: 91003e84 add x4, x20, #0xf
|
||
17c0: aa1403e0 mov x0, x20
|
||
17c4: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
17c8: b9007be2 str w2, [sp, #120]
|
||
17cc: 17ffff65 b 1560 <_vsnprintf+0x460>
|
||
const int w = va_arg(va, int);
|
||
17d0: f94047e1 ldr x1, [sp, #136]
|
||
17d4: b9407be0 ldr w0, [sp, #120]
|
||
17d8: b9007be2 str w2, [sp, #120]
|
||
17dc: 8b20c020 add x0, x1, w0, sxtw
|
||
17e0: 17fffeb3 b 12ac <_vsnprintf+0x1ac>
|
||
17e4: aa1503fb mov x27, x21
|
||
while (l++ < width) {
|
||
17e8: b940a3e0 ldr w0, [sp, #160]
|
||
17ec: 6b18001f cmp w0, w24
|
||
17f0: 540009e2 b.cs 192c <_vsnprintf+0x82c> // b.hs, b.nlast
|
||
17f4: 51000704 sub w4, w24, #0x1
|
||
17f8: 91000776 add x22, x27, #0x1
|
||
17fc: 4b000084 sub w4, w4, w0
|
||
1800: 8b160095 add x21, x4, x22
|
||
1804: 14000002 b 180c <_vsnprintf+0x70c>
|
||
1808: 910006d6 add x22, x22, #0x1
|
||
out(' ', buffer, idx++, maxlen);
|
||
180c: aa1b03e2 mov x2, x27
|
||
1810: aa1c03e3 mov x3, x28
|
||
1814: aa1a03e1 mov x1, x26
|
||
1818: 52800400 mov w0, #0x20 // #32
|
||
181c: d63f0260 blr x19
|
||
1820: aa1603fb mov x27, x22
|
||
while (l++ < width) {
|
||
1824: eb1502df cmp x22, x21
|
||
1828: 54ffff01 b.ne 1808 <_vsnprintf+0x708> // b.any
|
||
while (l++ < width) {
|
||
182c: aa1503fb mov x27, x21
|
||
1830: 17ffff79 b 1614 <_vsnprintf+0x514>
|
||
const int prec = (int)va_arg(va, int);
|
||
1834: b9407be0 ldr w0, [sp, #120]
|
||
1838: 37f80b80 tbnz w0, #31, 19a8 <_vsnprintf+0x8a8>
|
||
183c: 91002e82 add x2, x20, #0xb
|
||
1840: aa1403e0 mov x0, x20
|
||
1844: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
precision = prec > 0 ? (unsigned int)prec : 0U;
|
||
1848: b9400007 ldr w7, [x0]
|
||
format++;
|
||
184c: 91000b39 add x25, x25, #0x2
|
||
switch (*format) {
|
||
1850: 39400320 ldrb w0, [x25]
|
||
1854: 91000728 add x8, x25, #0x1
|
||
precision = prec > 0 ? (unsigned int)prec : 0U;
|
||
1858: 710000ff cmp w7, #0x0
|
||
185c: 1a9fa0f7 csel w23, w7, wzr, ge // ge = tcont
|
||
format++;
|
||
1860: 17fffe79 b 1244 <_vsnprintf+0x144>
|
||
unsigned int l = _strnlen_s(p, precision ? precision : (size_t)-1);
|
||
1864: 2a1703e2 mov w2, w23
|
||
for (s = str; *s && maxsize--; ++s)
|
||
1868: 34001e28 cbz w8, 1c2c <_vsnprintf+0xb2c>
|
||
186c: d1000442 sub x2, x2, #0x1
|
||
1870: 17ffff42 b 1578 <_vsnprintf+0x478>
|
||
if (flags & FLAGS_LONG_LONG) {
|
||
1874: 35001302 cbnz w2, 1ad4 <_vsnprintf+0x9d4>
|
||
} else if (flags & FLAGS_LONG) {
|
||
1878: 37401806 tbnz w6, #8, 1b78 <_vsnprintf+0xa78>
|
||
const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int)
|
||
187c: 37300ba6 tbnz w6, #6, 19f0 <_vsnprintf+0x8f0>
|
||
: va_arg(va, unsigned int);
|
||
1880: 36381ba6 tbz w6, #7, 1bf4 <_vsnprintf+0xaf4>
|
||
const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int)
|
||
1884: 37f82500 tbnz w0, #31, 1d24 <_vsnprintf+0xc24>
|
||
1888: aa1403e0 mov x0, x20
|
||
188c: 91002e82 add x2, x20, #0xb
|
||
1890: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
1894: 79400004 ldrh w4, [x0]
|
||
1898: 1400005b b 1a04 <_vsnprintf+0x904>
|
||
switch (*format) {
|
||
189c: 39400b20 ldrb w0, [x25, #2]
|
||
flags |= FLAGS_CHAR;
|
||
18a0: 321a04c6 orr w6, w6, #0xc0
|
||
format++;
|
||
18a4: 91000b24 add x4, x25, #0x2
|
||
18a8: 17fffe71 b 126c <_vsnprintf+0x16c>
|
||
return (unsigned int)(s - str);
|
||
18ac: 4b1502c1 sub w1, w22, w21
|
||
18b0: b900a3e1 str w1, [sp, #160]
|
||
18b4: 17ffff3b b 15a0 <_vsnprintf+0x4a0>
|
||
while (*format) {
|
||
18b8: 52800014 mov w20, #0x0 // #0
|
||
18bc: 17fffea0 b 133c <_vsnprintf+0x23c>
|
||
18c0: aa0203f5 mov x21, x2
|
||
18c4: 17ffff51 b 1608 <_vsnprintf+0x508>
|
||
while (l++ < width) {
|
||
18c8: b940a3e1 ldr w1, [sp, #160]
|
||
18cc: 6b18003f cmp w1, w24
|
||
18d0: 11000420 add w0, w1, #0x1
|
||
18d4: 54002242 b.cs 1d1c <_vsnprintf+0xc1c> // b.hs, b.nlast
|
||
18d8: 51000700 sub w0, w24, #0x1
|
||
18dc: 91000776 add x22, x27, #0x1
|
||
18e0: 4b010000 sub w0, w0, w1
|
||
18e4: 8b160000 add x0, x0, x22
|
||
18e8: f90053e0 str x0, [sp, #160]
|
||
18ec: 14000002 b 18f4 <_vsnprintf+0x7f4>
|
||
18f0: 910006d6 add x22, x22, #0x1
|
||
out(' ', buffer, idx++, maxlen);
|
||
18f4: aa1b03e2 mov x2, x27
|
||
18f8: 52800400 mov w0, #0x20 // #32
|
||
18fc: aa1c03e3 mov x3, x28
|
||
1900: aa1a03e1 mov x1, x26
|
||
1904: d63f0260 blr x19
|
||
1908: aa1603fb mov x27, x22
|
||
while (l++ < width) {
|
||
190c: f94053e0 ldr x0, [sp, #160]
|
||
1910: eb16001f cmp x0, x22
|
||
1914: 54fffee1 b.ne 18f0 <_vsnprintf+0x7f0> // b.any
|
||
1918: 394002a8 ldrb w8, [x21]
|
||
191c: 11000700 add w0, w24, #0x1
|
||
1920: b900a3e0 str w0, [sp, #160]
|
||
while ((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
|
||
1924: 2a0803e0 mov w0, w8
|
||
1928: 35ffe528 cbnz w8, 15cc <_vsnprintf+0x4cc>
|
||
while (l++ < width) {
|
||
192c: aa1b03f5 mov x21, x27
|
||
while (l++ < width) {
|
||
1930: aa1503fb mov x27, x21
|
||
1934: 17ffff38 b 1614 <_vsnprintf+0x514>
|
||
while (l++ < width) {
|
||
1938: 7100071f cmp w24, #0x1
|
||
193c: 54001ec9 b.ls 1d14 <_vsnprintf+0xc14> // b.plast
|
||
1940: 51000b05 sub w5, w24, #0x2
|
||
1944: 91000776 add x22, x27, #0x1
|
||
1948: 8b0502d5 add x21, x22, x5
|
||
194c: 14000002 b 1954 <_vsnprintf+0x854>
|
||
1950: 910006d6 add x22, x22, #0x1
|
||
out(' ', buffer, idx++, maxlen);
|
||
1954: aa1b03e2 mov x2, x27
|
||
1958: aa1c03e3 mov x3, x28
|
||
195c: aa1a03e1 mov x1, x26
|
||
1960: 52800400 mov w0, #0x20 // #32
|
||
1964: d63f0260 blr x19
|
||
1968: aa1603fb mov x27, x22
|
||
while (l++ < width) {
|
||
196c: eb1502df cmp x22, x21
|
||
1970: 54ffff01 b.ne 1950 <_vsnprintf+0x850> // b.any
|
||
out((char)va_arg(va, int), buffer, idx++, maxlen);
|
||
1974: b9407be0 ldr w0, [sp, #120]
|
||
1978: 37f802a0 tbnz w0, #31, 19cc <_vsnprintf+0x8cc>
|
||
197c: 91002e82 add x2, x20, #0xb
|
||
1980: aa1403e0 mov x0, x20
|
||
1984: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
1988: 39400000 ldrb w0, [x0]
|
||
198c: aa1503e2 mov x2, x21
|
||
1990: 910006bb add x27, x21, #0x1
|
||
1994: aa1c03e3 mov x3, x28
|
||
1998: aa1a03e1 mov x1, x26
|
||
199c: d63f0260 blr x19
|
||
if (flags & FLAGS_LEFT) {
|
||
19a0: a9435bf5 ldp x21, x22, [sp, #48]
|
||
19a4: 17fffdff b 11a0 <_vsnprintf+0xa0>
|
||
const int prec = (int)va_arg(va, int);
|
||
19a8: b9407be0 ldr w0, [sp, #120]
|
||
19ac: 11002002 add w2, w0, #0x8
|
||
19b0: 7100005f cmp w2, #0x0
|
||
19b4: 5400058d b.le 1a64 <_vsnprintf+0x964>
|
||
19b8: 91002e84 add x4, x20, #0xb
|
||
19bc: aa1403e0 mov x0, x20
|
||
19c0: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
19c4: b9007be2 str w2, [sp, #120]
|
||
19c8: 17ffffa0 b 1848 <_vsnprintf+0x748>
|
||
out((char)va_arg(va, int), buffer, idx++, maxlen);
|
||
19cc: b9407be0 ldr w0, [sp, #120]
|
||
19d0: 11002002 add w2, w0, #0x8
|
||
19d4: 7100005f cmp w2, #0x0
|
||
19d8: 540016ed b.le 1cb4 <_vsnprintf+0xbb4>
|
||
19dc: 91002e84 add x4, x20, #0xb
|
||
19e0: aa1403e0 mov x0, x20
|
||
19e4: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
19e8: b9007be2 str w2, [sp, #120]
|
||
19ec: 17ffffe7 b 1988 <_vsnprintf+0x888>
|
||
const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int)
|
||
19f0: 37f81220 tbnz w0, #31, 1c34 <_vsnprintf+0xb34>
|
||
19f4: 91002e82 add x2, x20, #0xb
|
||
19f8: aa1403e0 mov x0, x20
|
||
19fc: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
1a00: 39400004 ldrb w4, [x0]
|
||
idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags);
|
||
1a04: 2a1703e7 mov w7, w23
|
||
1a08: 2a0403e4 mov w4, w4
|
||
1a0c: b9000be6 str w6, [sp, #8]
|
||
1a10: aa0803e6 mov x6, x8
|
||
1a14: b90003f8 str w24, [sp]
|
||
1a18: aa1b03e2 mov x2, x27
|
||
1a1c: 52800005 mov w5, #0x0 // #0
|
||
1a20: 17ffff42 b 1728 <_vsnprintf+0x628>
|
||
out((char)va_arg(va, int), buffer, idx++, maxlen);
|
||
1a24: b9407be0 ldr w0, [sp, #120]
|
||
1a28: 11002002 add w2, w0, #0x8
|
||
1a2c: 7100005f cmp w2, #0x0
|
||
1a30: 5400138d b.le 1ca0 <_vsnprintf+0xba0>
|
||
1a34: 91002e84 add x4, x20, #0xb
|
||
1a38: aa1403e0 mov x0, x20
|
||
1a3c: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
1a40: b9007be2 str w2, [sp, #120]
|
||
1a44: 17fffeab b 14f0 <_vsnprintf+0x3f0>
|
||
const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, int)
|
||
1a48: 37f81080 tbnz w0, #31, 1c58 <_vsnprintf+0xb58>
|
||
1a4c: 91002e82 add x2, x20, #0xb
|
||
1a50: aa1403e0 mov x0, x20
|
||
1a54: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
1a58: 39400005 ldrb w5, [x0]
|
||
1a5c: 2a0503e4 mov w4, w5
|
||
1a60: 17ffff2b b 170c <_vsnprintf+0x60c>
|
||
const int prec = (int)va_arg(va, int);
|
||
1a64: f94047e1 ldr x1, [sp, #136]
|
||
1a68: b9407be0 ldr w0, [sp, #120]
|
||
1a6c: b9007be2 str w2, [sp, #120]
|
||
1a70: 8b20c020 add x0, x1, w0, sxtw
|
||
1a74: 17ffff75 b 1848 <_vsnprintf+0x748>
|
||
const char* p = va_arg(va, char*);
|
||
1a78: f94047e1 ldr x1, [sp, #136]
|
||
1a7c: b9407be0 ldr w0, [sp, #120]
|
||
1a80: b9007be2 str w2, [sp, #120]
|
||
1a84: 8b20c020 add x0, x1, w0, sxtw
|
||
1a88: 17fffeb6 b 1560 <_vsnprintf+0x460>
|
||
idx = _ntoa_long_long(out, buffer, idx, maxlen, (uintptr_t)va_arg(va, void*), false, 16U, precision, width, flags);
|
||
1a8c: f94047e1 ldr x1, [sp, #136]
|
||
1a90: b9407be0 ldr w0, [sp, #120]
|
||
1a94: b9007be2 str w2, [sp, #120]
|
||
1a98: 8b20c020 add x0, x1, w0, sxtw
|
||
1a9c: 17fffe80 b 149c <_vsnprintf+0x39c>
|
||
idx = _etoa(out, buffer, idx, maxlen, va_arg(va, double), precision, width, flags);
|
||
1aa0: f9404be1 ldr x1, [sp, #144]
|
||
1aa4: b940abe0 ldr w0, [sp, #168]
|
||
1aa8: b900abe2 str w2, [sp, #168]
|
||
1aac: 8b20c020 add x0, x1, w0, sxtw
|
||
1ab0: 17fffe50 b 13f0 <_vsnprintf+0x2f0>
|
||
idx = _ftoa(out, buffer, idx, maxlen, va_arg(va, double), precision, width, flags);
|
||
1ab4: f9404be1 ldr x1, [sp, #144]
|
||
1ab8: b940abe0 ldr w0, [sp, #168]
|
||
1abc: b900abe2 str w2, [sp, #168]
|
||
1ac0: 8b20c020 add x0, x1, w0, sxtw
|
||
1ac4: 17fffe5d b 1438 <_vsnprintf+0x338>
|
||
flags &= ~(FLAGS_PLUS | FLAGS_SPACE);
|
||
1ac8: 121c74c6 and w6, w6, #0xfffffff3
|
||
1acc: d2800108 mov x8, #0x8 // #8
|
||
1ad0: 17fffefa b 16b8 <_vsnprintf+0x5b8>
|
||
idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags);
|
||
1ad4: 37f807e0 tbnz w0, #31, 1bd0 <_vsnprintf+0xad0>
|
||
1ad8: 91003e82 add x2, x20, #0xf
|
||
1adc: aa1403e0 mov x0, x20
|
||
1ae0: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
1ae4: 2a1703e7 mov w7, w23
|
||
1ae8: aa1b03e2 mov x2, x27
|
||
1aec: f9400004 ldr x4, [x0]
|
||
1af0: b90003f8 str w24, [sp]
|
||
1af4: b9000be6 str w6, [sp, #8]
|
||
1af8: aa0803e6 mov x6, x8
|
||
1afc: 17fffe6f b 14b8 <_vsnprintf+0x3b8>
|
||
const long long value = va_arg(va, long long);
|
||
1b00: 37f80560 tbnz w0, #31, 1bac <_vsnprintf+0xaac>
|
||
1b04: 91003e82 add x2, x20, #0xf
|
||
1b08: aa1403e0 mov x0, x20
|
||
1b0c: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
1b10: f9400005 ldr x5, [x0]
|
||
idx = _ntoa_long_long(out, buffer, idx, maxlen, (unsigned long long)(value > 0 ? value : 0 - value), value < 0, base, precision, width, flags);
|
||
1b14: 2a1703e7 mov w7, w23
|
||
1b18: aa1b03e2 mov x2, x27
|
||
1b1c: b90003f8 str w24, [sp]
|
||
1b20: f10000bf cmp x5, #0x0
|
||
1b24: b9000be6 str w6, [sp, #8]
|
||
1b28: da85a4a4 cneg x4, x5, lt // lt = tstop
|
||
1b2c: aa0803e6 mov x6, x8
|
||
1b30: d37ffca5 lsr x5, x5, #63
|
||
1b34: 17fffe62 b 14bc <_vsnprintf+0x3bc>
|
||
flags &= ~FLAGS_HASH; // no hash for dec format
|
||
1b38: d2800208 mov x8, #0x10 // #16
|
||
1b3c: 17fffedb b 16a8 <_vsnprintf+0x5a8>
|
||
const long value = va_arg(va, long);
|
||
1b40: 37f80c40 tbnz w0, #31, 1cc8 <_vsnprintf+0xbc8>
|
||
1b44: 91003e82 add x2, x20, #0xf
|
||
1b48: aa1403e0 mov x0, x20
|
||
1b4c: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
1b50: f9400005 ldr x5, [x0]
|
||
idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)(value > 0 ? value : 0 - value), value < 0, base, precision, width, flags);
|
||
1b54: 2a1703e7 mov w7, w23
|
||
1b58: aa1b03e2 mov x2, x27
|
||
1b5c: b90003f8 str w24, [sp]
|
||
1b60: f10000bf cmp x5, #0x0
|
||
1b64: b9000be6 str w6, [sp, #8]
|
||
1b68: da85a4a4 cneg x4, x5, lt // lt = tstop
|
||
1b6c: aa0803e6 mov x6, x8
|
||
1b70: d37ffca5 lsr x5, x5, #63
|
||
1b74: 17fffeed b 1728 <_vsnprintf+0x628>
|
||
idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags);
|
||
1b78: 37f80820 tbnz w0, #31, 1c7c <_vsnprintf+0xb7c>
|
||
1b7c: 91003e82 add x2, x20, #0xf
|
||
1b80: aa1403e0 mov x0, x20
|
||
1b84: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
1b88: 2a1703e7 mov w7, w23
|
||
1b8c: f9400004 ldr x4, [x0]
|
||
1b90: b90003f8 str w24, [sp]
|
||
1b94: b9000be6 str w6, [sp, #8]
|
||
1b98: aa0803e6 mov x6, x8
|
||
1b9c: 17ffff9f b 1a18 <_vsnprintf+0x918>
|
||
flags &= ~(FLAGS_PLUS | FLAGS_SPACE);
|
||
1ba0: 121c74c6 and w6, w6, #0xfffffff3
|
||
1ba4: d2800048 mov x8, #0x2 // #2
|
||
1ba8: 17fffec4 b 16b8 <_vsnprintf+0x5b8>
|
||
const long long value = va_arg(va, long long);
|
||
1bac: b9407be0 ldr w0, [sp, #120]
|
||
1bb0: 11002002 add w2, w0, #0x8
|
||
1bb4: 7100005f cmp w2, #0x0
|
||
1bb8: 54000a4d b.le 1d00 <_vsnprintf+0xc00>
|
||
1bbc: 91003e84 add x4, x20, #0xf
|
||
1bc0: aa1403e0 mov x0, x20
|
||
1bc4: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
1bc8: b9007be2 str w2, [sp, #120]
|
||
1bcc: 17ffffd1 b 1b10 <_vsnprintf+0xa10>
|
||
idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags);
|
||
1bd0: b9407be0 ldr w0, [sp, #120]
|
||
1bd4: 11002002 add w2, w0, #0x8
|
||
1bd8: 7100005f cmp w2, #0x0
|
||
1bdc: 5400088d b.le 1cec <_vsnprintf+0xbec>
|
||
1be0: 91003e84 add x4, x20, #0xf
|
||
1be4: aa1403e0 mov x0, x20
|
||
1be8: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
1bec: b9007be2 str w2, [sp, #120]
|
||
1bf0: 17ffffbd b 1ae4 <_vsnprintf+0x9e4>
|
||
: va_arg(va, unsigned int);
|
||
1bf4: 37f80d00 tbnz w0, #31, 1d94 <_vsnprintf+0xc94>
|
||
1bf8: aa1403e0 mov x0, x20
|
||
1bfc: 91002e82 add x2, x20, #0xb
|
||
1c00: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
1c04: b9400004 ldr w4, [x0]
|
||
1c08: 17ffff7f b 1a04 <_vsnprintf+0x904>
|
||
: va_arg(va, int);
|
||
1c0c: 37f80b20 tbnz w0, #31, 1d70 <_vsnprintf+0xc70>
|
||
1c10: 91002e82 add x2, x20, #0xb
|
||
1c14: aa1403e0 mov x0, x20
|
||
1c18: 927df054 and x20, x2, #0xfffffffffffffff8
|
||
1c1c: b9400005 ldr w5, [x0]
|
||
idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned int)(value > 0 ? value : 0 - value), value < 0, base, precision, width, flags);
|
||
1c20: 710000bf cmp w5, #0x0
|
||
1c24: 5a85a4a4 cneg w4, w5, lt // lt = tstop
|
||
1c28: 17fffeb9 b 170c <_vsnprintf+0x60c>
|
||
for (s = str; *s && maxsize--; ++s)
|
||
1c2c: b900a3ff str wzr, [sp, #160]
|
||
1c30: 17fffe5c b 15a0 <_vsnprintf+0x4a0>
|
||
const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int)
|
||
1c34: b9407be0 ldr w0, [sp, #120]
|
||
1c38: 11002002 add w2, w0, #0x8
|
||
1c3c: 7100005f cmp w2, #0x0
|
||
1c40: 54000bed b.le 1dbc <_vsnprintf+0xcbc>
|
||
1c44: 91002e84 add x4, x20, #0xb
|
||
1c48: aa1403e0 mov x0, x20
|
||
1c4c: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
1c50: b9007be2 str w2, [sp, #120]
|
||
1c54: 17ffff6b b 1a00 <_vsnprintf+0x900>
|
||
const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, int)
|
||
1c58: b9407be0 ldr w0, [sp, #120]
|
||
1c5c: 11002002 add w2, w0, #0x8
|
||
1c60: 7100005f cmp w2, #0x0
|
||
1c64: 54000b6d b.le 1dd0 <_vsnprintf+0xcd0>
|
||
1c68: 91002e84 add x4, x20, #0xb
|
||
1c6c: aa1403e0 mov x0, x20
|
||
1c70: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
1c74: b9007be2 str w2, [sp, #120]
|
||
1c78: 17ffff78 b 1a58 <_vsnprintf+0x958>
|
||
idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags);
|
||
1c7c: b9407be0 ldr w0, [sp, #120]
|
||
1c80: 11002002 add w2, w0, #0x8
|
||
1c84: 7100005f cmp w2, #0x0
|
||
1c88: 54000aed b.le 1de4 <_vsnprintf+0xce4>
|
||
1c8c: 91003e84 add x4, x20, #0xf
|
||
1c90: aa1403e0 mov x0, x20
|
||
1c94: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
1c98: b9007be2 str w2, [sp, #120]
|
||
1c9c: 17ffffbb b 1b88 <_vsnprintf+0xa88>
|
||
out((char)va_arg(va, int), buffer, idx++, maxlen);
|
||
1ca0: f94047e1 ldr x1, [sp, #136]
|
||
1ca4: b9407be0 ldr w0, [sp, #120]
|
||
1ca8: b9007be2 str w2, [sp, #120]
|
||
1cac: 8b20c020 add x0, x1, w0, sxtw
|
||
1cb0: 17fffe10 b 14f0 <_vsnprintf+0x3f0>
|
||
1cb4: f94047e1 ldr x1, [sp, #136]
|
||
1cb8: b9407be0 ldr w0, [sp, #120]
|
||
1cbc: b9007be2 str w2, [sp, #120]
|
||
1cc0: 8b20c020 add x0, x1, w0, sxtw
|
||
1cc4: 17ffff31 b 1988 <_vsnprintf+0x888>
|
||
const long value = va_arg(va, long);
|
||
1cc8: b9407be0 ldr w0, [sp, #120]
|
||
1ccc: 11002002 add w2, w0, #0x8
|
||
1cd0: 7100005f cmp w2, #0x0
|
||
1cd4: 5400092d b.le 1df8 <_vsnprintf+0xcf8>
|
||
1cd8: 91003e84 add x4, x20, #0xf
|
||
1cdc: aa1403e0 mov x0, x20
|
||
1ce0: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
1ce4: b9007be2 str w2, [sp, #120]
|
||
1ce8: 17ffff9a b 1b50 <_vsnprintf+0xa50>
|
||
idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags);
|
||
1cec: f94047e1 ldr x1, [sp, #136]
|
||
1cf0: b9407be0 ldr w0, [sp, #120]
|
||
1cf4: b9007be2 str w2, [sp, #120]
|
||
1cf8: 8b20c020 add x0, x1, w0, sxtw
|
||
1cfc: 17ffff7a b 1ae4 <_vsnprintf+0x9e4>
|
||
const long long value = va_arg(va, long long);
|
||
1d00: f94047e1 ldr x1, [sp, #136]
|
||
1d04: b9407be0 ldr w0, [sp, #120]
|
||
1d08: b9007be2 str w2, [sp, #120]
|
||
1d0c: 8b20c020 add x0, x1, w0, sxtw
|
||
1d10: 17ffff80 b 1b10 <_vsnprintf+0xa10>
|
||
while (l++ < width) {
|
||
1d14: aa1b03f5 mov x21, x27
|
||
1d18: 17ffff17 b 1974 <_vsnprintf+0x874>
|
||
while (l++ < width) {
|
||
1d1c: b900a3e0 str w0, [sp, #160]
|
||
1d20: 17ffff01 b 1924 <_vsnprintf+0x824>
|
||
const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int)
|
||
1d24: b9407be0 ldr w0, [sp, #120]
|
||
1d28: 11002002 add w2, w0, #0x8
|
||
1d2c: 7100005f cmp w2, #0x0
|
||
1d30: 5400078d b.le 1e20 <_vsnprintf+0xd20>
|
||
1d34: aa1403e0 mov x0, x20
|
||
1d38: 91002e84 add x4, x20, #0xb
|
||
1d3c: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
1d40: b9007be2 str w2, [sp, #120]
|
||
1d44: 79400004 ldrh w4, [x0]
|
||
1d48: 17ffff2f b 1a04 <_vsnprintf+0x904>
|
||
const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, int)
|
||
1d4c: b9407be0 ldr w0, [sp, #120]
|
||
1d50: 11002002 add w2, w0, #0x8
|
||
1d54: 7100005f cmp w2, #0x0
|
||
1d58: 540005ad b.le 1e0c <_vsnprintf+0xd0c>
|
||
1d5c: 91002e84 add x4, x20, #0xb
|
||
1d60: aa1403e0 mov x0, x20
|
||
1d64: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
1d68: b9007be2 str w2, [sp, #120]
|
||
1d6c: 17fffe64 b 16fc <_vsnprintf+0x5fc>
|
||
: va_arg(va, int);
|
||
1d70: b9407be0 ldr w0, [sp, #120]
|
||
1d74: 11002002 add w2, w0, #0x8
|
||
1d78: 7100005f cmp w2, #0x0
|
||
1d7c: 540005ed b.le 1e38 <_vsnprintf+0xd38>
|
||
1d80: 91002e84 add x4, x20, #0xb
|
||
1d84: aa1403e0 mov x0, x20
|
||
1d88: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
1d8c: b9007be2 str w2, [sp, #120]
|
||
1d90: 17ffffa3 b 1c1c <_vsnprintf+0xb1c>
|
||
: va_arg(va, unsigned int);
|
||
1d94: b9407be0 ldr w0, [sp, #120]
|
||
1d98: 11002002 add w2, w0, #0x8
|
||
1d9c: 7100005f cmp w2, #0x0
|
||
1da0: 5400056d b.le 1e4c <_vsnprintf+0xd4c>
|
||
1da4: aa1403e0 mov x0, x20
|
||
1da8: 91002e84 add x4, x20, #0xb
|
||
1dac: 927df094 and x20, x4, #0xfffffffffffffff8
|
||
1db0: b9007be2 str w2, [sp, #120]
|
||
1db4: b9400004 ldr w4, [x0]
|
||
1db8: 17ffff13 b 1a04 <_vsnprintf+0x904>
|
||
const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int)
|
||
1dbc: f94047e1 ldr x1, [sp, #136]
|
||
1dc0: b9407be0 ldr w0, [sp, #120]
|
||
1dc4: b9007be2 str w2, [sp, #120]
|
||
1dc8: 8b20c020 add x0, x1, w0, sxtw
|
||
1dcc: 17ffff0d b 1a00 <_vsnprintf+0x900>
|
||
const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, int)
|
||
1dd0: f94047e1 ldr x1, [sp, #136]
|
||
1dd4: b9407be0 ldr w0, [sp, #120]
|
||
1dd8: b9007be2 str w2, [sp, #120]
|
||
1ddc: 8b20c020 add x0, x1, w0, sxtw
|
||
1de0: 17ffff1e b 1a58 <_vsnprintf+0x958>
|
||
idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags);
|
||
1de4: f94047e1 ldr x1, [sp, #136]
|
||
1de8: b9407be0 ldr w0, [sp, #120]
|
||
1dec: b9007be2 str w2, [sp, #120]
|
||
1df0: 8b20c020 add x0, x1, w0, sxtw
|
||
1df4: 17ffff65 b 1b88 <_vsnprintf+0xa88>
|
||
const long value = va_arg(va, long);
|
||
1df8: f94047e1 ldr x1, [sp, #136]
|
||
1dfc: b9407be0 ldr w0, [sp, #120]
|
||
1e00: b9007be2 str w2, [sp, #120]
|
||
1e04: 8b20c020 add x0, x1, w0, sxtw
|
||
1e08: 17ffff52 b 1b50 <_vsnprintf+0xa50>
|
||
const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, int)
|
||
1e0c: f94047e1 ldr x1, [sp, #136]
|
||
1e10: b9407be0 ldr w0, [sp, #120]
|
||
1e14: b9007be2 str w2, [sp, #120]
|
||
1e18: 8b20c020 add x0, x1, w0, sxtw
|
||
1e1c: 17fffe38 b 16fc <_vsnprintf+0x5fc>
|
||
const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int)
|
||
1e20: f94047e1 ldr x1, [sp, #136]
|
||
1e24: b9407be0 ldr w0, [sp, #120]
|
||
1e28: b9007be2 str w2, [sp, #120]
|
||
1e2c: 8b20c020 add x0, x1, w0, sxtw
|
||
1e30: 79400004 ldrh w4, [x0]
|
||
1e34: 17fffef4 b 1a04 <_vsnprintf+0x904>
|
||
: va_arg(va, int);
|
||
1e38: f94047e1 ldr x1, [sp, #136]
|
||
1e3c: b9407be0 ldr w0, [sp, #120]
|
||
1e40: b9007be2 str w2, [sp, #120]
|
||
1e44: 8b20c020 add x0, x1, w0, sxtw
|
||
1e48: 17ffff75 b 1c1c <_vsnprintf+0xb1c>
|
||
: va_arg(va, unsigned int);
|
||
1e4c: f94047e1 ldr x1, [sp, #136]
|
||
1e50: b9407be0 ldr w0, [sp, #120]
|
||
1e54: b9007be2 str w2, [sp, #120]
|
||
1e58: 8b20c020 add x0, x1, w0, sxtw
|
||
1e5c: b9400004 ldr w4, [x0]
|
||
1e60: 17fffee9 b 1a04 <_vsnprintf+0x904>
|
||
return (ch >= '0') && (ch <= '9');
|
||
1e64: 5100c002 sub w2, w0, #0x30
|
||
unsigned int i = 0U;
|
||
1e68: 52800018 mov w24, #0x0 // #0
|
||
if (_is_digit(*format)) {
|
||
1e6c: 12001c42 and w2, w2, #0xff
|
||
1e70: 7100245f cmp w2, #0x9
|
||
1e74: 54ffa2a8 b.hi 12c8 <_vsnprintf+0x1c8> // b.pmore
|
||
i = i * 10U + (unsigned int)(*((*str)++) - '0');
|
||
1e78: 52800142 mov w2, #0xa // #10
|
||
1e7c: d503201f nop
|
||
1e80: 1b020305 madd w5, w24, w2, w0
|
||
while (_is_digit(**str)) {
|
||
1e84: 39400100 ldrb w0, [x8]
|
||
i = i * 10U + (unsigned int)(*((*str)++) - '0');
|
||
1e88: aa0803f9 mov x25, x8
|
||
1e8c: 91000508 add x8, x8, #0x1
|
||
return (ch >= '0') && (ch <= '9');
|
||
1e90: 5100c004 sub w4, w0, #0x30
|
||
i = i * 10U + (unsigned int)(*((*str)++) - '0');
|
||
1e94: 5100c0b8 sub w24, w5, #0x30
|
||
while (_is_digit(**str)) {
|
||
1e98: 12001c84 and w4, w4, #0xff
|
||
1e9c: 7100249f cmp w4, #0x9
|
||
1ea0: 54ffff09 b.ls 1e80 <_vsnprintf+0xd80> // b.plast
|
||
1ea4: 17fffd09 b 12c8 <_vsnprintf+0x1c8>
|
||
switch (*format) {
|
||
1ea8: aa1903e4 mov x4, x25
|
||
1eac: 17fffcf0 b 126c <_vsnprintf+0x16c>
|
||
|
||
0000000000001eb0 <printf>:
|
||
|
||
///////////////////////////////////////////////////////////////////////////////
|
||
|
||
int printf(const char* format, ...)
|
||
{
|
||
1eb0: a9ad7bfd stp x29, x30, [sp, #-304]!
|
||
1eb4: 910003fd mov x29, sp
|
||
1eb8: f9000bf3 str x19, [sp, #16]
|
||
1ebc: aa0003f3 mov x19, x0
|
||
1ec0: 3d801fe0 str q0, [sp, #112]
|
||
1ec4: 3d8023e1 str q1, [sp, #128]
|
||
1ec8: 3d8027e2 str q2, [sp, #144]
|
||
1ecc: 3d802be3 str q3, [sp, #160]
|
||
1ed0: 3d802fe4 str q4, [sp, #176]
|
||
1ed4: 3d8033e5 str q5, [sp, #192]
|
||
1ed8: 3d8037e6 str q6, [sp, #208]
|
||
1edc: 3d803be7 str q7, [sp, #224]
|
||
1ee0: a90f8be1 stp x1, x2, [sp, #248]
|
||
1ee4: a91093e3 stp x3, x4, [sp, #264]
|
||
1ee8: a9119be5 stp x5, x6, [sp, #280]
|
||
1eec: f90097e7 str x7, [sp, #296]
|
||
if (!init_uart_mmio()) {
|
||
1ef0: 97fff968 bl 490 <init_uart_mmio>
|
||
1ef4: 72001c1f tst w0, #0xff
|
||
1ef8: 540002e0 b.eq 1f54 <printf+0xa4> // b.none
|
||
return -1;
|
||
}
|
||
va_list va;
|
||
va_start(va, format);
|
||
1efc: 9103c3e0 add x0, sp, #0xf0
|
||
1f00: 9104c3e3 add x3, sp, #0x130
|
||
1f04: 9104c3e4 add x4, sp, #0x130
|
||
1f08: 128006e2 mov w2, #0xffffffc8 // #-56
|
||
1f0c: 12800fe1 mov w1, #0xffffff80 // #-128
|
||
1f10: a90513e3 stp x3, x4, [sp, #80]
|
||
char buffer[1];
|
||
const int ret = _vsnprintf(_out_char, buffer, (size_t)-1, format, va);
|
||
1f14: aa1303e3 mov x3, x19
|
||
va_start(va, format);
|
||
1f18: f90033e0 str x0, [sp, #96]
|
||
const int ret = _vsnprintf(_out_char, buffer, (size_t)-1, format, va);
|
||
1f1c: 910083e4 add x4, sp, #0x20
|
||
va_start(va, format);
|
||
1f20: 290d07e2 stp w2, w1, [sp, #104]
|
||
const int ret = _vsnprintf(_out_char, buffer, (size_t)-1, format, va);
|
||
1f24: 90000000 adrp x0, 1000 <_ftoa+0x300>
|
||
1f28: 91034000 add x0, x0, #0xd0
|
||
1f2c: 910123e1 add x1, sp, #0x48
|
||
1f30: a94527e8 ldp x8, x9, [sp, #80]
|
||
1f34: 92800002 mov x2, #0xffffffffffffffff // #-1
|
||
1f38: a9461fe6 ldp x6, x7, [sp, #96]
|
||
1f3c: a90227e8 stp x8, x9, [sp, #32]
|
||
1f40: a9031fe6 stp x6, x7, [sp, #48]
|
||
1f44: 97fffc6f bl 1100 <_vsnprintf>
|
||
va_end(va);
|
||
return ret;
|
||
}
|
||
1f48: f9400bf3 ldr x19, [sp, #16]
|
||
1f4c: a8d37bfd ldp x29, x30, [sp], #304
|
||
1f50: d65f03c0 ret
|
||
return -1;
|
||
1f54: 12800000 mov w0, #0xffffffff // #-1
|
||
1f58: 17fffffc b 1f48 <printf+0x98>
|
||
1f5c: d503201f nop
|
||
|
||
0000000000001f60 <sprintf_>:
|
||
|
||
int sprintf_(char* buffer, const char* format, ...)
|
||
{
|
||
1f60: a9b07bfd stp x29, x30, [sp, #-256]!
|
||
va_list va;
|
||
va_start(va, format);
|
||
1f64: 128005e9 mov w9, #0xffffffd0 // #-48
|
||
1f68: 12800fe8 mov w8, #0xffffff80 // #-128
|
||
{
|
||
1f6c: 910003fd mov x29, sp
|
||
va_start(va, format);
|
||
1f70: 910343eb add x11, sp, #0xd0
|
||
1f74: 910403ea add x10, sp, #0x100
|
||
1f78: a9032bea stp x10, x10, [sp, #48]
|
||
{
|
||
1f7c: aa0103ea mov x10, x1
|
||
const int ret = _vsnprintf(_out_buffer, buffer, (size_t)-1, format, va);
|
||
1f80: aa0003e1 mov x1, x0
|
||
va_start(va, format);
|
||
1f84: f90023eb str x11, [sp, #64]
|
||
const int ret = _vsnprintf(_out_buffer, buffer, (size_t)-1, format, va);
|
||
1f88: f0ffffe0 adrp x0, 0 <main>
|
||
1f8c: 91154000 add x0, x0, #0x550
|
||
va_start(va, format);
|
||
1f90: 290923e9 stp w9, w8, [sp, #72]
|
||
const int ret = _vsnprintf(_out_buffer, buffer, (size_t)-1, format, va);
|
||
1f94: a94337ec ldp x12, x13, [sp, #48]
|
||
1f98: a90137ec stp x12, x13, [sp, #16]
|
||
1f9c: a94427e8 ldp x8, x9, [sp, #64]
|
||
1fa0: a90227e8 stp x8, x9, [sp, #32]
|
||
{
|
||
1fa4: 3d8017e0 str q0, [sp, #80]
|
||
1fa8: 3d801be1 str q1, [sp, #96]
|
||
1fac: 3d801fe2 str q2, [sp, #112]
|
||
1fb0: 3d8023e3 str q3, [sp, #128]
|
||
1fb4: 3d8027e4 str q4, [sp, #144]
|
||
1fb8: 3d802be5 str q5, [sp, #160]
|
||
1fbc: 3d802fe6 str q6, [sp, #176]
|
||
1fc0: 3d8033e7 str q7, [sp, #192]
|
||
1fc4: a90d0fe2 stp x2, x3, [sp, #208]
|
||
const int ret = _vsnprintf(_out_buffer, buffer, (size_t)-1, format, va);
|
||
1fc8: aa0a03e3 mov x3, x10
|
||
1fcc: 92800002 mov x2, #0xffffffffffffffff // #-1
|
||
{
|
||
1fd0: a90e17e4 stp x4, x5, [sp, #224]
|
||
const int ret = _vsnprintf(_out_buffer, buffer, (size_t)-1, format, va);
|
||
1fd4: 910043e4 add x4, sp, #0x10
|
||
{
|
||
1fd8: a90f1fe6 stp x6, x7, [sp, #240]
|
||
const int ret = _vsnprintf(_out_buffer, buffer, (size_t)-1, format, va);
|
||
1fdc: 97fffc49 bl 1100 <_vsnprintf>
|
||
va_end(va);
|
||
return ret;
|
||
}
|
||
1fe0: a8d07bfd ldp x29, x30, [sp], #256
|
||
1fe4: d65f03c0 ret
|
||
1fe8: d503201f nop
|
||
1fec: d503201f nop
|
||
|
||
0000000000001ff0 <snprintf_>:
|
||
|
||
int snprintf_(char* buffer, size_t count, const char* format, ...)
|
||
{
|
||
1ff0: a9b07bfd stp x29, x30, [sp, #-256]!
|
||
va_list va;
|
||
va_start(va, format);
|
||
1ff4: 128004eb mov w11, #0xffffffd8 // #-40
|
||
1ff8: 12800fe9 mov w9, #0xffffff80 // #-128
|
||
{
|
||
1ffc: 910003fd mov x29, sp
|
||
va_start(va, format);
|
||
2000: 910343ea add x10, sp, #0xd0
|
||
2004: 910403e8 add x8, sp, #0x100
|
||
2008: a90323e8 stp x8, x8, [sp, #48]
|
||
{
|
||
200c: aa0103e8 mov x8, x1
|
||
const int ret = _vsnprintf(_out_buffer, buffer, count, format, va);
|
||
2010: aa0003e1 mov x1, x0
|
||
va_start(va, format);
|
||
2014: f90023ea str x10, [sp, #64]
|
||
{
|
||
2018: aa0203ea mov x10, x2
|
||
va_start(va, format);
|
||
201c: 290927eb stp w11, w9, [sp, #72]
|
||
const int ret = _vsnprintf(_out_buffer, buffer, count, format, va);
|
||
2020: aa0803e2 mov x2, x8
|
||
2024: a94337ec ldp x12, x13, [sp, #48]
|
||
2028: d0ffffe0 adrp x0, 0 <main>
|
||
202c: a94427e8 ldp x8, x9, [sp, #64]
|
||
2030: 91154000 add x0, x0, #0x550
|
||
2034: a90137ec stp x12, x13, [sp, #16]
|
||
2038: a90227e8 stp x8, x9, [sp, #32]
|
||
{
|
||
203c: 3d8017e0 str q0, [sp, #80]
|
||
2040: 3d801be1 str q1, [sp, #96]
|
||
2044: 3d801fe2 str q2, [sp, #112]
|
||
2048: 3d8023e3 str q3, [sp, #128]
|
||
204c: 3d8027e4 str q4, [sp, #144]
|
||
2050: 3d802be5 str q5, [sp, #160]
|
||
2054: 3d802fe6 str q6, [sp, #176]
|
||
2058: 3d8033e7 str q7, [sp, #192]
|
||
205c: a90d93e3 stp x3, x4, [sp, #216]
|
||
const int ret = _vsnprintf(_out_buffer, buffer, count, format, va);
|
||
2060: 910043e4 add x4, sp, #0x10
|
||
2064: aa0a03e3 mov x3, x10
|
||
{
|
||
2068: a90e9be5 stp x5, x6, [sp, #232]
|
||
206c: f9007fe7 str x7, [sp, #248]
|
||
const int ret = _vsnprintf(_out_buffer, buffer, count, format, va);
|
||
2070: 97fffc24 bl 1100 <_vsnprintf>
|
||
va_end(va);
|
||
return ret;
|
||
}
|
||
2074: a8d07bfd ldp x29, x30, [sp], #256
|
||
2078: d65f03c0 ret
|
||
207c: d503201f nop
|
||
|
||
0000000000002080 <vprintf_>:
|
||
|
||
int vprintf_(const char* format, va_list va)
|
||
{
|
||
2080: a9bc7bfd stp x29, x30, [sp, #-64]!
|
||
char buffer[1];
|
||
return _vsnprintf(_out_char, buffer, (size_t)-1, format, va);
|
||
2084: aa0003e3 mov x3, x0
|
||
2088: 92800002 mov x2, #0xffffffffffffffff // #-1
|
||
{
|
||
208c: 910003fd mov x29, sp
|
||
return _vsnprintf(_out_char, buffer, (size_t)-1, format, va);
|
||
2090: a9402428 ldp x8, x9, [x1]
|
||
2094: 910043e4 add x4, sp, #0x10
|
||
2098: a9411c26 ldp x6, x7, [x1, #16]
|
||
209c: f0ffffe0 adrp x0, 1000 <_ftoa+0x300>
|
||
20a0: 9100e3e1 add x1, sp, #0x38
|
||
20a4: 91034000 add x0, x0, #0xd0
|
||
20a8: a90127e8 stp x8, x9, [sp, #16]
|
||
20ac: a9021fe6 stp x6, x7, [sp, #32]
|
||
20b0: 97fffc14 bl 1100 <_vsnprintf>
|
||
}
|
||
20b4: a8c47bfd ldp x29, x30, [sp], #64
|
||
20b8: d65f03c0 ret
|
||
20bc: d503201f nop
|
||
|
||
00000000000020c0 <vsnprintf_>:
|
||
|
||
int vsnprintf_(char* buffer, size_t count, const char* format, va_list va)
|
||
{
|
||
20c0: aa0303e4 mov x4, x3
|
||
20c4: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
20c8: aa0103e5 mov x5, x1
|
||
20cc: 910003fd mov x29, sp
|
||
return _vsnprintf(_out_buffer, buffer, count, format, va);
|
||
20d0: a9402488 ldp x8, x9, [x4]
|
||
20d4: aa0003e1 mov x1, x0
|
||
20d8: a9411c86 ldp x6, x7, [x4, #16]
|
||
20dc: aa0203e3 mov x3, x2
|
||
20e0: 910043e4 add x4, sp, #0x10
|
||
20e4: aa0503e2 mov x2, x5
|
||
20e8: d0ffffe0 adrp x0, 0 <main>
|
||
20ec: 91154000 add x0, x0, #0x550
|
||
20f0: a90127e8 stp x8, x9, [sp, #16]
|
||
20f4: a9021fe6 stp x6, x7, [sp, #32]
|
||
20f8: 97fffc02 bl 1100 <_vsnprintf>
|
||
}
|
||
20fc: a8c37bfd ldp x29, x30, [sp], #48
|
||
2100: d65f03c0 ret
|
||
2104: d503201f nop
|
||
2108: d503201f nop
|
||
210c: d503201f nop
|
||
|
||
0000000000002110 <fctprintf>:
|
||
|
||
int fctprintf(void (*out)(char character, void* arg), void* arg, const char* format, ...)
|
||
{
|
||
2110: a9af7bfd stp x29, x30, [sp, #-272]!
|
||
va_list va;
|
||
va_start(va, format);
|
||
2114: 128004e9 mov w9, #0xffffffd8 // #-40
|
||
2118: 12800fe8 mov w8, #0xffffff80 // #-128
|
||
{
|
||
211c: 910003fd mov x29, sp
|
||
va_start(va, format);
|
||
2120: 910443ea add x10, sp, #0x110
|
||
2124: 910383eb add x11, sp, #0xe0
|
||
2128: f90023ea str x10, [sp, #64]
|
||
{
|
||
212c: aa0203ea mov x10, x2
|
||
va_start(va, format);
|
||
2130: 910443e2 add x2, sp, #0x110
|
||
2134: f90027e2 str x2, [sp, #72]
|
||
2138: f9002beb str x11, [sp, #80]
|
||
{
|
||
213c: aa0003ec mov x12, x0
|
||
va_start(va, format);
|
||
2140: 290b23e9 stp w9, w8, [sp, #88]
|
||
{
|
||
2144: aa0103eb mov x11, x1
|
||
const out_fct_wrap_type out_fct_wrap = { out, arg };
|
||
const int ret = _vsnprintf(_out_fct, (char*)(uintptr_t)&out_fct_wrap, (size_t)-1, format, va);
|
||
2148: a9443fee ldp x14, x15, [sp, #64]
|
||
214c: 9100c3e1 add x1, sp, #0x30
|
||
2150: a94527e8 ldp x8, x9, [sp, #80]
|
||
2154: 92800002 mov x2, #0xffffffffffffffff // #-1
|
||
2158: f0ffffe0 adrp x0, 1000 <_ftoa+0x300>
|
||
215c: 91038000 add x0, x0, #0xe0
|
||
2160: a9013fee stp x14, x15, [sp, #16]
|
||
2164: a90227e8 stp x8, x9, [sp, #32]
|
||
const out_fct_wrap_type out_fct_wrap = { out, arg };
|
||
2168: f9001bec str x12, [sp, #48]
|
||
216c: f9001feb str x11, [sp, #56]
|
||
{
|
||
2170: 3d801be0 str q0, [sp, #96]
|
||
2174: 3d801fe1 str q1, [sp, #112]
|
||
2178: 3d8023e2 str q2, [sp, #128]
|
||
217c: 3d8027e3 str q3, [sp, #144]
|
||
2180: 3d802be4 str q4, [sp, #160]
|
||
2184: 3d802fe5 str q5, [sp, #176]
|
||
2188: 3d8033e6 str q6, [sp, #192]
|
||
218c: 3d8037e7 str q7, [sp, #208]
|
||
2190: a90e93e3 stp x3, x4, [sp, #232]
|
||
const int ret = _vsnprintf(_out_fct, (char*)(uintptr_t)&out_fct_wrap, (size_t)-1, format, va);
|
||
2194: 910043e4 add x4, sp, #0x10
|
||
2198: aa0a03e3 mov x3, x10
|
||
{
|
||
219c: a90f9be5 stp x5, x6, [sp, #248]
|
||
21a0: f90087e7 str x7, [sp, #264]
|
||
const int ret = _vsnprintf(_out_fct, (char*)(uintptr_t)&out_fct_wrap, (size_t)-1, format, va);
|
||
21a4: 97fffbd7 bl 1100 <_vsnprintf>
|
||
va_end(va);
|
||
return ret;
|
||
21a8: a8d17bfd ldp x29, x30, [sp], #272
|
||
21ac: d65f03c0 ret
|
||
|
||
00000000000021b0 <spawn>:
|
||
*/
|
||
#include "usyscall.h"
|
||
#include "libmem.h"
|
||
|
||
int spawn(struct Session* session, int fd, ipc_read_fn ipc_read, ipc_fsize_fn ipc_fsize, char* name, char** argv)
|
||
{
|
||
21b0: a9ba7bfd stp x29, x30, [sp, #-96]!
|
||
21b4: 910003fd mov x29, sp
|
||
21b8: a90153f3 stp x19, x20, [sp, #16]
|
||
21bc: a9025bf5 stp x21, x22, [sp, #32]
|
||
21c0: 2a0103f6 mov w22, w1
|
||
21c4: a90363f7 stp x23, x24, [sp, #48]
|
||
21c8: aa0203f8 mov x24, x2
|
||
21cc: aa0003f7 mov x23, x0
|
||
21d0: a9046bf9 stp x25, x26, [sp, #64]
|
||
21d4: aa0403f9 mov x25, x4
|
||
21d8: aa0503fa mov x26, x5
|
||
/* read elf image */
|
||
int file_size = ipc_fsize(session, fd);
|
||
21dc: d63f0060 blr x3
|
||
21e0: 2a0003f4 mov w20, w0
|
||
void* img = malloc(file_size);
|
||
21e4: 93407c00 sxtw x0, w0
|
||
21e8: 9400038e bl 3020 <malloc>
|
||
int read_len = 0;
|
||
while (read_len < file_size) {
|
||
21ec: 7100029f cmp w20, #0x0
|
||
void* img = malloc(file_size);
|
||
21f0: aa0003f5 mov x21, x0
|
||
while (read_len < file_size) {
|
||
21f4: 5400022d b.le 2238 <spawn+0x88>
|
||
21f8: 52800013 mov w19, #0x0 // #0
|
||
21fc: f9002bfb str x27, [sp, #80]
|
||
2200: 5282001b mov w27, #0x1000 // #4096
|
||
2204: d503201f nop
|
||
int cur_read_len = file_size - read_len < 4096 ? file_size - read_len : 4096;
|
||
2208: 4b130284 sub w4, w20, w19
|
||
if (cur_read_len < 0) {
|
||
return -1;
|
||
}
|
||
read_len += ipc_read(session, fd, (char*)((uintptr_t)img + read_len), read_len, cur_read_len);
|
||
220c: 2a1303e3 mov w3, w19
|
||
int cur_read_len = file_size - read_len < 4096 ? file_size - read_len : 4096;
|
||
2210: 7140049f cmp w4, #0x1, lsl #12
|
||
read_len += ipc_read(session, fd, (char*)((uintptr_t)img + read_len), read_len, cur_read_len);
|
||
2214: 8b33c2a2 add x2, x21, w19, sxtw
|
||
2218: 1a9bd084 csel w4, w4, w27, le
|
||
221c: 2a1603e1 mov w1, w22
|
||
2220: aa1703e0 mov x0, x23
|
||
2224: d63f0300 blr x24
|
||
2228: 0b000273 add w19, w19, w0
|
||
while (read_len < file_size) {
|
||
222c: 6b13029f cmp w20, w19
|
||
2230: 54fffecc b.gt 2208 <spawn+0x58>
|
||
2234: f9402bfb ldr x27, [sp, #80]
|
||
}
|
||
/* sys call */
|
||
int ret = syscall(SYSCALL_SPAWN, (uintptr_t)img, (uintptr_t)name, (uintptr_t)argv, 0);
|
||
2238: aa1a03e3 mov x3, x26
|
||
223c: aa1903e2 mov x2, x25
|
||
2240: aa1503e1 mov x1, x21
|
||
2244: d2800004 mov x4, #0x0 // #0
|
||
2248: 52800020 mov w0, #0x1 // #1
|
||
224c: 940000b9 bl 2530 <syscall>
|
||
2250: 2a0003f3 mov w19, w0
|
||
free(img);
|
||
2254: aa1503e0 mov x0, x21
|
||
2258: 94000376 bl 3030 <free>
|
||
return ret;
|
||
}
|
||
225c: 2a1303e0 mov w0, w19
|
||
2260: a94153f3 ldp x19, x20, [sp, #16]
|
||
2264: a9425bf5 ldp x21, x22, [sp, #32]
|
||
2268: a94363f7 ldp x23, x24, [sp, #48]
|
||
226c: a9446bf9 ldp x25, x26, [sp, #64]
|
||
2270: a8c67bfd ldp x29, x30, [sp], #96
|
||
2274: d65f03c0 ret
|
||
2278: d503201f nop
|
||
227c: d503201f nop
|
||
|
||
0000000000002280 <thread>:
|
||
|
||
int thread(void* entry, char* name, char** argv)
|
||
{
|
||
2280: aa0103e4 mov x4, x1
|
||
return syscall(SYSCALL_THREAD, (uintptr_t)entry, (uintptr_t)name, (uintptr_t)argv, 0);
|
||
2284: aa0203e3 mov x3, x2
|
||
2288: aa0003e1 mov x1, x0
|
||
228c: aa0403e2 mov x2, x4
|
||
2290: 52800120 mov w0, #0x9 // #9
|
||
2294: d2800004 mov x4, #0x0 // #0
|
||
2298: 140000a6 b 2530 <syscall>
|
||
229c: d503201f nop
|
||
|
||
00000000000022a0 <exit>:
|
||
}
|
||
|
||
void exit(int status)
|
||
{
|
||
syscall(SYSCALL_EXIT, (uintptr_t)status, 0, 0, 0);
|
||
22a0: 93407c01 sxtw x1, w0
|
||
22a4: d2800004 mov x4, #0x0 // #0
|
||
22a8: d2800003 mov x3, #0x0 // #0
|
||
22ac: d2800002 mov x2, #0x0 // #0
|
||
22b0: 52800040 mov w0, #0x2 // #2
|
||
22b4: 1400009f b 2530 <syscall>
|
||
22b8: d503201f nop
|
||
22bc: d503201f nop
|
||
|
||
00000000000022c0 <yield>:
|
||
}
|
||
|
||
int yield(task_yield_reason reason)
|
||
{
|
||
return syscall(SYSCALL_YIELD, (uintptr_t)reason, 0, 0, 0);
|
||
22c0: 2a0003e1 mov w1, w0
|
||
22c4: d2800004 mov x4, #0x0 // #0
|
||
22c8: d2800003 mov x3, #0x0 // #0
|
||
22cc: d2800002 mov x2, #0x0 // #0
|
||
22d0: 52800060 mov w0, #0x3 // #3
|
||
22d4: 14000097 b 2530 <syscall>
|
||
22d8: d503201f nop
|
||
22dc: d503201f nop
|
||
|
||
00000000000022e0 <kill>:
|
||
}
|
||
|
||
int kill(int pid)
|
||
{
|
||
return syscall(SYSCALL_KILL, (intptr_t)pid, 0, 0, 0);
|
||
22e0: 93407c01 sxtw x1, w0
|
||
22e4: d2800004 mov x4, #0x0 // #0
|
||
22e8: d2800003 mov x3, #0x0 // #0
|
||
22ec: d2800002 mov x2, #0x0 // #0
|
||
22f0: 52800180 mov w0, #0xc // #12
|
||
22f4: 1400008f b 2530 <syscall>
|
||
22f8: d503201f nop
|
||
22fc: d503201f nop
|
||
|
||
0000000000002300 <register_server>:
|
||
}
|
||
|
||
int register_server(char* name)
|
||
{
|
||
return syscall(SYSCALL_SERVER, (intptr_t)name, 0, 0, 0);
|
||
2300: aa0003e1 mov x1, x0
|
||
2304: d2800004 mov x4, #0x0 // #0
|
||
2308: d2800003 mov x3, #0x0 // #0
|
||
230c: d2800002 mov x2, #0x0 // #0
|
||
2310: 528000a0 mov w0, #0x5 // #5
|
||
2314: 14000087 b 2530 <syscall>
|
||
2318: d503201f nop
|
||
231c: d503201f nop
|
||
|
||
0000000000002320 <session>:
|
||
}
|
||
|
||
int session(char* path, int capacity, struct Session* user_session)
|
||
{
|
||
2320: 2a0103e4 mov w4, w1
|
||
return syscall(SYSCALL_SESSION, (intptr_t)path, (intptr_t)capacity, (intptr_t)user_session, 0);
|
||
2324: aa0203e3 mov x3, x2
|
||
2328: aa0003e1 mov x1, x0
|
||
232c: 528000c0 mov w0, #0x6 // #6
|
||
2330: 93407c82 sxtw x2, w4
|
||
2334: d2800004 mov x4, #0x0 // #0
|
||
2338: 1400007e b 2530 <syscall>
|
||
233c: d503201f nop
|
||
|
||
0000000000002340 <poll_session>:
|
||
}
|
||
|
||
int poll_session(struct Session* userland_session_arr, int arr_capacity)
|
||
{
|
||
2340: 93407c22 sxtw x2, w1
|
||
return syscall(SYSCALL_POLL_SESSION, (intptr_t)userland_session_arr, (intptr_t)arr_capacity, 0, 0);
|
||
2344: d2800004 mov x4, #0x0 // #0
|
||
2348: aa0003e1 mov x1, x0
|
||
234c: d2800003 mov x3, #0x0 // #0
|
||
2350: 528000e0 mov w0, #0x7 // #7
|
||
2354: 14000077 b 2530 <syscall>
|
||
2358: d503201f nop
|
||
235c: d503201f nop
|
||
|
||
0000000000002360 <close_session>:
|
||
}
|
||
|
||
int close_session(struct Session* session)
|
||
{
|
||
return syscall(SYSCALL_CLOSE_SESSION, (intptr_t)session, 0, 0, 0);
|
||
2360: aa0003e1 mov x1, x0
|
||
2364: d2800004 mov x4, #0x0 // #0
|
||
2368: d2800003 mov x3, #0x0 // #0
|
||
236c: d2800002 mov x2, #0x0 // #0
|
||
2370: 52800100 mov w0, #0x8 // #8
|
||
2374: 1400006f b 2530 <syscall>
|
||
2378: d503201f nop
|
||
237c: d503201f nop
|
||
|
||
0000000000002380 <get_memblock_info>:
|
||
}
|
||
|
||
int get_memblock_info(sys_state_info* info)
|
||
{
|
||
return syscall(SYSCALL_SYS_STATE, SYS_STATE_MEMBLOCK_INFO, (intptr_t)info, 0, 0);
|
||
2380: aa0003e2 mov x2, x0
|
||
2384: d2800004 mov x4, #0x0 // #0
|
||
2388: d2800003 mov x3, #0x0 // #0
|
||
238c: d2800061 mov x1, #0x3 // #3
|
||
2390: 52800140 mov w0, #0xa // #10
|
||
2394: 14000067 b 2530 <syscall>
|
||
2398: d503201f nop
|
||
239c: d503201f nop
|
||
|
||
00000000000023a0 <set_priority>:
|
||
}
|
||
|
||
int set_priority(sys_state_info* info)
|
||
{
|
||
return syscall(SYSCALL_SYS_STATE, SYS_STATE_SET_TASK_PRIORITY, (intptr_t)info, 0, 0);
|
||
23a0: aa0003e2 mov x2, x0
|
||
23a4: d2800004 mov x4, #0x0 // #0
|
||
23a8: d2800003 mov x3, #0x0 // #0
|
||
23ac: d2800021 mov x1, #0x1 // #1
|
||
23b0: 52800140 mov w0, #0xa // #10
|
||
23b4: 1400005f b 2530 <syscall>
|
||
23b8: d503201f nop
|
||
23bc: d503201f nop
|
||
|
||
00000000000023c0 <task_heap_base>:
|
||
}
|
||
|
||
int task_heap_base()
|
||
{
|
||
return syscall(SYSCALL_SYS_STATE, SYS_STATE_GET_HEAP_BASE, 0, 0, 0);
|
||
23c0: d2800004 mov x4, #0x0 // #0
|
||
23c4: d2800003 mov x3, #0x0 // #0
|
||
23c8: d2800002 mov x2, #0x0 // #0
|
||
23cc: d2800041 mov x1, #0x2 // #2
|
||
23d0: 52800140 mov w0, #0xa // #10
|
||
23d4: 14000057 b 2530 <syscall>
|
||
23d8: d503201f nop
|
||
23dc: d503201f nop
|
||
|
||
00000000000023e0 <show_task>:
|
||
}
|
||
|
||
int show_task()
|
||
{
|
||
return syscall(SYSCALL_SYS_STATE, SYS_STATE_SHOW_TASKS, 0, 0, 0);
|
||
23e0: d2800004 mov x4, #0x0 // #0
|
||
23e4: d2800003 mov x3, #0x0 // #0
|
||
23e8: d2800002 mov x2, #0x0 // #0
|
||
23ec: d2800081 mov x1, #0x4 // #4
|
||
23f0: 52800140 mov w0, #0xa // #10
|
||
23f4: 1400004f b 2530 <syscall>
|
||
23f8: d503201f nop
|
||
23fc: d503201f nop
|
||
|
||
0000000000002400 <show_mem>:
|
||
}
|
||
|
||
int show_mem()
|
||
{
|
||
return syscall(SYSCALL_SYS_STATE, SYS_STATE_SHOW_MEM_INFO, 0, 0, 0);
|
||
2400: d2800004 mov x4, #0x0 // #0
|
||
2404: d2800003 mov x3, #0x0 // #0
|
||
2408: d2800002 mov x2, #0x0 // #0
|
||
240c: d28000a1 mov x1, #0x5 // #5
|
||
2410: 52800140 mov w0, #0xa // #10
|
||
2414: 14000047 b 2530 <syscall>
|
||
2418: d503201f nop
|
||
241c: d503201f nop
|
||
|
||
0000000000002420 <show_cpu>:
|
||
}
|
||
|
||
int show_cpu()
|
||
{
|
||
return syscall(SYSCALL_SYS_STATE, SYS_STATE_SHOW_CPU_INFO, 0, 0, 0);
|
||
2420: d2800004 mov x4, #0x0 // #0
|
||
2424: d2800003 mov x3, #0x0 // #0
|
||
2428: d2800002 mov x2, #0x0 // #0
|
||
242c: d28000c1 mov x1, #0x6 // #6
|
||
2430: 52800140 mov w0, #0xa // #10
|
||
2434: 1400003f b 2530 <syscall>
|
||
2438: d503201f nop
|
||
243c: d503201f nop
|
||
|
||
0000000000002440 <mmap>:
|
||
}
|
||
|
||
int mmap(uintptr_t vaddr, uintptr_t paddr, int len, bool is_dev)
|
||
{
|
||
2440: 2a0203e5 mov w5, w2
|
||
return syscall(SYSCALL_MMAP, vaddr, paddr, (intptr_t)len, (intptr_t)is_dev);
|
||
2444: 92401c64 and x4, x3, #0xff
|
||
2448: aa0103e2 mov x2, x1
|
||
244c: aa0003e1 mov x1, x0
|
||
2450: 93407ca3 sxtw x3, w5
|
||
2454: 52800080 mov w0, #0x4 // #4
|
||
2458: 14000036 b 2530 <syscall>
|
||
245c: d503201f nop
|
||
|
||
0000000000002460 <register_irq>:
|
||
}
|
||
|
||
int register_irq(int irq, int opcode)
|
||
{
|
||
return syscall(SYSCALL_REGISTER_IRQ, (intptr_t)irq, (intptr_t)opcode, 0, 0);
|
||
2460: 93407c22 sxtw x2, w1
|
||
2464: d2800004 mov x4, #0x0 // #0
|
||
2468: 93407c01 sxtw x1, w0
|
||
246c: d2800003 mov x3, #0x0 // #0
|
||
2470: 52800160 mov w0, #0xb // #11
|
||
2474: 1400002f b 2530 <syscall>
|
||
2478: d503201f nop
|
||
247c: d503201f nop
|
||
|
||
0000000000002480 <semaphore_new>:
|
||
}
|
||
|
||
int semaphore_new(int val)
|
||
{
|
||
return syscall(SYSCALL_SEMAPHORE, (intptr_t)SYS_SEM_NEW, (intptr_t)val, 0, 0);
|
||
2480: 93407c02 sxtw x2, w0
|
||
2484: d2800004 mov x4, #0x0 // #0
|
||
2488: d2800003 mov x3, #0x0 // #0
|
||
248c: d2800001 mov x1, #0x0 // #0
|
||
2490: 528001a0 mov w0, #0xd // #13
|
||
2494: 14000027 b 2530 <syscall>
|
||
2498: d503201f nop
|
||
249c: d503201f nop
|
||
|
||
00000000000024a0 <semaphore_free>:
|
||
}
|
||
|
||
bool semaphore_free(int sem_id)
|
||
{
|
||
24a0: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
return syscall(SYSCALL_SEMAPHORE, (intptr_t)SYS_SEM_FREE, (intptr_t)sem_id, 0, 0);
|
||
24a4: 93407c02 sxtw x2, w0
|
||
24a8: d2800004 mov x4, #0x0 // #0
|
||
{
|
||
24ac: 910003fd mov x29, sp
|
||
return syscall(SYSCALL_SEMAPHORE, (intptr_t)SYS_SEM_FREE, (intptr_t)sem_id, 0, 0);
|
||
24b0: d2800003 mov x3, #0x0 // #0
|
||
24b4: d2800021 mov x1, #0x1 // #1
|
||
24b8: 528001a0 mov w0, #0xd // #13
|
||
24bc: 9400001d bl 2530 <syscall>
|
||
24c0: 7100001f cmp w0, #0x0
|
||
}
|
||
24c4: 1a9f07e0 cset w0, ne // ne = any
|
||
24c8: a8c17bfd ldp x29, x30, [sp], #16
|
||
24cc: d65f03c0 ret
|
||
|
||
00000000000024d0 <semaphore_wait>:
|
||
|
||
bool semaphore_wait(int sem_id)
|
||
{
|
||
24d0: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
return syscall(SYSCALL_SEMAPHORE, (intptr_t)SYS_SEM_WAIT, (intptr_t)sem_id, 0, 0);
|
||
24d4: 93407c02 sxtw x2, w0
|
||
24d8: d2800004 mov x4, #0x0 // #0
|
||
{
|
||
24dc: 910003fd mov x29, sp
|
||
return syscall(SYSCALL_SEMAPHORE, (intptr_t)SYS_SEM_WAIT, (intptr_t)sem_id, 0, 0);
|
||
24e0: d2800003 mov x3, #0x0 // #0
|
||
24e4: d2800061 mov x1, #0x3 // #3
|
||
24e8: 528001a0 mov w0, #0xd // #13
|
||
24ec: 94000011 bl 2530 <syscall>
|
||
24f0: 7100001f cmp w0, #0x0
|
||
}
|
||
24f4: 1a9f07e0 cset w0, ne // ne = any
|
||
24f8: a8c17bfd ldp x29, x30, [sp], #16
|
||
24fc: d65f03c0 ret
|
||
|
||
0000000000002500 <semaphore_signal>:
|
||
|
||
bool semaphore_signal(int sem_id)
|
||
{
|
||
2500: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
return syscall(SYSCALL_SEMAPHORE, (intptr_t)SYS_SEM_SIGNAL, (intptr_t)sem_id, 0, 0);
|
||
2504: 93407c02 sxtw x2, w0
|
||
2508: d2800004 mov x4, #0x0 // #0
|
||
{
|
||
250c: 910003fd mov x29, sp
|
||
return syscall(SYSCALL_SEMAPHORE, (intptr_t)SYS_SEM_SIGNAL, (intptr_t)sem_id, 0, 0);
|
||
2510: d2800003 mov x3, #0x0 // #0
|
||
2514: d2800041 mov x1, #0x2 // #2
|
||
2518: 528001a0 mov w0, #0xd // #13
|
||
251c: 94000005 bl 2530 <syscall>
|
||
2520: 7100001f cmp w0, #0x0
|
||
2524: 1a9f07e0 cset w0, ne // ne = any
|
||
2528: a8c17bfd ldp x29, x30, [sp], #16
|
||
252c: d65f03c0 ret
|
||
|
||
0000000000002530 <syscall>:
|
||
* See the Mulan PSL v2 for more details.
|
||
*/
|
||
#include "usyscall.h"
|
||
|
||
int syscall(int sys_num, intptr_t a1, intptr_t a2, intptr_t a3, intptr_t a4)
|
||
{
|
||
2530: 2a0003e5 mov w5, w0
|
||
2534: aa0103e6 mov x6, x1
|
||
2538: aa0203e7 mov x7, x2
|
||
253c: aa0303e8 mov x8, x3
|
||
2540: aa0403e9 mov x9, x4
|
||
int ret = -1;
|
||
|
||
__asm__ volatile(
|
||
2544: aa0503e0 mov x0, x5
|
||
2548: aa0603e1 mov x1, x6
|
||
254c: aa0703e2 mov x2, x7
|
||
2550: aa0803e3 mov x3, x8
|
||
2554: aa0903e4 mov x4, x9
|
||
2558: d4000001 svc #0x0
|
||
255c: d5033b9f dsb ish
|
||
2560: d5033fdf isb
|
||
2564: aa0003e5 mov x5, x0
|
||
: "=r"(ret)
|
||
: "r"(sys_num), "r"(a1), "r"(a2), "r"(a3), "r"(a4)
|
||
: "memory", "r0", "r1", "r2", "r3", "r4");
|
||
|
||
return ret;
|
||
2568: 2a0503e0 mov w0, w5
|
||
256c: d65f03c0 ret
|
||
|
||
0000000000002570 <new_ipc_msg>:
|
||
/// @warning this file doesnt support multi threads
|
||
|
||
/// ipc part
|
||
|
||
struct IpcMsg* new_ipc_msg(struct Session* session, const int argc, const int* arg_size)
|
||
{
|
||
2570: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
|
||
int arg_info_offset = len; // start of arg info
|
||
len += argc * sizeof(struct IpcArgInfo);
|
||
|
||
int arg_buf_offset = len; // start of arg buffer
|
||
for (int i = 0; i < argc; i++) {
|
||
2574: 7100003f cmp w1, #0x0
|
||
{
|
||
2578: 910003fd mov x29, sp
|
||
257c: a90153f3 stp x19, x20, [sp, #16]
|
||
len += argc * sizeof(struct IpcArgInfo);
|
||
2580: 528000d4 mov w20, #0x6 // #6
|
||
2584: 1b147c34 mul w20, w1, w20
|
||
{
|
||
2588: a9025bf5 stp x21, x22, [sp, #32]
|
||
258c: 2a0103f5 mov w21, w1
|
||
len += argc * sizeof(struct IpcArgInfo);
|
||
2590: 11003294 add w20, w20, #0xc
|
||
for (int i = 0; i < argc; i++) {
|
||
2594: 5400056d b.le 2640 <new_ipc_msg+0xd0>
|
||
2598: aa0003e3 mov x3, x0
|
||
len += argc * sizeof(struct IpcArgInfo);
|
||
259c: 2a1403f6 mov w22, w20
|
||
25a0: aa0203f3 mov x19, x2
|
||
for (int i = 0; i < argc; i++) {
|
||
25a4: d2800002 mov x2, #0x0 // #0
|
||
len += arg_size[i];
|
||
25a8: b8627a61 ldr w1, [x19, x2, lsl #2]
|
||
for (int i = 0; i < argc; i++) {
|
||
25ac: 91000442 add x2, x2, #0x1
|
||
25b0: 6b0202bf cmp w21, w2
|
||
len += arg_size[i];
|
||
25b4: 0b0102d6 add w22, w22, w1
|
||
for (int i = 0; i < argc; i++) {
|
||
25b8: 54ffff8c b.gt 25a8 <new_ipc_msg+0x38>
|
||
}
|
||
struct IpcMsg* buf = session_alloc_buf(session, len);
|
||
25bc: aa0303e0 mov x0, x3
|
||
25c0: 2a1603e1 mov w1, w22
|
||
25c4: 9400016f bl 2b80 <session_alloc_buf>
|
||
if (buf == NULL) {
|
||
25c8: b40004c0 cbz x0, 2660 <new_ipc_msg+0xf0>
|
||
return NULL;
|
||
}
|
||
buf->header.len = len;
|
||
25cc: 528000c5 mov w5, #0x6 // #6
|
||
buf->header.done = 0;
|
||
buf->header.valid = 0;
|
||
25d0: 39400001 ldrb w1, [x0]
|
||
25d4: 52800182 mov w2, #0xc // #12
|
||
25d8: aa1303e3 mov x3, x19
|
||
25dc: 1b057ea5 mul w5, w21, w5
|
||
25e0: 121e7421 and w1, w1, #0xfffffffc
|
||
25e4: 39000001 strb w1, [x0]
|
||
25e8: 0b0200a5 add w5, w5, w2
|
||
buf->header.len = len;
|
||
25ec: 79000416 strh w22, [x0, #2]
|
||
|
||
for (int i = 0; i < argc; i++) {
|
||
struct IpcArgInfo* arg_info = (struct IpcArgInfo*)((char*)buf + arg_info_offset);
|
||
25f0: 8b22c001 add x1, x0, w2, sxtw
|
||
arg_info->len = arg_size[i];
|
||
25f4: b9400064 ldr w4, [x3]
|
||
25f8: 79000424 strh w4, [x1, #2]
|
||
arg_info->offset = arg_buf_offset;
|
||
25fc: 7822c814 strh w20, [x0, w2, sxtw]
|
||
|
||
// update arg_info_offset and arg_buf_offset
|
||
arg_info_offset += sizeof(struct IpcArgInfo);
|
||
2600: 11001842 add w2, w2, #0x6
|
||
for (int i = 0; i < argc; i++) {
|
||
2604: 6b05005f cmp w2, w5
|
||
arg_buf_offset += arg_size[i];
|
||
2608: b8404461 ldr w1, [x3], #4
|
||
260c: 0b010294 add w20, w20, w1
|
||
for (int i = 0; i < argc; i++) {
|
||
2610: 54ffff01 b.ne 25f0 <new_ipc_msg+0x80> // b.any
|
||
}
|
||
buf->header.nr_args = argc;
|
||
buf->header.init = 1;
|
||
2614: 39400002 ldrb w2, [x0]
|
||
2618: 531c0ea1 ubfiz w1, w21, #4, #4
|
||
261c: 321e0021 orr w1, w1, #0x4
|
||
2620: 52800163 mov w3, #0xb // #11
|
||
2624: 0a030042 and w2, w2, w3
|
||
2628: 2a020021 orr w1, w1, w2
|
||
262c: 39000001 strb w1, [x0]
|
||
return buf;
|
||
}
|
||
2630: a94153f3 ldp x19, x20, [sp, #16]
|
||
2634: a9425bf5 ldp x21, x22, [sp, #32]
|
||
2638: a8c37bfd ldp x29, x30, [sp], #48
|
||
263c: d65f03c0 ret
|
||
struct IpcMsg* buf = session_alloc_buf(session, len);
|
||
2640: 2a1403e1 mov w1, w20
|
||
2644: 9400014f bl 2b80 <session_alloc_buf>
|
||
if (buf == NULL) {
|
||
2648: b40000c0 cbz x0, 2660 <new_ipc_msg+0xf0>
|
||
buf->header.valid = 0;
|
||
264c: 39400001 ldrb w1, [x0]
|
||
buf->header.len = len;
|
||
2650: 79000414 strh w20, [x0, #2]
|
||
buf->header.valid = 0;
|
||
2654: 121e7421 and w1, w1, #0xfffffffc
|
||
2658: 39000001 strb w1, [x0]
|
||
for (int i = 0; i < argc; i++) {
|
||
265c: 17ffffee b 2614 <new_ipc_msg+0xa4>
|
||
return NULL;
|
||
2660: d2800000 mov x0, #0x0 // #0
|
||
2664: 17fffff3 b 2630 <new_ipc_msg+0xc0>
|
||
2668: d503201f nop
|
||
266c: d503201f nop
|
||
|
||
0000000000002670 <ipc_msg_set_nth_arg>:
|
||
/// @param arg_num start with 0 for first arg
|
||
/// @param data
|
||
/// @param len data buffer len
|
||
/// @return
|
||
bool ipc_msg_set_nth_arg(struct IpcMsg* msg, const int arg_num, const void* const data, const int len)
|
||
{
|
||
2670: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
2674: 2a0103e4 mov w4, w1
|
||
2678: aa0203e1 mov x1, x2
|
||
267c: 910003fd mov x29, sp
|
||
2680: 93407c62 sxtw x2, w3
|
||
if (arg_num >= msg->header.nr_args) {
|
||
2684: 39400003 ldrb w3, [x0]
|
||
2688: d3441c63 ubfx x3, x3, #4, #4
|
||
268c: 6b04007f cmp w3, w4
|
||
2690: 540003ad b.le 2704 <ipc_msg_set_nth_arg+0x94>
|
||
printf("[%s] IPC: arg_num out of msg range, arg_num: %d, nr_args: %u\n", __func__, arg_num, msg->header.nr_args);
|
||
return false;
|
||
}
|
||
struct IpcArgInfo* nth_arg_info = IPCMSG_ARG_INFO(msg, arg_num);
|
||
2694: 528000c5 mov w5, #0x6 // #6
|
||
2698: d2800183 mov x3, #0xc // #12
|
||
269c: 9b250c84 smaddl x4, w4, w5, x3
|
||
26a0: 8b040005 add x5, x0, x4
|
||
if (len < 0 || (uint32_t)len > (uint32_t)nth_arg_info->len) {
|
||
26a4: 794004a3 ldrh w3, [x5, #2]
|
||
26a8: 37f801e2 tbnz w2, #31, 26e4 <ipc_msg_set_nth_arg+0x74>
|
||
26ac: 6b02007f cmp w3, w2
|
||
26b0: 540001a3 b.cc 26e4 <ipc_msg_set_nth_arg+0x74> // b.lo, b.ul, b.last
|
||
if (IPCMSG_ARG_INFO(msg, arg_num)->null_ptr == 1) {
|
||
26b4: 394010a3 ldrb w3, [x5, #4]
|
||
26b8: 37000423 tbnz w3, #0, 273c <ipc_msg_set_nth_arg+0xcc>
|
||
return (void*)((char*)msg + IPCMSG_ARG_INFO(msg, arg_num)->offset);
|
||
26bc: 78646803 ldrh w3, [x0, x4]
|
||
26c0: 8b030000 add x0, x0, x3
|
||
|
||
void* buf = ipc_msg_get_nth_arg_buf(msg, arg_num);
|
||
|
||
// handle attributes of different params
|
||
if (data == NULL) {
|
||
nth_arg_info->null_ptr = 1;
|
||
26c4: 394010a3 ldrb w3, [x5, #4]
|
||
if (data == NULL) {
|
||
26c8: b4000301 cbz x1, 2728 <ipc_msg_set_nth_arg+0xb8>
|
||
memset(buf, 0x0, len);
|
||
return true;
|
||
} else {
|
||
nth_arg_info->null_ptr = 0;
|
||
26cc: 121f7863 and w3, w3, #0xfffffffe
|
||
26d0: 390010a3 strb w3, [x5, #4]
|
||
}
|
||
|
||
memmove(buf, data, len);
|
||
26d4: 940004cb bl 3a00 <memmove>
|
||
return true;
|
||
26d8: 52800020 mov w0, #0x1 // #1
|
||
}
|
||
26dc: a8c17bfd ldp x29, x30, [sp], #16
|
||
26e0: d65f03c0 ret
|
||
printf("[%s] IPC: size of arg out of buffer range, given len: %d, len %u\n", __func__, len, nth_arg_info->len);
|
||
26e4: b0000041 adrp x1, b000 <pow10.0+0x80>
|
||
26e8: b0000040 adrp x0, b000 <pow10.0+0x80>
|
||
26ec: 9105c021 add x1, x1, #0x170
|
||
26f0: 91012000 add x0, x0, #0x48
|
||
26f4: 97fffdef bl 1eb0 <printf>
|
||
return false;
|
||
26f8: 52800000 mov w0, #0x0 // #0
|
||
}
|
||
26fc: a8c17bfd ldp x29, x30, [sp], #16
|
||
2700: d65f03c0 ret
|
||
printf("[%s] IPC: arg_num out of msg range, arg_num: %d, nr_args: %u\n", __func__, arg_num, msg->header.nr_args);
|
||
2704: 2a0403e2 mov w2, w4
|
||
2708: b0000041 adrp x1, b000 <pow10.0+0x80>
|
||
270c: b0000040 adrp x0, b000 <pow10.0+0x80>
|
||
2710: 9105c021 add x1, x1, #0x170
|
||
2714: 91002000 add x0, x0, #0x8
|
||
2718: 97fffde6 bl 1eb0 <printf>
|
||
return false;
|
||
271c: 52800000 mov w0, #0x0 // #0
|
||
}
|
||
2720: a8c17bfd ldp x29, x30, [sp], #16
|
||
2724: d65f03c0 ret
|
||
nth_arg_info->null_ptr = 1;
|
||
2728: 32000063 orr w3, w3, #0x1
|
||
272c: 390010a3 strb w3, [x5, #4]
|
||
memset(buf, 0x0, len);
|
||
2730: 940004e4 bl 3ac0 <memset>
|
||
return true;
|
||
2734: 52800020 mov w0, #0x1 // #1
|
||
2738: 17ffffe9 b 26dc <ipc_msg_set_nth_arg+0x6c>
|
||
return NULL;
|
||
273c: d2800000 mov x0, #0x0 // #0
|
||
2740: 17ffffe1 b 26c4 <ipc_msg_set_nth_arg+0x54>
|
||
2744: d503201f nop
|
||
2748: d503201f nop
|
||
274c: d503201f nop
|
||
|
||
0000000000002750 <ipc_msg_get_nth_arg>:
|
||
/// @param arg_num start with 0 for first arg
|
||
/// @param data
|
||
/// @param len data buffer len
|
||
/// @return
|
||
bool ipc_msg_get_nth_arg(struct IpcMsg* msg, const int arg_num, void* data, const int len)
|
||
{
|
||
2750: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
2754: aa0003e4 mov x4, x0
|
||
2758: 910003fd mov x29, sp
|
||
275c: f9000bf3 str x19, [sp, #16]
|
||
if (arg_num >= msg->header.nr_args) {
|
||
2760: 39400005 ldrb w5, [x0]
|
||
2764: d3441ca5 ubfx x5, x5, #4, #4
|
||
2768: 6b0100bf cmp w5, w1
|
||
276c: 5400030d b.le 27cc <ipc_msg_get_nth_arg+0x7c>
|
||
printf("[%s] IPC: arg_num out of msg range", __func__);
|
||
return false;
|
||
}
|
||
struct IpcArgInfo* nth_arg_info = IPCMSG_ARG_INFO(msg, arg_num);
|
||
2770: 528000c5 mov w5, #0x6 // #6
|
||
2774: aa0203e0 mov x0, x2
|
||
2778: d2800182 mov x2, #0xc // #12
|
||
277c: 9b250821 smaddl x1, w1, w5, x2
|
||
2780: 8b010082 add x2, x4, x1
|
||
if (len > nth_arg_info->len) {
|
||
2784: 79400445 ldrh w5, [x2, #2]
|
||
2788: 6b0300bf cmp w5, w3
|
||
278c: 5400036b b.lt 27f8 <ipc_msg_get_nth_arg+0xa8> // b.tstop
|
||
printf("[%s] IPC: size of arg out of buffer range", __func__);
|
||
return false;
|
||
}
|
||
|
||
// handle null ptr: do nothing
|
||
if (nth_arg_info->null_ptr == 1) {
|
||
2790: 39401042 ldrb w2, [x2, #4]
|
||
return true;
|
||
2794: 52800033 mov w19, #0x1 // #1
|
||
if (nth_arg_info->null_ptr == 1) {
|
||
2798: 360000a2 tbz w2, #0, 27ac <ipc_msg_get_nth_arg+0x5c>
|
||
}
|
||
|
||
void* buf = ipc_msg_get_nth_arg_buf(msg, arg_num);
|
||
memmove(data, buf, len);
|
||
return true;
|
||
}
|
||
279c: 2a1303e0 mov w0, w19
|
||
27a0: f9400bf3 ldr x19, [sp, #16]
|
||
27a4: a8c27bfd ldp x29, x30, [sp], #32
|
||
27a8: d65f03c0 ret
|
||
return (void*)((char*)msg + IPCMSG_ARG_INFO(msg, arg_num)->offset);
|
||
27ac: 78616881 ldrh w1, [x4, x1]
|
||
memmove(data, buf, len);
|
||
27b0: 93407c62 sxtw x2, w3
|
||
27b4: 8b010081 add x1, x4, x1
|
||
27b8: 94000492 bl 3a00 <memmove>
|
||
}
|
||
27bc: 2a1303e0 mov w0, w19
|
||
27c0: f9400bf3 ldr x19, [sp, #16]
|
||
27c4: a8c27bfd ldp x29, x30, [sp], #32
|
||
27c8: d65f03c0 ret
|
||
printf("[%s] IPC: arg_num out of msg range", __func__);
|
||
27cc: b0000041 adrp x1, b000 <pow10.0+0x80>
|
||
27d0: 9105c021 add x1, x1, #0x170
|
||
27d4: 91006021 add x1, x1, #0x18
|
||
return false;
|
||
27d8: 52800013 mov w19, #0x0 // #0
|
||
printf("[%s] IPC: arg_num out of msg range", __func__);
|
||
27dc: b0000040 adrp x0, b000 <pow10.0+0x80>
|
||
27e0: 91024000 add x0, x0, #0x90
|
||
27e4: 97fffdb3 bl 1eb0 <printf>
|
||
}
|
||
27e8: 2a1303e0 mov w0, w19
|
||
27ec: f9400bf3 ldr x19, [sp, #16]
|
||
27f0: a8c27bfd ldp x29, x30, [sp], #32
|
||
27f4: d65f03c0 ret
|
||
printf("[%s] IPC: size of arg out of buffer range", __func__);
|
||
27f8: b0000041 adrp x1, b000 <pow10.0+0x80>
|
||
27fc: 9105c021 add x1, x1, #0x170
|
||
2800: 91006021 add x1, x1, #0x18
|
||
return false;
|
||
2804: 52800013 mov w19, #0x0 // #0
|
||
printf("[%s] IPC: size of arg out of buffer range", __func__);
|
||
2808: b0000040 adrp x0, b000 <pow10.0+0x80>
|
||
280c: 9102e000 add x0, x0, #0xb8
|
||
2810: 97fffda8 bl 1eb0 <printf>
|
||
}
|
||
2814: 2a1303e0 mov w0, w19
|
||
2818: f9400bf3 ldr x19, [sp, #16]
|
||
281c: a8c27bfd ldp x29, x30, [sp], #32
|
||
2820: d65f03c0 ret
|
||
2824: d503201f nop
|
||
2828: d503201f nop
|
||
282c: d503201f nop
|
||
|
||
0000000000002830 <ipc_msg_send_wait>:
|
||
|
||
void ipc_msg_send_wait(struct IpcMsg* msg)
|
||
{
|
||
2830: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
msg->header.magic = IPC_MSG_MAGIC;
|
||
msg->header.valid = 1;
|
||
2834: d2800021 mov x1, #0x1 // #1
|
||
2838: f2db9741 movk x1, #0xdcba, lsl #32
|
||
283c: f2f579a1 movk x1, #0xabcd, lsl #48
|
||
{
|
||
2840: 910003fd mov x29, sp
|
||
2844: f9000bf3 str x19, [sp, #16]
|
||
2848: aa0003f3 mov x19, x0
|
||
msg->header.valid = 1;
|
||
284c: f9400000 ldr x0, [x0]
|
||
2850: 927e7400 and x0, x0, #0xfffffffc
|
||
2854: aa010000 orr x0, x0, x1
|
||
2858: f9000260 str x0, [x19]
|
||
msg->header.done = 0;
|
||
while (msg->header.done == 0) {
|
||
285c: d503201f nop
|
||
/// @todo syscall yield with prio decrease
|
||
yield(SYS_TASK_YIELD_BLOCK_IPC);
|
||
2860: 52800040 mov w0, #0x2 // #2
|
||
2864: 97fffe97 bl 22c0 <yield>
|
||
while (msg->header.done == 0) {
|
||
2868: 39400261 ldrb w1, [x19]
|
||
286c: 360fffa1 tbz w1, #1, 2860 <ipc_msg_send_wait+0x30>
|
||
}
|
||
assert(msg->header.done == 1);
|
||
}
|
||
2870: f9400bf3 ldr x19, [sp, #16]
|
||
2874: a8c27bfd ldp x29, x30, [sp], #32
|
||
2878: d65f03c0 ret
|
||
287c: d503201f nop
|
||
|
||
0000000000002880 <ipc_msg_send_nowait>:
|
||
|
||
void ipc_msg_send_nowait(struct IpcMsg* msg)
|
||
{
|
||
msg->header.magic = IPC_MSG_MAGIC;
|
||
msg->header.valid = 1;
|
||
2880: f9400001 ldr x1, [x0]
|
||
2884: d2800022 mov x2, #0x1 // #1
|
||
2888: f2db9742 movk x2, #0xdcba, lsl #32
|
||
288c: f2f579a2 movk x2, #0xabcd, lsl #48
|
||
2890: 927e7421 and x1, x1, #0xfffffffc
|
||
2894: aa020021 orr x1, x1, x2
|
||
2898: f9000001 str x1, [x0]
|
||
msg->header.done = 0;
|
||
}
|
||
289c: d65f03c0 ret
|
||
|
||
00000000000028a0 <ipc_session_wait>:
|
||
|
||
int ipc_session_wait(struct Session* session)
|
||
{
|
||
28a0: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
28a4: 910003fd mov x29, sp
|
||
28a8: f9000bf3 str x19, [sp, #16]
|
||
struct IpcMsg* msg = IPCSESSION_MSG(session);
|
||
28ac: b9800801 ldrsw x1, [x0, #8]
|
||
28b0: f9400800 ldr x0, [x0, #16]
|
||
28b4: 8b010013 add x19, x0, x1
|
||
while (msg->header.done == 0) {
|
||
28b8: 38616800 ldrb w0, [x0, x1]
|
||
28bc: 370800a0 tbnz w0, #1, 28d0 <ipc_session_wait+0x30>
|
||
/// @todo syscall yield with prio decrease
|
||
yield(SYS_TASK_YIELD_BLOCK_IPC);
|
||
28c0: 52800040 mov w0, #0x2 // #2
|
||
28c4: 97fffe7f bl 22c0 <yield>
|
||
while (msg->header.done == 0) {
|
||
28c8: 39400260 ldrb w0, [x19]
|
||
28cc: 360fffa0 tbz w0, #1, 28c0 <ipc_session_wait+0x20>
|
||
}
|
||
assert(msg->header.done == 1);
|
||
return msg->header.ret_val;
|
||
}
|
||
28d0: b9400a60 ldr w0, [x19, #8]
|
||
28d4: f9400bf3 ldr x19, [sp, #16]
|
||
28d8: a8c27bfd ldp x29, x30, [sp], #32
|
||
28dc: d65f03c0 ret
|
||
|
||
00000000000028e0 <cur_session_id>:
|
||
|
||
static int cur_sess_id = -1;
|
||
static struct IpcMsg* ipc_server_loop_cur_msg = NULL;
|
||
int cur_session_id(void)
|
||
{
|
||
return cur_sess_id;
|
||
28e0: d0000040 adrp x0, c000 <IpcTestNull+0x6e8>
|
||
}
|
||
28e4: b9412800 ldr w0, [x0, #296]
|
||
28e8: d65f03c0 ret
|
||
28ec: d503201f nop
|
||
|
||
00000000000028f0 <delay_session>:
|
||
|
||
static bool session_delayed = false;
|
||
void delay_session(void)
|
||
{
|
||
session_delayed = true;
|
||
28f0: f0000040 adrp x0, d000 <__malloc_av_+0x780>
|
||
28f4: 52800021 mov w1, #0x1 // #1
|
||
28f8: 390b4001 strb w1, [x0, #720]
|
||
}
|
||
28fc: d65f03c0 ret
|
||
|
||
0000000000002900 <is_cur_session_delayed>:
|
||
|
||
bool is_cur_session_delayed(void)
|
||
{
|
||
return session_delayed;
|
||
2900: f0000040 adrp x0, d000 <__malloc_av_+0x780>
|
||
}
|
||
2904: 394b4000 ldrb w0, [x0, #720]
|
||
2908: d65f03c0 ret
|
||
290c: d503201f nop
|
||
|
||
0000000000002910 <is_cur_handler_been_delayed>:
|
||
|
||
bool is_cur_handler_been_delayed()
|
||
{
|
||
if (ipc_server_loop_cur_msg == NULL) {
|
||
2910: f0000040 adrp x0, d000 <__malloc_av_+0x780>
|
||
2914: f9416c00 ldr x0, [x0, #728]
|
||
2918: b4000080 cbz x0, 2928 <is_cur_handler_been_delayed+0x18>
|
||
return false;
|
||
}
|
||
return ipc_server_loop_cur_msg->header.delayed == 1;
|
||
291c: 39400000 ldrb w0, [x0]
|
||
2920: d3430c00 ubfx x0, x0, #3, #1
|
||
}
|
||
2924: d65f03c0 ret
|
||
return false;
|
||
2928: 52800000 mov w0, #0x0 // #0
|
||
}
|
||
292c: d65f03c0 ret
|
||
|
||
0000000000002930 <ipc_server_loop>:
|
||
|
||
void ipc_server_loop(struct IpcNode* ipc_node)
|
||
{
|
||
2930: d10dc3ff sub sp, sp, #0x370
|
||
struct Session session_list[NR_MAX_SESSION];
|
||
memset(session_list, 0, sizeof(session_list));
|
||
2934: d2806002 mov x2, #0x300 // #768
|
||
2938: 52800001 mov w1, #0x0 // #0
|
||
{
|
||
293c: a9007bfd stp x29, x30, [sp]
|
||
2940: 910003fd mov x29, sp
|
||
2944: a90153f3 stp x19, x20, [sp, #16]
|
||
2948: aa0003f3 mov x19, x0
|
||
memset(session_list, 0, sizeof(session_list));
|
||
294c: 9101c3e0 add x0, sp, #0x70
|
||
{
|
||
2950: a9025bf5 stp x21, x22, [sp, #32]
|
||
2954: d0000055 adrp x21, c000 <IpcTestNull+0x6e8>
|
||
2958: 9104a2b5 add x21, x21, #0x128
|
||
295c: a90363f7 stp x23, x24, [sp, #48]
|
||
2960: b0000056 adrp x22, b000 <pow10.0+0x80>
|
||
2964: 910442d6 add x22, x22, #0x110
|
||
2968: a9046bf9 stp x25, x26, [sp, #64]
|
||
ipc_server_loop_cur_msg = IPCSESSION_MSG(&session_list[i]);
|
||
/* handle every message in current session
|
||
a session could be delay in case one of its message(current message) needs to wait for an interrupt message's arrival
|
||
interfaces[opcode] should explicitly call delay_session() and return to delay this session
|
||
*/
|
||
while (ipc_server_loop_cur_msg->header.magic == IPC_MSG_MAGIC && ipc_server_loop_cur_msg->header.valid == 1 && ipc_server_loop_cur_msg->header.done == 0) {
|
||
296c: 529b9754 mov w20, #0xdcba // #56506
|
||
2970: 72b579b4 movk w20, #0xabcd, lsl #16
|
||
{
|
||
2974: a90573fb stp x27, x28, [sp, #80]
|
||
memset(session_list, 0, sizeof(session_list));
|
||
2978: 94000452 bl 3ac0 <memset>
|
||
297c: f0000044 adrp x4, d000 <__malloc_av_+0x780>
|
||
2980: 910b409c add x28, x4, #0x2d0
|
||
2984: b0000040 adrp x0, b000 <pow10.0+0x80>
|
||
2988: 9103a000 add x0, x0, #0xe8
|
||
298c: f90037e0 str x0, [sp, #104]
|
||
2990: b000005b adrp x27, b000 <pow10.0+0x80>
|
||
2994: 9104e360 add x0, x27, #0x138
|
||
2998: f90033e0 str x0, [sp, #96]
|
||
poll_session(session_list, NR_MAX_SESSION);
|
||
299c: 9101c3e0 add x0, sp, #0x70
|
||
for (int repeat = 0; repeat <= 1 && has_delayed; repeat++) {
|
||
29a0: 5280001a mov w26, #0x0 // #0
|
||
break;
|
||
}
|
||
ipc_server_loop_cur_msg = IPCSESSION_MSG(&session_list[i]);
|
||
}
|
||
// stop handle this session
|
||
cur_sess_id = -1;
|
||
29a4: 12800018 mov w24, #0xffffffff // #-1
|
||
poll_session(session_list, NR_MAX_SESSION);
|
||
29a8: 52800401 mov w1, #0x20 // #32
|
||
29ac: 97fffe65 bl 2340 <poll_session>
|
||
for (int repeat = 0; repeat <= 1 && has_delayed; repeat++) {
|
||
29b0: 9101c3fb add x27, sp, #0x70
|
||
29b4: 910dc3f7 add x23, sp, #0x370
|
||
has_delayed = false;
|
||
29b8: 52800019 mov w25, #0x0 // #0
|
||
29bc: d503201f nop
|
||
if (session_list[i].buf == NULL) {
|
||
29c0: f9400b60 ldr x0, [x27, #16]
|
||
session_delayed = false;
|
||
29c4: 3900039f strb wzr, [x28]
|
||
if (session_list[i].buf == NULL) {
|
||
29c8: b4000980 cbz x0, 2af8 <ipc_server_loop+0x1c8>
|
||
ipc_server_loop_cur_msg = IPCSESSION_MSG(&session_list[i]);
|
||
29cc: b9800b62 ldrsw x2, [x27, #8]
|
||
cur_sess_id = session_list[i].id;
|
||
29d0: b9400361 ldr w1, [x27]
|
||
ipc_server_loop_cur_msg = IPCSESSION_MSG(&session_list[i]);
|
||
29d4: 8b020000 add x0, x0, x2
|
||
cur_sess_id = session_list[i].id;
|
||
29d8: b90002a1 str w1, [x21]
|
||
ipc_server_loop_cur_msg = IPCSESSION_MSG(&session_list[i]);
|
||
29dc: f9000780 str x0, [x28, #8]
|
||
while (ipc_server_loop_cur_msg->header.magic == IPC_MSG_MAGIC && ipc_server_loop_cur_msg->header.valid == 1 && ipc_server_loop_cur_msg->header.done == 0) {
|
||
29e0: b9400401 ldr w1, [x0, #4]
|
||
29e4: 6b14003f cmp w1, w20
|
||
29e8: 54000340 b.eq 2a50 <ipc_server_loop+0x120> // b.none
|
||
29ec: 14000039 b 2ad0 <ipc_server_loop+0x1a0>
|
||
ipc_node->interfaces[ipc_server_loop_cur_msg->header.opcode](ipc_server_loop_cur_msg);
|
||
29f0: d63f0040 blr x2
|
||
if (ipc_server_loop_cur_msg->header.done == 0) {
|
||
29f4: f9400780 ldr x0, [x28, #8]
|
||
29f8: 39400001 ldrb w1, [x0]
|
||
29fc: 36080641 tbz w1, #1, 2ac4 <ipc_server_loop+0x194>
|
||
void* buf;
|
||
};
|
||
|
||
__attribute__((__always_inline__)) static inline int session_used_size(struct Session* session)
|
||
{
|
||
return ((session->tail + session->capacity) - session->head) % session->capacity;
|
||
2a00: 29409b62 ldp w2, w6, [x27, #4]
|
||
2a04: b9400f61 ldr w1, [x27, #12]
|
||
if (session_forward_head(&session_list[i], ipc_server_loop_cur_msg->header.len) < 0) {
|
||
2a08: 79400400 ldrh w0, [x0, #2]
|
||
2a0c: 0b010041 add w1, w2, w1
|
||
2a10: 4b060021 sub w1, w1, w6
|
||
2a14: 1ac20c25 sdiv w5, w1, w2
|
||
2a18: 1b0284a1 msub w1, w5, w2, w1
|
||
return session->capacity - session_used_size(session);
|
||
}
|
||
|
||
__attribute__((__always_inline__)) static inline int session_forward_head(struct Session* session, int len)
|
||
{
|
||
if (len > session_used_size(session)) {
|
||
2a1c: 6b01001f cmp w0, w1
|
||
2a20: 5400078c b.gt 2b10 <ipc_server_loop+0x1e0>
|
||
printf("forward head with too much size, session used size: %d\n", session_used_size(session));
|
||
return -1;
|
||
}
|
||
session->head = (session->head + len) % session->capacity;
|
||
2a24: 0b060000 add w0, w0, w6
|
||
2a28: 1ac20c01 sdiv w1, w0, w2
|
||
2a2c: 1b028020 msub w0, w1, w2, w0
|
||
2a30: b9000b60 str w0, [x27, #8]
|
||
2a34: 37f804e0 tbnz w0, #31, 2ad0 <ipc_server_loop+0x1a0>
|
||
ipc_server_loop_cur_msg = IPCSESSION_MSG(&session_list[i]);
|
||
2a38: f9400b61 ldr x1, [x27, #16]
|
||
2a3c: 8b20c020 add x0, x1, w0, sxtw
|
||
2a40: f9000780 str x0, [x28, #8]
|
||
while (ipc_server_loop_cur_msg->header.magic == IPC_MSG_MAGIC && ipc_server_loop_cur_msg->header.valid == 1 && ipc_server_loop_cur_msg->header.done == 0) {
|
||
2a44: b9400401 ldr w1, [x0, #4]
|
||
2a48: 6b14003f cmp w1, w20
|
||
2a4c: 54000421 b.ne 2ad0 <ipc_server_loop+0x1a0> // b.any
|
||
2a50: 39400001 ldrb w1, [x0]
|
||
2a54: 12000421 and w1, w1, #0x3
|
||
2a58: 7100043f cmp w1, #0x1
|
||
2a5c: 540003a1 b.ne 2ad0 <ipc_server_loop+0x1a0> // b.any
|
||
return ((session->tail + session->capacity) - session->head) % session->capacity;
|
||
2a60: 29409761 ldp w1, w5, [x27, #4]
|
||
2a64: b9400f66 ldr w6, [x27, #12]
|
||
2a68: 0b0100c2 add w2, w6, w1
|
||
2a6c: 4b050042 sub w2, w2, w5
|
||
2a70: 1ac10c45 sdiv w5, w2, w1
|
||
2a74: 1b0188a2 msub w2, w5, w1, w2
|
||
if (session_used_size(&session_list[i]) == 0 && session_forward_tail(&session_list[i], ipc_server_loop_cur_msg->header.len) < 0) {
|
||
2a78: 35000122 cbnz w2, 2a9c <ipc_server_loop+0x16c>
|
||
2a7c: 79400402 ldrh w2, [x0, #2]
|
||
return session->head;
|
||
}
|
||
|
||
__attribute__((__always_inline__)) static inline int session_forward_tail(struct Session* session, int len)
|
||
{
|
||
if (len > session_remain_capacity(session)) {
|
||
2a80: 6b01005f cmp w2, w1
|
||
2a84: 5400056c b.gt 2b30 <ipc_server_loop+0x200>
|
||
printf("forward tail with too much size\n");
|
||
return -1;
|
||
}
|
||
session->tail = (session->tail + len) % session->capacity;
|
||
2a88: 0b060042 add w2, w2, w6
|
||
2a8c: 1ac10c45 sdiv w5, w2, w1
|
||
2a90: 1b0188a2 msub w2, w5, w1, w2
|
||
2a94: b9000f62 str w2, [x27, #12]
|
||
2a98: 37f801c2 tbnz w2, #31, 2ad0 <ipc_server_loop+0x1a0>
|
||
if (ipc_node->interfaces[ipc_server_loop_cur_msg->header.opcode]) {
|
||
2a9c: 39400402 ldrb w2, [x0, #1]
|
||
2aa0: 39400401 ldrb w1, [x0, #1]
|
||
2aa4: 8b020e62 add x2, x19, x2, lsl #3
|
||
2aa8: f9400442 ldr x2, [x2, #8]
|
||
2aac: b5fffa22 cbnz x2, 29f0 <ipc_server_loop+0xc0>
|
||
printf("Unsupport opcode(%u) for server: %s\n", ipc_server_loop_cur_msg->header.opcode, ipc_node->name);
|
||
2ab0: f9400262 ldr x2, [x19]
|
||
2ab4: aa1603e0 mov x0, x22
|
||
2ab8: 97fffcfe bl 1eb0 <printf>
|
||
if (session_forward_head(&session_list[i], ipc_server_loop_cur_msg->header.len) < 0) {
|
||
2abc: f9400780 ldr x0, [x28, #8]
|
||
2ac0: 17ffffd0 b 2a00 <ipc_server_loop+0xd0>
|
||
ipc_server_loop_cur_msg->header.delayed = 1;
|
||
2ac4: 321d0021 orr w1, w1, #0x8
|
||
has_delayed = true;
|
||
2ac8: 52800039 mov w25, #0x1 // #1
|
||
ipc_server_loop_cur_msg->header.delayed = 1;
|
||
2acc: 39000001 strb w1, [x0]
|
||
cur_sess_id = -1;
|
||
2ad0: b90002b8 str w24, [x21]
|
||
for (int i = 0; i < NR_MAX_SESSION; i++) {
|
||
2ad4: 9100637b add x27, x27, #0x18
|
||
ipc_server_loop_cur_msg = NULL;
|
||
2ad8: f900079f str xzr, [x28, #8]
|
||
for (int i = 0; i < NR_MAX_SESSION; i++) {
|
||
2adc: eb1b02ff cmp x23, x27
|
||
2ae0: 54fff701 b.ne 29c0 <ipc_server_loop+0x90> // b.any
|
||
for (int repeat = 0; repeat <= 1 && has_delayed; repeat++) {
|
||
2ae4: 52000340 eor w0, w26, #0x1
|
||
2ae8: 5280003a mov w26, #0x1 // #1
|
||
2aec: 6a00033f tst w25, w0
|
||
2af0: 54fff601 b.ne 29b0 <ipc_server_loop+0x80> // b.any
|
||
2af4: 17ffffaa b 299c <ipc_server_loop+0x6c>
|
||
yield(SYS_TASK_YIELD_NO_REASON);
|
||
2af8: 97fffdf2 bl 22c0 <yield>
|
||
for (int repeat = 0; repeat <= 1 && has_delayed; repeat++) {
|
||
2afc: 52000340 eor w0, w26, #0x1
|
||
2b00: 5280003a mov w26, #0x1 // #1
|
||
2b04: 6a00033f tst w25, w0
|
||
2b08: 54fff541 b.ne 29b0 <ipc_server_loop+0x80> // b.any
|
||
2b0c: 17ffffa4 b 299c <ipc_server_loop+0x6c>
|
||
printf("forward head with too much size, session used size: %d\n", session_used_size(session));
|
||
2b10: f94033e0 ldr x0, [sp, #96]
|
||
for (int i = 0; i < NR_MAX_SESSION; i++) {
|
||
2b14: 9100637b add x27, x27, #0x18
|
||
2b18: 97fffce6 bl 1eb0 <printf>
|
||
cur_sess_id = -1;
|
||
2b1c: b90002b8 str w24, [x21]
|
||
ipc_server_loop_cur_msg = NULL;
|
||
2b20: f900079f str xzr, [x28, #8]
|
||
for (int i = 0; i < NR_MAX_SESSION; i++) {
|
||
2b24: eb1b02ff cmp x23, x27
|
||
2b28: 54fff4c1 b.ne 29c0 <ipc_server_loop+0x90> // b.any
|
||
2b2c: 17ffffee b 2ae4 <ipc_server_loop+0x1b4>
|
||
printf("forward tail with too much size\n");
|
||
2b30: f94037e0 ldr x0, [sp, #104]
|
||
2b34: 9100637b add x27, x27, #0x18
|
||
2b38: 97fffcde bl 1eb0 <printf>
|
||
cur_sess_id = -1;
|
||
2b3c: b90002b8 str w24, [x21]
|
||
ipc_server_loop_cur_msg = NULL;
|
||
2b40: f900079f str xzr, [x28, #8]
|
||
for (int i = 0; i < NR_MAX_SESSION; i++) {
|
||
2b44: eb1b02ff cmp x23, x27
|
||
2b48: 54fff3c1 b.ne 29c0 <ipc_server_loop+0x90> // b.any
|
||
2b4c: 17ffffe6 b 2ae4 <ipc_server_loop+0x1b4>
|
||
|
||
0000000000002b50 <connect_session>:
|
||
|
||
#include "session.h"
|
||
#include "usyscall.h"
|
||
|
||
int connect_session(struct Session* _session, char* _path, int _capacity)
|
||
{
|
||
2b50: aa0003e3 mov x3, x0
|
||
2b54: aa0103e0 mov x0, x1
|
||
2b58: 2a0203e1 mov w1, w2
|
||
return session(_path, _capacity, _session);
|
||
2b5c: aa0303e2 mov x2, x3
|
||
2b60: 17fffdf0 b 2320 <session>
|
||
2b64: d503201f nop
|
||
2b68: d503201f nop
|
||
2b6c: d503201f nop
|
||
|
||
0000000000002b70 <free_session>:
|
||
}
|
||
|
||
int free_session(struct Session* session)
|
||
{
|
||
return close_session(session);
|
||
2b70: 17fffdfc b 2360 <close_session>
|
||
2b74: d503201f nop
|
||
2b78: d503201f nop
|
||
2b7c: d503201f nop
|
||
|
||
0000000000002b80 <session_alloc_buf>:
|
||
}
|
||
|
||
// ipc_msg alloc_buffer(ipc_session)
|
||
|
||
void* session_alloc_buf(struct Session* session, int len)
|
||
{
|
||
2b80: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
2b84: 910003fd mov x29, sp
|
||
2b88: f90013f5 str x21, [sp, #32]
|
||
if (len < 0 || len > session_remain_capacity(session)) {
|
||
2b8c: 37f80561 tbnz w1, #31, 2c38 <session_alloc_buf+0xb8>
|
||
2b90: a90153f3 stp x19, x20, [sp, #16]
|
||
2b94: 2a0103f4 mov w20, w1
|
||
2b98: aa0003f3 mov x19, x0
|
||
return ((session->tail + session->capacity) - session->head) % session->capacity;
|
||
2b9c: 29408801 ldp w1, w2, [x0, #4]
|
||
return NULL;
|
||
2ba0: d2800015 mov x21, #0x0 // #0
|
||
2ba4: b9400c03 ldr w3, [x0, #12]
|
||
2ba8: 0b030020 add w0, w1, w3
|
||
2bac: 4b020000 sub w0, w0, w2
|
||
2bb0: 1ac10c02 sdiv w2, w0, w1
|
||
2bb4: 1b018040 msub w0, w2, w1, w0
|
||
return session->capacity - session_used_size(session);
|
||
2bb8: 4b000021 sub w1, w1, w0
|
||
if (len < 0 || len > session_remain_capacity(session)) {
|
||
2bbc: 6b01029f cmp w20, w1
|
||
2bc0: 5400032c b.gt 2c24 <session_alloc_buf+0xa4>
|
||
}
|
||
void* buf = (void*)((uintptr_t)session->buf + session->tail);
|
||
2bc4: f9400a75 ldr x21, [x19, #16]
|
||
// we mapped double size of page, so it's ok to write buffer directly
|
||
memset(buf, 0, len);
|
||
2bc8: 93407e82 sxtw x2, w20
|
||
2bcc: 52800001 mov w1, #0x0 // #0
|
||
void* buf = (void*)((uintptr_t)session->buf + session->tail);
|
||
2bd0: 8b23c2b5 add x21, x21, w3, sxtw
|
||
memset(buf, 0, len);
|
||
2bd4: aa1503e0 mov x0, x21
|
||
2bd8: 940003ba bl 3ac0 <memset>
|
||
return ((session->tail + session->capacity) - session->head) % session->capacity;
|
||
2bdc: 29408e60 ldp w0, w3, [x19, #4]
|
||
2be0: b9400e61 ldr w1, [x19, #12]
|
||
2be4: 0b010002 add w2, w0, w1
|
||
2be8: 4b030043 sub w3, w2, w3
|
||
2bec: 1ac00c62 sdiv w2, w3, w0
|
||
2bf0: 1b008c42 msub w2, w2, w0, w3
|
||
return session->capacity - session_used_size(session);
|
||
2bf4: 4b020002 sub w2, w0, w2
|
||
if (len > session_remain_capacity(session)) {
|
||
2bf8: 6b02029f cmp w20, w2
|
||
2bfc: 5400028c b.gt 2c4c <session_alloc_buf+0xcc>
|
||
session->tail = (session->tail + len) % session->capacity;
|
||
2c00: 0b010294 add w20, w20, w1
|
||
2c04: 1ac00e81 sdiv w1, w20, w0
|
||
2c08: 1b00d034 msub w20, w1, w0, w20
|
||
2c0c: b9000e74 str w20, [x19, #12]
|
||
return session->tail;
|
||
2c10: a94153f3 ldp x19, x20, [sp, #16]
|
||
session_forward_tail(session, len);
|
||
return buf;
|
||
}
|
||
2c14: aa1503e0 mov x0, x21
|
||
2c18: f94013f5 ldr x21, [sp, #32]
|
||
2c1c: a8c37bfd ldp x29, x30, [sp], #48
|
||
2c20: d65f03c0 ret
|
||
2c24: aa1503e0 mov x0, x21
|
||
2c28: a94153f3 ldp x19, x20, [sp, #16]
|
||
2c2c: f94013f5 ldr x21, [sp, #32]
|
||
2c30: a8c37bfd ldp x29, x30, [sp], #48
|
||
2c34: d65f03c0 ret
|
||
return NULL;
|
||
2c38: d2800015 mov x21, #0x0 // #0
|
||
}
|
||
2c3c: aa1503e0 mov x0, x21
|
||
2c40: f94013f5 ldr x21, [sp, #32]
|
||
2c44: a8c37bfd ldp x29, x30, [sp], #48
|
||
2c48: d65f03c0 ret
|
||
printf("forward tail with too much size\n");
|
||
2c4c: b0000040 adrp x0, b000 <pow10.0+0x80>
|
||
2c50: 9103a000 add x0, x0, #0xe8
|
||
2c54: 97fffc97 bl 1eb0 <printf>
|
||
return -1;
|
||
2c58: a94153f3 ldp x19, x20, [sp, #16]
|
||
2c5c: 17ffffee b 2c14 <session_alloc_buf+0x94>
|
||
|
||
0000000000002c60 <session_free_buf>:
|
||
|
||
bool session_free_buf(struct Session* session, int len)
|
||
{
|
||
if (len < 0 || len > session_used_size(session)) {
|
||
2c60: 37f80241 tbnz w1, #31, 2ca8 <session_free_buf+0x48>
|
||
return ((session->tail + session->capacity) - session->head) % session->capacity;
|
||
2c64: 29409403 ldp w3, w5, [x0, #4]
|
||
2c68: aa0003e2 mov x2, x0
|
||
2c6c: b9400c00 ldr w0, [x0, #12]
|
||
2c70: 0b000060 add w0, w3, w0
|
||
2c74: 4b050000 sub w0, w0, w5
|
||
2c78: 1ac30c04 sdiv w4, w0, w3
|
||
2c7c: 1b038080 msub w0, w4, w3, w0
|
||
2c80: 6b00003f cmp w1, w0
|
||
2c84: 5400012c b.gt 2ca8 <session_free_buf+0x48>
|
||
session->head = (session->head + len) % session->capacity;
|
||
2c88: 0b050021 add w1, w1, w5
|
||
return false;
|
||
}
|
||
assert(session_forward_head(session, len) != -1);
|
||
return true;
|
||
2c8c: 52800020 mov w0, #0x1 // #1
|
||
2c90: 1ac30c24 sdiv w4, w1, w3
|
||
2c94: 1b038481 msub w1, w4, w3, w1
|
||
2c98: b9000841 str w1, [x2, #8]
|
||
assert(session_forward_head(session, len) != -1);
|
||
2c9c: 3100043f cmn w1, #0x1
|
||
2ca0: 54000080 b.eq 2cb0 <session_free_buf+0x50> // b.none
|
||
}
|
||
2ca4: d65f03c0 ret
|
||
return false;
|
||
2ca8: 52800000 mov w0, #0x0 // #0
|
||
}
|
||
2cac: d65f03c0 ret
|
||
{
|
||
2cb0: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
assert(session_forward_head(session, len) != -1);
|
||
2cb4: b0000043 adrp x3, b000 <pow10.0+0x80>
|
||
2cb8: b0000042 adrp x2, b000 <pow10.0+0x80>
|
||
{
|
||
2cbc: 910003fd mov x29, sp
|
||
assert(session_forward_head(session, len) != -1);
|
||
2cc0: b0000040 adrp x0, b000 <pow10.0+0x80>
|
||
2cc4: 91068063 add x3, x3, #0x1a0
|
||
2cc8: 91078042 add x2, x2, #0x1e0
|
||
2ccc: 91074000 add x0, x0, #0x1d0
|
||
2cd0: 52800801 mov w1, #0x40 // #64
|
||
2cd4: 94000033 bl 2da0 <__assert_func>
|
||
2cd8: d503201f nop
|
||
2cdc: d503201f nop
|
||
|
||
0000000000002ce0 <_exit>:
|
||
#include <sys/types.h>
|
||
|
||
// _exit: 用于退出程序
|
||
void _exit(int status)
|
||
{
|
||
while (1) { }
|
||
2ce0: 14000000 b 2ce0 <_exit>
|
||
2ce4: d503201f nop
|
||
2ce8: d503201f nop
|
||
2cec: d503201f nop
|
||
|
||
0000000000002cf0 <_sbrk>:
|
||
{
|
||
extern char end; /* Defined by the linker */
|
||
static char* heap_end;
|
||
char* prev_heap_end;
|
||
|
||
if (heap_end == 0) {
|
||
2cf0: f0000043 adrp x3, d000 <__malloc_av_+0x780>
|
||
2cf4: f9417061 ldr x1, [x3, #736]
|
||
2cf8: f0000042 adrp x2, d000 <__malloc_av_+0x780>
|
||
2cfc: 9117a042 add x2, x2, #0x5e8
|
||
2d00: f100003f cmp x1, #0x0
|
||
2d04: 9a810041 csel x1, x2, x1, eq // eq = none
|
||
prev_heap_end = heap_end;
|
||
|
||
// 在这里,你应该添加一些检查来确保堆不会与栈或其他内存区域冲突
|
||
// 例如,检查 incr 是否会导致堆超出预定的内存区域
|
||
|
||
heap_end += incr;
|
||
2d08: 8b000022 add x2, x1, x0
|
||
return (void*)prev_heap_end;
|
||
}
|
||
2d0c: aa0103e0 mov x0, x1
|
||
heap_end += incr;
|
||
2d10: f9017062 str x2, [x3, #736]
|
||
}
|
||
2d14: d65f03c0 ret
|
||
2d18: d503201f nop
|
||
2d1c: d503201f nop
|
||
|
||
0000000000002d20 <_write>:
|
||
|
||
// _write: 用于将数据写入文件描述符
|
||
ssize_t _write(int file, const void* ptr, size_t len)
|
||
{
|
||
2d20: aa0203e0 mov x0, x2
|
||
// 在这里,你需要实现将数据写入文件描述符的逻辑
|
||
// 如果你的系统不支持文件系统,你可以将数据发送到串口或其他输出
|
||
|
||
return len; // 假设所有数据都被写入
|
||
}
|
||
2d24: d65f03c0 ret
|
||
2d28: d503201f nop
|
||
2d2c: d503201f nop
|
||
|
||
0000000000002d30 <_close>:
|
||
|
||
// _close: 用于关闭文件描述符
|
||
int _close(int file)
|
||
{
|
||
return -1; // 表示失败,因为没有实际关闭文件的功能
|
||
}
|
||
2d30: 12800000 mov w0, #0xffffffff // #-1
|
||
2d34: d65f03c0 ret
|
||
2d38: d503201f nop
|
||
2d3c: d503201f nop
|
||
|
||
0000000000002d40 <_fstat>:
|
||
|
||
// _fstat: 用于获取文件状态
|
||
int _fstat(int file, struct stat* st)
|
||
{
|
||
return 0; // 表示成功
|
||
}
|
||
2d40: 52800000 mov w0, #0x0 // #0
|
||
2d44: d65f03c0 ret
|
||
2d48: d503201f nop
|
||
2d4c: d503201f nop
|
||
|
||
0000000000002d50 <_isatty>:
|
||
|
||
// _isatty: 检查文件描述符是否指向TTY设备
|
||
int _isatty(int file)
|
||
{
|
||
return 1; // 表示是TTY设备
|
||
}
|
||
2d50: 52800020 mov w0, #0x1 // #1
|
||
2d54: d65f03c0 ret
|
||
2d58: d503201f nop
|
||
2d5c: d503201f nop
|
||
|
||
0000000000002d60 <_lseek>:
|
||
|
||
// _lseek: 用于重新定位文件读/写的位置
|
||
off_t _lseek(int file, off_t offset, int whence)
|
||
{
|
||
return -1; // 表示失败,因为不支持文件定位
|
||
}
|
||
2d60: 92800000 mov x0, #0xffffffffffffffff // #-1
|
||
2d64: d65f03c0 ret
|
||
2d68: d503201f nop
|
||
2d6c: d503201f nop
|
||
|
||
0000000000002d70 <_read>:
|
||
|
||
// _read: 用于从文件描述符读取数据
|
||
ssize_t _read(int file, void* ptr, size_t len)
|
||
{
|
||
return 0; // 表示没有数据被读取
|
||
}
|
||
2d70: d2800000 mov x0, #0x0 // #0
|
||
2d74: d65f03c0 ret
|
||
2d78: d503201f nop
|
||
2d7c: d503201f nop
|
||
|
||
0000000000002d80 <_kill>:
|
||
|
||
// _kill: 发送信号给进程
|
||
int _kill(int pid, int sig)
|
||
{
|
||
return -1; // 表示失败,因为不支持信号
|
||
}
|
||
2d80: 12800000 mov w0, #0xffffffff // #-1
|
||
2d84: d65f03c0 ret
|
||
2d88: d503201f nop
|
||
2d8c: d503201f nop
|
||
|
||
0000000000002d90 <_getpid>:
|
||
|
||
// _getpid: 获取进程ID
|
||
int _getpid()
|
||
{
|
||
return 1; // 返回假设的进程ID
|
||
}
|
||
2d90: 52800020 mov w0, #0x1 // #1
|
||
2d94: d65f03c0 ret
|
||
2d98: d503201f nop
|
||
2d9c: d503201f nop
|
||
|
||
0000000000002da0 <__assert_func>:
|
||
2da0: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
2da4: d0000044 adrp x4, c000 <IpcTestNull+0x6e8>
|
||
2da8: aa0003e7 mov x7, x0
|
||
2dac: 910003fd mov x29, sp
|
||
2db0: f9409885 ldr x5, [x4, #304]
|
||
2db4: aa0203e6 mov x6, x2
|
||
2db8: 2a0103e4 mov w4, w1
|
||
2dbc: aa0303e2 mov x2, x3
|
||
2dc0: f9400ca0 ldr x0, [x5, #24]
|
||
2dc4: b4000106 cbz x6, 2de4 <__assert_func+0x44>
|
||
2dc8: b0000045 adrp x5, b000 <pow10.0+0x80>
|
||
2dcc: 9107e0a5 add x5, x5, #0x1f8
|
||
2dd0: aa0703e3 mov x3, x7
|
||
2dd4: b0000041 adrp x1, b000 <pow10.0+0x80>
|
||
2dd8: 91082021 add x1, x1, #0x208
|
||
2ddc: 94000049 bl 2f00 <fiprintf>
|
||
2de0: 94000bd8 bl 5d40 <abort>
|
||
2de4: 90000045 adrp x5, a000 <__swbuf_r+0xb0>
|
||
2de8: 913740a5 add x5, x5, #0xdd0
|
||
2dec: aa0503e6 mov x6, x5
|
||
2df0: 17fffff8 b 2dd0 <__assert_func+0x30>
|
||
2df4: d503201f nop
|
||
2df8: d503201f nop
|
||
2dfc: d503201f nop
|
||
|
||
0000000000002e00 <__assert>:
|
||
2e00: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
2e04: aa0203e3 mov x3, x2
|
||
2e08: d2800002 mov x2, #0x0 // #0
|
||
2e0c: 910003fd mov x29, sp
|
||
2e10: 97ffffe4 bl 2da0 <__assert_func>
|
||
2e14: d503201f nop
|
||
2e18: d503201f nop
|
||
2e1c: d503201f nop
|
||
|
||
0000000000002e20 <atexit>:
|
||
2e20: aa0003e1 mov x1, x0
|
||
2e24: d2800003 mov x3, #0x0 // #0
|
||
2e28: d2800002 mov x2, #0x0 // #0
|
||
2e2c: 52800000 mov w0, #0x0 // #0
|
||
2e30: 14000bcc b 5d60 <__register_exitproc>
|
||
2e34: d503201f nop
|
||
2e38: d503201f nop
|
||
2e3c: d503201f nop
|
||
|
||
0000000000002e40 <__libc_fini_array>:
|
||
2e40: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
2e44: b0000041 adrp x1, b000 <pow10.0+0x80>
|
||
2e48: b0000040 adrp x0, b000 <pow10.0+0x80>
|
||
2e4c: 910003fd mov x29, sp
|
||
2e50: a90153f3 stp x19, x20, [sp, #16]
|
||
2e54: f9411c33 ldr x19, [x1, #568]
|
||
2e58: f9412014 ldr x20, [x0, #576]
|
||
2e5c: cb140273 sub x19, x19, x20
|
||
2e60: 9343fe73 asr x19, x19, #3
|
||
2e64: b40000b3 cbz x19, 2e78 <__libc_fini_array+0x38>
|
||
2e68: d1000673 sub x19, x19, #0x1
|
||
2e6c: f8737a80 ldr x0, [x20, x19, lsl #3]
|
||
2e70: d63f0000 blr x0
|
||
2e74: b5ffffb3 cbnz x19, 2e68 <__libc_fini_array+0x28>
|
||
2e78: a94153f3 ldp x19, x20, [sp, #16]
|
||
2e7c: a8c27bfd ldp x29, x30, [sp], #32
|
||
2e80: 14001f9d b acf4 <_fini>
|
||
2e84: d503201f nop
|
||
2e88: d503201f nop
|
||
2e8c: d503201f nop
|
||
|
||
0000000000002e90 <_fiprintf_r>:
|
||
2e90: a9b07bfd stp x29, x30, [sp, #-256]!
|
||
2e94: 128004e9 mov w9, #0xffffffd8 // #-40
|
||
2e98: 12800fe8 mov w8, #0xffffff80 // #-128
|
||
2e9c: 910003fd mov x29, sp
|
||
2ea0: 910343ea add x10, sp, #0xd0
|
||
2ea4: 910403eb add x11, sp, #0x100
|
||
2ea8: a9032feb stp x11, x11, [sp, #48]
|
||
2eac: f90023ea str x10, [sp, #64]
|
||
2eb0: 290923e9 stp w9, w8, [sp, #72]
|
||
2eb4: a9432fea ldp x10, x11, [sp, #48]
|
||
2eb8: a9012fea stp x10, x11, [sp, #16]
|
||
2ebc: a94427e8 ldp x8, x9, [sp, #64]
|
||
2ec0: a90227e8 stp x8, x9, [sp, #32]
|
||
2ec4: 3d8017e0 str q0, [sp, #80]
|
||
2ec8: 3d801be1 str q1, [sp, #96]
|
||
2ecc: 3d801fe2 str q2, [sp, #112]
|
||
2ed0: 3d8023e3 str q3, [sp, #128]
|
||
2ed4: 3d8027e4 str q4, [sp, #144]
|
||
2ed8: 3d802be5 str q5, [sp, #160]
|
||
2edc: 3d802fe6 str q6, [sp, #176]
|
||
2ee0: 3d8033e7 str q7, [sp, #192]
|
||
2ee4: a90d93e3 stp x3, x4, [sp, #216]
|
||
2ee8: 910043e3 add x3, sp, #0x10
|
||
2eec: a90e9be5 stp x5, x6, [sp, #232]
|
||
2ef0: f9007fe7 str x7, [sp, #248]
|
||
2ef4: 940003c7 bl 3e10 <_vfiprintf_r>
|
||
2ef8: a8d07bfd ldp x29, x30, [sp], #256
|
||
2efc: d65f03c0 ret
|
||
|
||
0000000000002f00 <fiprintf>:
|
||
2f00: a9b07bfd stp x29, x30, [sp, #-256]!
|
||
2f04: d0000048 adrp x8, c000 <IpcTestNull+0x6e8>
|
||
2f08: aa0003eb mov x11, x0
|
||
2f0c: 910003fd mov x29, sp
|
||
2f10: 910343ec add x12, sp, #0xd0
|
||
2f14: 910403ea add x10, sp, #0x100
|
||
2f18: f9409900 ldr x0, [x8, #304]
|
||
2f1c: 128005e9 mov w9, #0xffffffd0 // #-48
|
||
2f20: 12800fe8 mov w8, #0xffffff80 // #-128
|
||
2f24: a9032bea stp x10, x10, [sp, #48]
|
||
2f28: aa0103ea mov x10, x1
|
||
2f2c: f90023ec str x12, [sp, #64]
|
||
2f30: aa0b03e1 mov x1, x11
|
||
2f34: 290923e9 stp w9, w8, [sp, #72]
|
||
2f38: a94337ec ldp x12, x13, [sp, #48]
|
||
2f3c: a90137ec stp x12, x13, [sp, #16]
|
||
2f40: a94427e8 ldp x8, x9, [sp, #64]
|
||
2f44: a90227e8 stp x8, x9, [sp, #32]
|
||
2f48: 3d8017e0 str q0, [sp, #80]
|
||
2f4c: 3d801be1 str q1, [sp, #96]
|
||
2f50: 3d801fe2 str q2, [sp, #112]
|
||
2f54: 3d8023e3 str q3, [sp, #128]
|
||
2f58: 3d8027e4 str q4, [sp, #144]
|
||
2f5c: 3d802be5 str q5, [sp, #160]
|
||
2f60: 3d802fe6 str q6, [sp, #176]
|
||
2f64: 3d8033e7 str q7, [sp, #192]
|
||
2f68: a90d0fe2 stp x2, x3, [sp, #208]
|
||
2f6c: 910043e3 add x3, sp, #0x10
|
||
2f70: aa0a03e2 mov x2, x10
|
||
2f74: a90e17e4 stp x4, x5, [sp, #224]
|
||
2f78: a90f1fe6 stp x6, x7, [sp, #240]
|
||
2f7c: 940003a5 bl 3e10 <_vfiprintf_r>
|
||
2f80: a8d07bfd ldp x29, x30, [sp], #256
|
||
2f84: d65f03c0 ret
|
||
2f88: d503201f nop
|
||
2f8c: d503201f nop
|
||
|
||
0000000000002f90 <__libc_init_array>:
|
||
2f90: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
2f94: b0000041 adrp x1, b000 <pow10.0+0x80>
|
||
2f98: b0000040 adrp x0, b000 <pow10.0+0x80>
|
||
2f9c: 910003fd mov x29, sp
|
||
2fa0: a90153f3 stp x19, x20, [sp, #16]
|
||
2fa4: f9412834 ldr x20, [x1, #592]
|
||
2fa8: f90013f5 str x21, [sp, #32]
|
||
2fac: f9412c15 ldr x21, [x0, #600]
|
||
2fb0: cb150294 sub x20, x20, x21
|
||
2fb4: 9343fe94 asr x20, x20, #3
|
||
2fb8: b40000f4 cbz x20, 2fd4 <__libc_init_array+0x44>
|
||
2fbc: d2800013 mov x19, #0x0 // #0
|
||
2fc0: f8737aa0 ldr x0, [x21, x19, lsl #3]
|
||
2fc4: 91000673 add x19, x19, #0x1
|
||
2fc8: d63f0000 blr x0
|
||
2fcc: eb13029f cmp x20, x19
|
||
2fd0: 54ffff81 b.ne 2fc0 <__libc_init_array+0x30> // b.any
|
||
2fd4: 940ff40b bl 400000 <_init>
|
||
2fd8: b0000041 adrp x1, b000 <pow10.0+0x80>
|
||
2fdc: b0000040 adrp x0, b000 <pow10.0+0x80>
|
||
2fe0: f9413034 ldr x20, [x1, #608]
|
||
2fe4: f9413415 ldr x21, [x0, #616]
|
||
2fe8: cb150294 sub x20, x20, x21
|
||
2fec: 9343fe94 asr x20, x20, #3
|
||
2ff0: b40000f4 cbz x20, 300c <__libc_init_array+0x7c>
|
||
2ff4: d2800013 mov x19, #0x0 // #0
|
||
2ff8: f8737aa0 ldr x0, [x21, x19, lsl #3]
|
||
2ffc: 91000673 add x19, x19, #0x1
|
||
3000: d63f0000 blr x0
|
||
3004: eb13029f cmp x20, x19
|
||
3008: 54ffff81 b.ne 2ff8 <__libc_init_array+0x68> // b.any
|
||
300c: a94153f3 ldp x19, x20, [sp, #16]
|
||
3010: f94013f5 ldr x21, [sp, #32]
|
||
3014: a8c37bfd ldp x29, x30, [sp], #48
|
||
3018: d65f03c0 ret
|
||
301c: d503201f nop
|
||
|
||
0000000000003020 <malloc>:
|
||
3020: b0000042 adrp x2, c000 <IpcTestNull+0x6e8>
|
||
3024: aa0003e1 mov x1, x0
|
||
3028: f9409840 ldr x0, [x2, #304]
|
||
302c: 14000005 b 3040 <_malloc_r>
|
||
|
||
0000000000003030 <free>:
|
||
3030: b0000042 adrp x2, c000 <IpcTestNull+0x6e8>
|
||
3034: aa0003e1 mov x1, x0
|
||
3038: f9409840 ldr x0, [x2, #304]
|
||
303c: 14000dd5 b 6790 <_free_r>
|
||
|
||
0000000000003040 <_malloc_r>:
|
||
3040: a9ba7bfd stp x29, x30, [sp, #-96]!
|
||
3044: 910003fd mov x29, sp
|
||
3048: a90153f3 stp x19, x20, [sp, #16]
|
||
304c: 91005c33 add x19, x1, #0x17
|
||
3050: a9025bf5 stp x21, x22, [sp, #32]
|
||
3054: aa0003f5 mov x21, x0
|
||
3058: a90363f7 stp x23, x24, [sp, #48]
|
||
305c: f100ba7f cmp x19, #0x2e
|
||
3060: 54000c88 b.hi 31f0 <_malloc_r+0x1b0> // b.pmore
|
||
3064: f100803f cmp x1, #0x20
|
||
3068: 54002068 b.hi 3474 <_malloc_r+0x434> // b.pmore
|
||
306c: 9400030d bl 3ca0 <__malloc_lock>
|
||
3070: d2800413 mov x19, #0x20 // #32
|
||
3074: d2800a00 mov x0, #0x50 // #80
|
||
3078: 52800085 mov w5, #0x4 // #4
|
||
307c: b0000054 adrp x20, c000 <IpcTestNull+0x6e8>
|
||
3080: 91220294 add x20, x20, #0x880
|
||
3084: 8b000280 add x0, x20, x0
|
||
3088: 110008a5 add w5, w5, #0x2
|
||
308c: d1004000 sub x0, x0, #0x10
|
||
3090: f9400c01 ldr x1, [x0, #24]
|
||
3094: eb00003f cmp x1, x0
|
||
3098: 54002181 b.ne 34c8 <_malloc_r+0x488> // b.any
|
||
309c: f9401284 ldr x4, [x20, #32]
|
||
30a0: 91004282 add x2, x20, #0x10
|
||
30a4: eb02009f cmp x4, x2
|
||
30a8: 54000f20 b.eq 328c <_malloc_r+0x24c> // b.none
|
||
30ac: f9400481 ldr x1, [x4, #8]
|
||
30b0: 927ef421 and x1, x1, #0xfffffffffffffffc
|
||
30b4: cb130023 sub x3, x1, x19
|
||
30b8: f1007c7f cmp x3, #0x1f
|
||
30bc: 54002d4c b.gt 3664 <_malloc_r+0x624>
|
||
30c0: a9020a82 stp x2, x2, [x20, #32]
|
||
30c4: b6f81f23 tbz x3, #63, 34a8 <_malloc_r+0x468>
|
||
30c8: f107fc3f cmp x1, #0x1ff
|
||
30cc: 54002428 b.hi 3550 <_malloc_r+0x510> // b.pmore
|
||
30d0: d343fc22 lsr x2, x1, #3
|
||
30d4: d2800021 mov x1, #0x1 // #1
|
||
30d8: 11000440 add w0, w2, #0x1
|
||
30dc: 13027c42 asr w2, w2, #2
|
||
30e0: 531f7800 lsl w0, w0, #1
|
||
30e4: f9400683 ldr x3, [x20, #8]
|
||
30e8: 8b20ce80 add x0, x20, w0, sxtw #3
|
||
30ec: 9ac22021 lsl x1, x1, x2
|
||
30f0: aa030021 orr x1, x1, x3
|
||
30f4: f85f0402 ldr x2, [x0], #-16
|
||
30f8: f9000681 str x1, [x20, #8]
|
||
30fc: a9010082 stp x2, x0, [x4, #16]
|
||
3100: f9000804 str x4, [x0, #16]
|
||
3104: f9000c44 str x4, [x2, #24]
|
||
3108: 13027ca2 asr w2, w5, #2
|
||
310c: d2800020 mov x0, #0x1 // #1
|
||
3110: 9ac22000 lsl x0, x0, x2
|
||
3114: eb01001f cmp x0, x1
|
||
3118: 54000c68 b.hi 32a4 <_malloc_r+0x264> // b.pmore
|
||
311c: ea01001f tst x0, x1
|
||
3120: 540000c1 b.ne 3138 <_malloc_r+0xf8> // b.any
|
||
3124: 121e74a5 and w5, w5, #0xfffffffc
|
||
3128: d37ff800 lsl x0, x0, #1
|
||
312c: 110010a5 add w5, w5, #0x4
|
||
3130: ea01001f tst x0, x1
|
||
3134: 54ffffa0 b.eq 3128 <_malloc_r+0xe8> // b.none
|
||
3138: 928001e9 mov x9, #0xfffffffffffffff0 // #-16
|
||
313c: 110004a7 add w7, w5, #0x1
|
||
3140: 2a0503e8 mov w8, w5
|
||
3144: 531f78e7 lsl w7, w7, #1
|
||
3148: 8b27cd27 add x7, x9, w7, sxtw #3
|
||
314c: 8b070287 add x7, x20, x7
|
||
3150: aa0703e4 mov x4, x7
|
||
3154: f9400c81 ldr x1, [x4, #24]
|
||
3158: 14000009 b 317c <_malloc_r+0x13c>
|
||
315c: f9400422 ldr x2, [x1, #8]
|
||
3160: aa0103e6 mov x6, x1
|
||
3164: f9400c21 ldr x1, [x1, #24]
|
||
3168: 927ef442 and x2, x2, #0xfffffffffffffffc
|
||
316c: cb130043 sub x3, x2, x19
|
||
3170: f1007c7f cmp x3, #0x1f
|
||
3174: 5400238c b.gt 35e4 <_malloc_r+0x5a4>
|
||
3178: b6f82563 tbz x3, #63, 3624 <_malloc_r+0x5e4>
|
||
317c: eb01009f cmp x4, x1
|
||
3180: 54fffee1 b.ne 315c <_malloc_r+0x11c> // b.any
|
||
3184: 7100f91f cmp w8, #0x3e
|
||
3188: 540029cd b.le 36c0 <_malloc_r+0x680>
|
||
318c: 91004084 add x4, x4, #0x10
|
||
3190: 11000508 add w8, w8, #0x1
|
||
3194: f240051f tst x8, #0x3
|
||
3198: 54fffde1 b.ne 3154 <_malloc_r+0x114> // b.any
|
||
319c: 14000005 b 31b0 <_malloc_r+0x170>
|
||
31a0: f85f04e1 ldr x1, [x7], #-16
|
||
31a4: 510004a5 sub w5, w5, #0x1
|
||
31a8: eb07003f cmp x1, x7
|
||
31ac: 540035a1 b.ne 3860 <_malloc_r+0x820> // b.any
|
||
31b0: f24004bf tst x5, #0x3
|
||
31b4: 54ffff61 b.ne 31a0 <_malloc_r+0x160> // b.any
|
||
31b8: f9400681 ldr x1, [x20, #8]
|
||
31bc: 8a200021 bic x1, x1, x0
|
||
31c0: f9000681 str x1, [x20, #8]
|
||
31c4: d37ff800 lsl x0, x0, #1
|
||
31c8: f100001f cmp x0, #0x0
|
||
31cc: fa411002 ccmp x0, x1, #0x2, ne // ne = any
|
||
31d0: 54000089 b.ls 31e0 <_malloc_r+0x1a0> // b.plast
|
||
31d4: 14000034 b 32a4 <_malloc_r+0x264>
|
||
31d8: d37ff800 lsl x0, x0, #1
|
||
31dc: 11001108 add w8, w8, #0x4
|
||
31e0: ea01001f tst x0, x1
|
||
31e4: 54ffffa0 b.eq 31d8 <_malloc_r+0x198> // b.none
|
||
31e8: 2a0803e5 mov w5, w8
|
||
31ec: 17ffffd4 b 313c <_malloc_r+0xfc>
|
||
31f0: 927cee73 and x19, x19, #0xfffffffffffffff0
|
||
31f4: b2407be2 mov x2, #0x7fffffff // #2147483647
|
||
31f8: eb02027f cmp x19, x2
|
||
31fc: fa539022 ccmp x1, x19, #0x2, ls // ls = plast
|
||
3200: 540013a8 b.hi 3474 <_malloc_r+0x434> // b.pmore
|
||
3204: 940002a7 bl 3ca0 <__malloc_lock>
|
||
3208: f107de7f cmp x19, #0x1f7
|
||
320c: 54002229 b.ls 3650 <_malloc_r+0x610> // b.plast
|
||
3210: d349fe60 lsr x0, x19, #9
|
||
3214: b4001420 cbz x0, 3498 <_malloc_r+0x458>
|
||
3218: f100101f cmp x0, #0x4
|
||
321c: 54001d08 b.hi 35bc <_malloc_r+0x57c> // b.pmore
|
||
3220: d346fe60 lsr x0, x19, #6
|
||
3224: 1100e405 add w5, w0, #0x39
|
||
3228: 1100e000 add w0, w0, #0x38
|
||
322c: 531f78a4 lsl w4, w5, #1
|
||
3230: 937d7c84 sbfiz x4, x4, #3, #32
|
||
3234: b0000054 adrp x20, c000 <IpcTestNull+0x6e8>
|
||
3238: 91220294 add x20, x20, #0x880
|
||
323c: 8b040284 add x4, x20, x4
|
||
3240: d1004084 sub x4, x4, #0x10
|
||
3244: f9400c81 ldr x1, [x4, #24]
|
||
3248: eb01009f cmp x4, x1
|
||
324c: 540000c1 b.ne 3264 <_malloc_r+0x224> // b.any
|
||
3250: 17ffff93 b 309c <_malloc_r+0x5c>
|
||
3254: b6f815e3 tbz x3, #63, 3510 <_malloc_r+0x4d0>
|
||
3258: f9400c21 ldr x1, [x1, #24]
|
||
325c: eb01009f cmp x4, x1
|
||
3260: 54fff1e0 b.eq 309c <_malloc_r+0x5c> // b.none
|
||
3264: f9400422 ldr x2, [x1, #8]
|
||
3268: 927ef442 and x2, x2, #0xfffffffffffffffc
|
||
326c: cb130043 sub x3, x2, x19
|
||
3270: f1007c7f cmp x3, #0x1f
|
||
3274: 54ffff0d b.le 3254 <_malloc_r+0x214>
|
||
3278: f9401284 ldr x4, [x20, #32]
|
||
327c: 91004282 add x2, x20, #0x10
|
||
3280: 2a0003e5 mov w5, w0
|
||
3284: eb02009f cmp x4, x2
|
||
3288: 54fff121 b.ne 30ac <_malloc_r+0x6c> // b.any
|
||
328c: f9400681 ldr x1, [x20, #8]
|
||
3290: 13027ca2 asr w2, w5, #2
|
||
3294: d2800020 mov x0, #0x1 // #1
|
||
3298: 9ac22000 lsl x0, x0, x2
|
||
329c: eb01001f cmp x0, x1
|
||
32a0: 54fff3e9 b.ls 311c <_malloc_r+0xdc> // b.plast
|
||
32a4: f9400a97 ldr x23, [x20, #16]
|
||
32a8: f94006f6 ldr x22, [x23, #8]
|
||
32ac: 927ef6d8 and x24, x22, #0xfffffffffffffffc
|
||
32b0: eb18027f cmp x19, x24
|
||
32b4: cb130300 sub x0, x24, x19
|
||
32b8: fa5f9804 ccmp x0, #0x1f, #0x4, ls // ls = plast
|
||
32bc: 54000bec b.gt 3438 <_malloc_r+0x3f8>
|
||
32c0: d0000041 adrp x1, d000 <__malloc_av_+0x780>
|
||
32c4: a90573fb stp x27, x28, [sp, #80]
|
||
32c8: d000005b adrp x27, d000 <__malloc_av_+0x780>
|
||
32cc: f9419021 ldr x1, [x1, #800]
|
||
32d0: d28203e3 mov x3, #0x101f // #4127
|
||
32d4: f9404b62 ldr x2, [x27, #144]
|
||
32d8: 8b010261 add x1, x19, x1
|
||
32dc: 8b030036 add x22, x1, x3
|
||
32e0: 91008021 add x1, x1, #0x20
|
||
32e4: b100045f cmn x2, #0x1
|
||
32e8: 9274ced6 and x22, x22, #0xfffffffffffff000
|
||
32ec: 9a8112d6 csel x22, x22, x1, ne // ne = any
|
||
32f0: aa1503e0 mov x0, x21
|
||
32f4: aa1603e1 mov x1, x22
|
||
32f8: a9046bf9 stp x25, x26, [sp, #64]
|
||
32fc: 94000271 bl 3cc0 <_sbrk_r>
|
||
3300: 8b1802fa add x26, x23, x24
|
||
3304: aa0003f9 mov x25, x0
|
||
3308: b100041f cmn x0, #0x1
|
||
330c: 54001f20 b.eq 36f0 <_malloc_r+0x6b0> // b.none
|
||
3310: eb00035f cmp x26, x0
|
||
3314: fa5482e4 ccmp x23, x20, #0x4, hi // hi = pmore
|
||
3318: 54001ec1 b.ne 36f0 <_malloc_r+0x6b0> // b.any
|
||
331c: d000005c adrp x28, d000 <__malloc_av_+0x780>
|
||
3320: b942eb81 ldr w1, [x28, #744]
|
||
3324: 0b160021 add w1, w1, w22
|
||
3328: b902eb81 str w1, [x28, #744]
|
||
332c: eb00035f cmp x26, x0
|
||
3330: 54001ce0 b.eq 36cc <_malloc_r+0x68c> // b.none
|
||
3334: f9404b60 ldr x0, [x27, #144]
|
||
3338: b100041f cmn x0, #0x1
|
||
333c: 54001d60 b.eq 36e8 <_malloc_r+0x6a8> // b.none
|
||
3340: cb1a033a sub x26, x25, x26
|
||
3344: 0b1a0021 add w1, w1, w26
|
||
3348: b902eb81 str w1, [x28, #744]
|
||
334c: f2400f3a ands x26, x25, #0xf
|
||
3350: 54001e40 b.eq 3718 <_malloc_r+0x6d8> // b.none
|
||
3354: cb1a0339 sub x25, x25, x26
|
||
3358: d2820201 mov x1, #0x1010 // #4112
|
||
335c: 91004339 add x25, x25, #0x10
|
||
3360: cb1a0021 sub x1, x1, x26
|
||
3364: 8b16033b add x27, x25, x22
|
||
3368: aa1503e0 mov x0, x21
|
||
336c: cb1b0036 sub x22, x1, x27
|
||
3370: 92402ed6 and x22, x22, #0xfff
|
||
3374: aa1603e1 mov x1, x22
|
||
3378: 94000252 bl 3cc0 <_sbrk_r>
|
||
337c: b100041f cmn x0, #0x1
|
||
3380: 54002480 b.eq 3810 <_malloc_r+0x7d0> // b.none
|
||
3384: cb190000 sub x0, x0, x25
|
||
3388: 2a1603e2 mov w2, w22
|
||
338c: 8b160016 add x22, x0, x22
|
||
3390: b942eb81 ldr w1, [x28, #744]
|
||
3394: b24002d6 orr x22, x22, #0x1
|
||
3398: f9000a99 str x25, [x20, #16]
|
||
339c: 0b010041 add w1, w2, w1
|
||
33a0: b902eb81 str w1, [x28, #744]
|
||
33a4: f9000736 str x22, [x25, #8]
|
||
33a8: eb1402ff cmp x23, x20
|
||
33ac: 54002000 b.eq 37ac <_malloc_r+0x76c> // b.none
|
||
33b0: f1007f1f cmp x24, #0x1f
|
||
33b4: 54001cc9 b.ls 374c <_malloc_r+0x70c> // b.plast
|
||
33b8: d1006300 sub x0, x24, #0x18
|
||
33bc: d2800124 mov x4, #0x9 // #9
|
||
33c0: f94006e2 ldr x2, [x23, #8]
|
||
33c4: 927cec00 and x0, x0, #0xfffffffffffffff0
|
||
33c8: 8b0002e3 add x3, x23, x0
|
||
33cc: 92400042 and x2, x2, #0x1
|
||
33d0: aa000042 orr x2, x2, x0
|
||
33d4: f90006e2 str x2, [x23, #8]
|
||
33d8: f8008c64 str x4, [x3, #8]!
|
||
33dc: f9000464 str x4, [x3, #8]
|
||
33e0: f1007c1f cmp x0, #0x1f
|
||
33e4: 54002088 b.hi 37f4 <_malloc_r+0x7b4> // b.pmore
|
||
33e8: f9400736 ldr x22, [x25, #8]
|
||
33ec: aa1903f7 mov x23, x25
|
||
33f0: d0000040 adrp x0, d000 <__malloc_av_+0x780>
|
||
33f4: 93407c21 sxtw x1, w1
|
||
33f8: f9418802 ldr x2, [x0, #784]
|
||
33fc: eb02003f cmp x1, x2
|
||
3400: 54000049 b.ls 3408 <_malloc_r+0x3c8> // b.plast
|
||
3404: f9018801 str x1, [x0, #784]
|
||
3408: d0000040 adrp x0, d000 <__malloc_av_+0x780>
|
||
340c: f9418c02 ldr x2, [x0, #792]
|
||
3410: eb02003f cmp x1, x2
|
||
3414: 54000049 b.ls 341c <_malloc_r+0x3dc> // b.plast
|
||
3418: f9018c01 str x1, [x0, #792]
|
||
341c: 927ef6c0 and x0, x22, #0xfffffffffffffffc
|
||
3420: eb00027f cmp x19, x0
|
||
3424: cb130000 sub x0, x0, x19
|
||
3428: fa5f9804 ccmp x0, #0x1f, #0x4, ls // ls = plast
|
||
342c: 5400194d b.le 3754 <_malloc_r+0x714>
|
||
3430: a9446bf9 ldp x25, x26, [sp, #64]
|
||
3434: a94573fb ldp x27, x28, [sp, #80]
|
||
3438: 8b1302e2 add x2, x23, x19
|
||
343c: b2400273 orr x19, x19, #0x1
|
||
3440: f90006f3 str x19, [x23, #8]
|
||
3444: b2400001 orr x1, x0, #0x1
|
||
3448: f9000a82 str x2, [x20, #16]
|
||
344c: f9000441 str x1, [x2, #8]
|
||
3450: aa1503e0 mov x0, x21
|
||
3454: 910042f7 add x23, x23, #0x10
|
||
3458: 94000216 bl 3cb0 <__malloc_unlock>
|
||
345c: aa1703e0 mov x0, x23
|
||
3460: a94153f3 ldp x19, x20, [sp, #16]
|
||
3464: a9425bf5 ldp x21, x22, [sp, #32]
|
||
3468: a94363f7 ldp x23, x24, [sp, #48]
|
||
346c: a8c67bfd ldp x29, x30, [sp], #96
|
||
3470: d65f03c0 ret
|
||
3474: 52800180 mov w0, #0xc // #12
|
||
3478: d2800017 mov x23, #0x0 // #0
|
||
347c: b90002a0 str w0, [x21]
|
||
3480: aa1703e0 mov x0, x23
|
||
3484: a94153f3 ldp x19, x20, [sp, #16]
|
||
3488: a9425bf5 ldp x21, x22, [sp, #32]
|
||
348c: a94363f7 ldp x23, x24, [sp, #48]
|
||
3490: a8c67bfd ldp x29, x30, [sp], #96
|
||
3494: d65f03c0 ret
|
||
3498: d2808004 mov x4, #0x400 // #1024
|
||
349c: 52800805 mov w5, #0x40 // #64
|
||
34a0: 528007e0 mov w0, #0x3f // #63
|
||
34a4: 17ffff64 b 3234 <_malloc_r+0x1f4>
|
||
34a8: 8b010081 add x1, x4, x1
|
||
34ac: aa1503e0 mov x0, x21
|
||
34b0: 91004097 add x23, x4, #0x10
|
||
34b4: f9400422 ldr x2, [x1, #8]
|
||
34b8: b2400042 orr x2, x2, #0x1
|
||
34bc: f9000422 str x2, [x1, #8]
|
||
34c0: 940001fc bl 3cb0 <__malloc_unlock>
|
||
34c4: 17ffffef b 3480 <_malloc_r+0x440>
|
||
34c8: a9409022 ldp x2, x4, [x1, #8]
|
||
34cc: 91004037 add x23, x1, #0x10
|
||
34d0: f9400c23 ldr x3, [x1, #24]
|
||
34d4: aa1503e0 mov x0, x21
|
||
34d8: 927ef442 and x2, x2, #0xfffffffffffffffc
|
||
34dc: 8b020022 add x2, x1, x2
|
||
34e0: f9400441 ldr x1, [x2, #8]
|
||
34e4: f9000c83 str x3, [x4, #24]
|
||
34e8: f9000864 str x4, [x3, #16]
|
||
34ec: b2400021 orr x1, x1, #0x1
|
||
34f0: f9000441 str x1, [x2, #8]
|
||
34f4: 940001ef bl 3cb0 <__malloc_unlock>
|
||
34f8: aa1703e0 mov x0, x23
|
||
34fc: a94153f3 ldp x19, x20, [sp, #16]
|
||
3500: a9425bf5 ldp x21, x22, [sp, #32]
|
||
3504: a94363f7 ldp x23, x24, [sp, #48]
|
||
3508: a8c67bfd ldp x29, x30, [sp], #96
|
||
350c: d65f03c0 ret
|
||
3510: 8b020022 add x2, x1, x2
|
||
3514: 91004037 add x23, x1, #0x10
|
||
3518: a9410c24 ldp x4, x3, [x1, #16]
|
||
351c: aa1503e0 mov x0, x21
|
||
3520: f9400441 ldr x1, [x2, #8]
|
||
3524: f9000c83 str x3, [x4, #24]
|
||
3528: b2400021 orr x1, x1, #0x1
|
||
352c: f9000864 str x4, [x3, #16]
|
||
3530: f9000441 str x1, [x2, #8]
|
||
3534: 940001df bl 3cb0 <__malloc_unlock>
|
||
3538: aa1703e0 mov x0, x23
|
||
353c: a94153f3 ldp x19, x20, [sp, #16]
|
||
3540: a9425bf5 ldp x21, x22, [sp, #32]
|
||
3544: a94363f7 ldp x23, x24, [sp, #48]
|
||
3548: a8c67bfd ldp x29, x30, [sp], #96
|
||
354c: d65f03c0 ret
|
||
3550: d349fc20 lsr x0, x1, #9
|
||
3554: f127fc3f cmp x1, #0x9ff
|
||
3558: 540009e9 b.ls 3694 <_malloc_r+0x654> // b.plast
|
||
355c: f100501f cmp x0, #0x14
|
||
3560: 54001068 b.hi 376c <_malloc_r+0x72c> // b.pmore
|
||
3564: 11017003 add w3, w0, #0x5c
|
||
3568: 11016c02 add w2, w0, #0x5b
|
||
356c: 531f7863 lsl w3, w3, #1
|
||
3570: 937d7c63 sbfiz x3, x3, #3, #32
|
||
3574: 8b030283 add x3, x20, x3
|
||
3578: f85f0460 ldr x0, [x3], #-16
|
||
357c: eb00007f cmp x3, x0
|
||
3580: 54000be0 b.eq 36fc <_malloc_r+0x6bc> // b.none
|
||
3584: d503201f nop
|
||
3588: f9400402 ldr x2, [x0, #8]
|
||
358c: 927ef442 and x2, x2, #0xfffffffffffffffc
|
||
3590: eb01005f cmp x2, x1
|
||
3594: 54000089 b.ls 35a4 <_malloc_r+0x564> // b.plast
|
||
3598: f9400800 ldr x0, [x0, #16]
|
||
359c: eb00007f cmp x3, x0
|
||
35a0: 54ffff41 b.ne 3588 <_malloc_r+0x548> // b.any
|
||
35a4: f9400681 ldr x1, [x20, #8]
|
||
35a8: f9400c03 ldr x3, [x0, #24]
|
||
35ac: a9010c80 stp x0, x3, [x4, #16]
|
||
35b0: f9000864 str x4, [x3, #16]
|
||
35b4: f9000c04 str x4, [x0, #24]
|
||
35b8: 17fffed4 b 3108 <_malloc_r+0xc8>
|
||
35bc: f100501f cmp x0, #0x14
|
||
35c0: 54000769 b.ls 36ac <_malloc_r+0x66c> // b.plast
|
||
35c4: f101501f cmp x0, #0x54
|
||
35c8: 54000e28 b.hi 378c <_malloc_r+0x74c> // b.pmore
|
||
35cc: d34cfe60 lsr x0, x19, #12
|
||
35d0: 1101bc05 add w5, w0, #0x6f
|
||
35d4: 1101b800 add w0, w0, #0x6e
|
||
35d8: 531f78a4 lsl w4, w5, #1
|
||
35dc: 937d7c84 sbfiz x4, x4, #3, #32
|
||
35e0: 17ffff15 b 3234 <_malloc_r+0x1f4>
|
||
35e4: f94008c7 ldr x7, [x6, #16]
|
||
35e8: b2400260 orr x0, x19, #0x1
|
||
35ec: f90004c0 str x0, [x6, #8]
|
||
35f0: 8b1300c4 add x4, x6, x19
|
||
35f4: 91004285 add x5, x20, #0x10
|
||
35f8: b2400068 orr x8, x3, #0x1
|
||
35fc: f9000ce1 str x1, [x7, #24]
|
||
3600: 910040d7 add x23, x6, #0x10
|
||
3604: f9000827 str x7, [x1, #16]
|
||
3608: aa1503e0 mov x0, x21
|
||
360c: a9021284 stp x4, x4, [x20, #32]
|
||
3610: a9009488 stp x8, x5, [x4, #8]
|
||
3614: f9000c85 str x5, [x4, #24]
|
||
3618: f82268c3 str x3, [x6, x2]
|
||
361c: 940001a5 bl 3cb0 <__malloc_unlock>
|
||
3620: 17ffff98 b 3480 <_malloc_r+0x440>
|
||
3624: 8b0200c2 add x2, x6, x2
|
||
3628: aa0603f7 mov x23, x6
|
||
362c: aa1503e0 mov x0, x21
|
||
3630: f9400443 ldr x3, [x2, #8]
|
||
3634: f8410ee4 ldr x4, [x23, #16]!
|
||
3638: b2400063 orr x3, x3, #0x1
|
||
363c: f9000443 str x3, [x2, #8]
|
||
3640: f9000c81 str x1, [x4, #24]
|
||
3644: f9000824 str x4, [x1, #16]
|
||
3648: 9400019a bl 3cb0 <__malloc_unlock>
|
||
364c: 17ffff8d b 3480 <_malloc_r+0x440>
|
||
3650: d343fe65 lsr x5, x19, #3
|
||
3654: 110004a0 add w0, w5, #0x1
|
||
3658: 531f7800 lsl w0, w0, #1
|
||
365c: 937d7c00 sbfiz x0, x0, #3, #32
|
||
3660: 17fffe87 b 307c <_malloc_r+0x3c>
|
||
3664: 8b130085 add x5, x4, x19
|
||
3668: b2400273 orr x19, x19, #0x1
|
||
366c: f9000493 str x19, [x4, #8]
|
||
3670: b2400066 orr x6, x3, #0x1
|
||
3674: a9021685 stp x5, x5, [x20, #32]
|
||
3678: aa1503e0 mov x0, x21
|
||
367c: 91004097 add x23, x4, #0x10
|
||
3680: a90088a6 stp x6, x2, [x5, #8]
|
||
3684: f9000ca2 str x2, [x5, #24]
|
||
3688: f8216883 str x3, [x4, x1]
|
||
368c: 94000189 bl 3cb0 <__malloc_unlock>
|
||
3690: 17ffff7c b 3480 <_malloc_r+0x440>
|
||
3694: d346fc20 lsr x0, x1, #6
|
||
3698: 1100e403 add w3, w0, #0x39
|
||
369c: 1100e002 add w2, w0, #0x38
|
||
36a0: 531f7863 lsl w3, w3, #1
|
||
36a4: 937d7c63 sbfiz x3, x3, #3, #32
|
||
36a8: 17ffffb3 b 3574 <_malloc_r+0x534>
|
||
36ac: 11017005 add w5, w0, #0x5c
|
||
36b0: 11016c00 add w0, w0, #0x5b
|
||
36b4: 531f78a4 lsl w4, w5, #1
|
||
36b8: 937d7c84 sbfiz x4, x4, #3, #32
|
||
36bc: 17fffede b 3234 <_malloc_r+0x1f4>
|
||
36c0: 11000508 add w8, w8, #0x1
|
||
36c4: 91008084 add x4, x4, #0x20
|
||
36c8: 17fffeb2 b 3190 <_malloc_r+0x150>
|
||
36cc: f2402f5f tst x26, #0xfff
|
||
36d0: 54ffe321 b.ne 3334 <_malloc_r+0x2f4> // b.any
|
||
36d4: f9400a97 ldr x23, [x20, #16]
|
||
36d8: 8b160316 add x22, x24, x22
|
||
36dc: b24002d6 orr x22, x22, #0x1
|
||
36e0: f90006f6 str x22, [x23, #8]
|
||
36e4: 17ffff43 b 33f0 <_malloc_r+0x3b0>
|
||
36e8: f9004b79 str x25, [x27, #144]
|
||
36ec: 17ffff18 b 334c <_malloc_r+0x30c>
|
||
36f0: f9400a97 ldr x23, [x20, #16]
|
||
36f4: f94006f6 ldr x22, [x23, #8]
|
||
36f8: 17ffff49 b 341c <_malloc_r+0x3dc>
|
||
36fc: f9400686 ldr x6, [x20, #8]
|
||
3700: 13027c42 asr w2, w2, #2
|
||
3704: d2800021 mov x1, #0x1 // #1
|
||
3708: 9ac22021 lsl x1, x1, x2
|
||
370c: aa060021 orr x1, x1, x6
|
||
3710: f9000681 str x1, [x20, #8]
|
||
3714: 17ffffa6 b 35ac <_malloc_r+0x56c>
|
||
3718: 8b16033a add x26, x25, x22
|
||
371c: aa1503e0 mov x0, x21
|
||
3720: cb1a03fa neg x26, x26
|
||
3724: 92402f5a and x26, x26, #0xfff
|
||
3728: aa1a03e1 mov x1, x26
|
||
372c: 94000165 bl 3cc0 <_sbrk_r>
|
||
3730: 52800002 mov w2, #0x0 // #0
|
||
3734: b100041f cmn x0, #0x1
|
||
3738: 54ffe2c0 b.eq 3390 <_malloc_r+0x350> // b.none
|
||
373c: cb190000 sub x0, x0, x25
|
||
3740: 2a1a03e2 mov w2, w26
|
||
3744: 8b1a0016 add x22, x0, x26
|
||
3748: 17ffff12 b 3390 <_malloc_r+0x350>
|
||
374c: d2800020 mov x0, #0x1 // #1
|
||
3750: f9000720 str x0, [x25, #8]
|
||
3754: aa1503e0 mov x0, x21
|
||
3758: d2800017 mov x23, #0x0 // #0
|
||
375c: 94000155 bl 3cb0 <__malloc_unlock>
|
||
3760: a9446bf9 ldp x25, x26, [sp, #64]
|
||
3764: a94573fb ldp x27, x28, [sp, #80]
|
||
3768: 17ffff46 b 3480 <_malloc_r+0x440>
|
||
376c: f101501f cmp x0, #0x54
|
||
3770: 54000228 b.hi 37b4 <_malloc_r+0x774> // b.pmore
|
||
3774: d34cfc20 lsr x0, x1, #12
|
||
3778: 1101bc03 add w3, w0, #0x6f
|
||
377c: 1101b802 add w2, w0, #0x6e
|
||
3780: 531f7863 lsl w3, w3, #1
|
||
3784: 937d7c63 sbfiz x3, x3, #3, #32
|
||
3788: 17ffff7b b 3574 <_malloc_r+0x534>
|
||
378c: f105501f cmp x0, #0x154
|
||
3790: 54000228 b.hi 37d4 <_malloc_r+0x794> // b.pmore
|
||
3794: d34ffe60 lsr x0, x19, #15
|
||
3798: 1101e005 add w5, w0, #0x78
|
||
379c: 1101dc00 add w0, w0, #0x77
|
||
37a0: 531f78a4 lsl w4, w5, #1
|
||
37a4: 937d7c84 sbfiz x4, x4, #3, #32
|
||
37a8: 17fffea3 b 3234 <_malloc_r+0x1f4>
|
||
37ac: aa1903f7 mov x23, x25
|
||
37b0: 17ffff10 b 33f0 <_malloc_r+0x3b0>
|
||
37b4: f105501f cmp x0, #0x154
|
||
37b8: 54000368 b.hi 3824 <_malloc_r+0x7e4> // b.pmore
|
||
37bc: d34ffc20 lsr x0, x1, #15
|
||
37c0: 1101e003 add w3, w0, #0x78
|
||
37c4: 1101dc02 add w2, w0, #0x77
|
||
37c8: 531f7863 lsl w3, w3, #1
|
||
37cc: 937d7c63 sbfiz x3, x3, #3, #32
|
||
37d0: 17ffff69 b 3574 <_malloc_r+0x534>
|
||
37d4: f115501f cmp x0, #0x554
|
||
37d8: 54000368 b.hi 3844 <_malloc_r+0x804> // b.pmore
|
||
37dc: d352fe60 lsr x0, x19, #18
|
||
37e0: 1101f405 add w5, w0, #0x7d
|
||
37e4: 1101f000 add w0, w0, #0x7c
|
||
37e8: 531f78a4 lsl w4, w5, #1
|
||
37ec: 937d7c84 sbfiz x4, x4, #3, #32
|
||
37f0: 17fffe91 b 3234 <_malloc_r+0x1f4>
|
||
37f4: 910042e1 add x1, x23, #0x10
|
||
37f8: aa1503e0 mov x0, x21
|
||
37fc: 94000be5 bl 6790 <_free_r>
|
||
3800: f9400a97 ldr x23, [x20, #16]
|
||
3804: b942eb81 ldr w1, [x28, #744]
|
||
3808: f94006f6 ldr x22, [x23, #8]
|
||
380c: 17fffef9 b 33f0 <_malloc_r+0x3b0>
|
||
3810: d100435a sub x26, x26, #0x10
|
||
3814: 52800002 mov w2, #0x0 // #0
|
||
3818: 8b1a0376 add x22, x27, x26
|
||
381c: cb1902d6 sub x22, x22, x25
|
||
3820: 17fffedc b 3390 <_malloc_r+0x350>
|
||
3824: f115501f cmp x0, #0x554
|
||
3828: 54000168 b.hi 3854 <_malloc_r+0x814> // b.pmore
|
||
382c: d352fc20 lsr x0, x1, #18
|
||
3830: 1101f403 add w3, w0, #0x7d
|
||
3834: 1101f002 add w2, w0, #0x7c
|
||
3838: 531f7863 lsl w3, w3, #1
|
||
383c: 937d7c63 sbfiz x3, x3, #3, #32
|
||
3840: 17ffff4d b 3574 <_malloc_r+0x534>
|
||
3844: d280fe04 mov x4, #0x7f0 // #2032
|
||
3848: 52800fe5 mov w5, #0x7f // #127
|
||
384c: 52800fc0 mov w0, #0x7e // #126
|
||
3850: 17fffe79 b 3234 <_malloc_r+0x1f4>
|
||
3854: d280fe03 mov x3, #0x7f0 // #2032
|
||
3858: 52800fc2 mov w2, #0x7e // #126
|
||
385c: 17ffff46 b 3574 <_malloc_r+0x534>
|
||
3860: f9400681 ldr x1, [x20, #8]
|
||
3864: 17fffe58 b 31c4 <_malloc_r+0x184>
|
||
3868: d503201f nop
|
||
386c: d503201f nop
|
||
3870: d503201f nop
|
||
3874: d503201f nop
|
||
3878: d503201f nop
|
||
387c: d503201f nop
|
||
|
||
0000000000003880 <memcpy>:
|
||
3880: f9800020 prfm pldl1keep, [x1]
|
||
3884: 8b020024 add x4, x1, x2
|
||
3888: 8b020005 add x5, x0, x2
|
||
388c: f100405f cmp x2, #0x10
|
||
3890: 54000209 b.ls 38d0 <memcpy+0x50> // b.plast
|
||
3894: f101805f cmp x2, #0x60
|
||
3898: 54000648 b.hi 3960 <memcpy+0xe0> // b.pmore
|
||
389c: d1000449 sub x9, x2, #0x1
|
||
38a0: a9401c26 ldp x6, x7, [x1]
|
||
38a4: 37300469 tbnz w9, #6, 3930 <memcpy+0xb0>
|
||
38a8: a97f348c ldp x12, x13, [x4, #-16]
|
||
38ac: 362800a9 tbz w9, #5, 38c0 <memcpy+0x40>
|
||
38b0: a9412428 ldp x8, x9, [x1, #16]
|
||
38b4: a97e2c8a ldp x10, x11, [x4, #-32]
|
||
38b8: a9012408 stp x8, x9, [x0, #16]
|
||
38bc: a93e2caa stp x10, x11, [x5, #-32]
|
||
38c0: a9001c06 stp x6, x7, [x0]
|
||
38c4: a93f34ac stp x12, x13, [x5, #-16]
|
||
38c8: d65f03c0 ret
|
||
38cc: d503201f nop
|
||
38d0: f100205f cmp x2, #0x8
|
||
38d4: 540000e3 b.cc 38f0 <memcpy+0x70> // b.lo, b.ul, b.last
|
||
38d8: f9400026 ldr x6, [x1]
|
||
38dc: f85f8087 ldur x7, [x4, #-8]
|
||
38e0: f9000006 str x6, [x0]
|
||
38e4: f81f80a7 stur x7, [x5, #-8]
|
||
38e8: d65f03c0 ret
|
||
38ec: d503201f nop
|
||
38f0: 361000c2 tbz w2, #2, 3908 <memcpy+0x88>
|
||
38f4: b9400026 ldr w6, [x1]
|
||
38f8: b85fc087 ldur w7, [x4, #-4]
|
||
38fc: b9000006 str w6, [x0]
|
||
3900: b81fc0a7 stur w7, [x5, #-4]
|
||
3904: d65f03c0 ret
|
||
3908: b4000102 cbz x2, 3928 <memcpy+0xa8>
|
||
390c: d341fc49 lsr x9, x2, #1
|
||
3910: 39400026 ldrb w6, [x1]
|
||
3914: 385ff087 ldurb w7, [x4, #-1]
|
||
3918: 38696828 ldrb w8, [x1, x9]
|
||
391c: 39000006 strb w6, [x0]
|
||
3920: 38296808 strb w8, [x0, x9]
|
||
3924: 381ff0a7 sturb w7, [x5, #-1]
|
||
3928: d65f03c0 ret
|
||
392c: d503201f nop
|
||
3930: a9412428 ldp x8, x9, [x1, #16]
|
||
3934: a9422c2a ldp x10, x11, [x1, #32]
|
||
3938: a943342c ldp x12, x13, [x1, #48]
|
||
393c: a97e0881 ldp x1, x2, [x4, #-32]
|
||
3940: a97f0c84 ldp x4, x3, [x4, #-16]
|
||
3944: a9001c06 stp x6, x7, [x0]
|
||
3948: a9012408 stp x8, x9, [x0, #16]
|
||
394c: a9022c0a stp x10, x11, [x0, #32]
|
||
3950: a903340c stp x12, x13, [x0, #48]
|
||
3954: a93e08a1 stp x1, x2, [x5, #-32]
|
||
3958: a93f0ca4 stp x4, x3, [x5, #-16]
|
||
395c: d65f03c0 ret
|
||
3960: 92400c09 and x9, x0, #0xf
|
||
3964: 927cec03 and x3, x0, #0xfffffffffffffff0
|
||
3968: a940342c ldp x12, x13, [x1]
|
||
396c: cb090021 sub x1, x1, x9
|
||
3970: 8b090042 add x2, x2, x9
|
||
3974: a9411c26 ldp x6, x7, [x1, #16]
|
||
3978: a900340c stp x12, x13, [x0]
|
||
397c: a9422428 ldp x8, x9, [x1, #32]
|
||
3980: a9432c2a ldp x10, x11, [x1, #48]
|
||
3984: a9c4342c ldp x12, x13, [x1, #64]!
|
||
3988: f1024042 subs x2, x2, #0x90
|
||
398c: 54000169 b.ls 39b8 <memcpy+0x138> // b.plast
|
||
3990: a9011c66 stp x6, x7, [x3, #16]
|
||
3994: a9411c26 ldp x6, x7, [x1, #16]
|
||
3998: a9022468 stp x8, x9, [x3, #32]
|
||
399c: a9422428 ldp x8, x9, [x1, #32]
|
||
39a0: a9032c6a stp x10, x11, [x3, #48]
|
||
39a4: a9432c2a ldp x10, x11, [x1, #48]
|
||
39a8: a984346c stp x12, x13, [x3, #64]!
|
||
39ac: a9c4342c ldp x12, x13, [x1, #64]!
|
||
39b0: f1010042 subs x2, x2, #0x40
|
||
39b4: 54fffee8 b.hi 3990 <memcpy+0x110> // b.pmore
|
||
39b8: a97c0881 ldp x1, x2, [x4, #-64]
|
||
39bc: a9011c66 stp x6, x7, [x3, #16]
|
||
39c0: a97d1c86 ldp x6, x7, [x4, #-48]
|
||
39c4: a9022468 stp x8, x9, [x3, #32]
|
||
39c8: a97e2488 ldp x8, x9, [x4, #-32]
|
||
39cc: a9032c6a stp x10, x11, [x3, #48]
|
||
39d0: a97f2c8a ldp x10, x11, [x4, #-16]
|
||
39d4: a904346c stp x12, x13, [x3, #64]
|
||
39d8: a93c08a1 stp x1, x2, [x5, #-64]
|
||
39dc: a93d1ca6 stp x6, x7, [x5, #-48]
|
||
39e0: a93e24a8 stp x8, x9, [x5, #-32]
|
||
39e4: a93f2caa stp x10, x11, [x5, #-16]
|
||
39e8: d65f03c0 ret
|
||
39ec: d503201f nop
|
||
39f0: d503201f nop
|
||
39f4: d503201f nop
|
||
39f8: d503201f nop
|
||
39fc: d503201f nop
|
||
|
||
0000000000003a00 <memmove>:
|
||
3a00: cb010005 sub x5, x0, x1
|
||
3a04: f101805f cmp x2, #0x60
|
||
3a08: fa4280a2 ccmp x5, x2, #0x2, hi // hi = pmore
|
||
3a0c: 54fff3a2 b.cs 3880 <memcpy> // b.hs, b.nlast
|
||
3a10: b40004c5 cbz x5, 3aa8 <memmove+0xa8>
|
||
3a14: 8b020004 add x4, x0, x2
|
||
3a18: 8b020023 add x3, x1, x2
|
||
3a1c: 92400c85 and x5, x4, #0xf
|
||
3a20: a97f346c ldp x12, x13, [x3, #-16]
|
||
3a24: cb050063 sub x3, x3, x5
|
||
3a28: cb050042 sub x2, x2, x5
|
||
3a2c: a97f1c66 ldp x6, x7, [x3, #-16]
|
||
3a30: a93f348c stp x12, x13, [x4, #-16]
|
||
3a34: a97e2468 ldp x8, x9, [x3, #-32]
|
||
3a38: a97d2c6a ldp x10, x11, [x3, #-48]
|
||
3a3c: a9fc346c ldp x12, x13, [x3, #-64]!
|
||
3a40: cb050084 sub x4, x4, x5
|
||
3a44: f1020042 subs x2, x2, #0x80
|
||
3a48: 54000189 b.ls 3a78 <memmove+0x78> // b.plast
|
||
3a4c: d503201f nop
|
||
3a50: a93f1c86 stp x6, x7, [x4, #-16]
|
||
3a54: a97f1c66 ldp x6, x7, [x3, #-16]
|
||
3a58: a93e2488 stp x8, x9, [x4, #-32]
|
||
3a5c: a97e2468 ldp x8, x9, [x3, #-32]
|
||
3a60: a93d2c8a stp x10, x11, [x4, #-48]
|
||
3a64: a97d2c6a ldp x10, x11, [x3, #-48]
|
||
3a68: a9bc348c stp x12, x13, [x4, #-64]!
|
||
3a6c: a9fc346c ldp x12, x13, [x3, #-64]!
|
||
3a70: f1010042 subs x2, x2, #0x40
|
||
3a74: 54fffee8 b.hi 3a50 <memmove+0x50> // b.pmore
|
||
3a78: a9431422 ldp x2, x5, [x1, #48]
|
||
3a7c: a93f1c86 stp x6, x7, [x4, #-16]
|
||
3a80: a9421c26 ldp x6, x7, [x1, #32]
|
||
3a84: a93e2488 stp x8, x9, [x4, #-32]
|
||
3a88: a9412428 ldp x8, x9, [x1, #16]
|
||
3a8c: a93d2c8a stp x10, x11, [x4, #-48]
|
||
3a90: a9402c2a ldp x10, x11, [x1]
|
||
3a94: a93c348c stp x12, x13, [x4, #-64]
|
||
3a98: a9031402 stp x2, x5, [x0, #48]
|
||
3a9c: a9021c06 stp x6, x7, [x0, #32]
|
||
3aa0: a9012408 stp x8, x9, [x0, #16]
|
||
3aa4: a9002c0a stp x10, x11, [x0]
|
||
3aa8: d65f03c0 ret
|
||
3aac: d503201f nop
|
||
3ab0: d503201f nop
|
||
3ab4: d503201f nop
|
||
3ab8: d503201f nop
|
||
3abc: d503201f nop
|
||
|
||
0000000000003ac0 <memset>:
|
||
3ac0: 4e010c20 dup v0.16b, w1
|
||
3ac4: 8b020004 add x4, x0, x2
|
||
3ac8: f101805f cmp x2, #0x60
|
||
3acc: 540003c8 b.hi 3b44 <memset+0x84> // b.pmore
|
||
3ad0: f100405f cmp x2, #0x10
|
||
3ad4: 54000202 b.cs 3b14 <memset+0x54> // b.hs, b.nlast
|
||
3ad8: 4e083c01 mov x1, v0.d[0]
|
||
3adc: 361800a2 tbz w2, #3, 3af0 <memset+0x30>
|
||
3ae0: f9000001 str x1, [x0]
|
||
3ae4: f81f8081 stur x1, [x4, #-8]
|
||
3ae8: d65f03c0 ret
|
||
3aec: d503201f nop
|
||
3af0: 36100082 tbz w2, #2, 3b00 <memset+0x40>
|
||
3af4: b9000001 str w1, [x0]
|
||
3af8: b81fc081 stur w1, [x4, #-4]
|
||
3afc: d65f03c0 ret
|
||
3b00: b4000082 cbz x2, 3b10 <memset+0x50>
|
||
3b04: 39000001 strb w1, [x0]
|
||
3b08: 36080042 tbz w2, #1, 3b10 <memset+0x50>
|
||
3b0c: 781fe081 sturh w1, [x4, #-2]
|
||
3b10: d65f03c0 ret
|
||
3b14: 3d800000 str q0, [x0]
|
||
3b18: 373000c2 tbnz w2, #6, 3b30 <memset+0x70>
|
||
3b1c: 3c9f0080 stur q0, [x4, #-16]
|
||
3b20: 36280062 tbz w2, #5, 3b2c <memset+0x6c>
|
||
3b24: 3d800400 str q0, [x0, #16]
|
||
3b28: 3c9e0080 stur q0, [x4, #-32]
|
||
3b2c: d65f03c0 ret
|
||
3b30: 3d800400 str q0, [x0, #16]
|
||
3b34: ad010000 stp q0, q0, [x0, #32]
|
||
3b38: ad3f0080 stp q0, q0, [x4, #-32]
|
||
3b3c: d65f03c0 ret
|
||
3b40: d503201f nop
|
||
3b44: 12001c21 and w1, w1, #0xff
|
||
3b48: 927cec03 and x3, x0, #0xfffffffffffffff0
|
||
3b4c: 3d800000 str q0, [x0]
|
||
3b50: f104005f cmp x2, #0x100
|
||
3b54: 7a402820 ccmp w1, #0x0, #0x0, cs // cs = hs, nlast
|
||
3b58: 54000180 b.eq 3b88 <memset+0xc8> // b.none
|
||
3b5c: cb030082 sub x2, x4, x3
|
||
3b60: d1004063 sub x3, x3, #0x10
|
||
3b64: d1014042 sub x2, x2, #0x50
|
||
3b68: ad010060 stp q0, q0, [x3, #32]
|
||
3b6c: ad820060 stp q0, q0, [x3, #64]!
|
||
3b70: f1010042 subs x2, x2, #0x40
|
||
3b74: 54ffffa8 b.hi 3b68 <memset+0xa8> // b.pmore
|
||
3b78: ad3e0080 stp q0, q0, [x4, #-64]
|
||
3b7c: ad3f0080 stp q0, q0, [x4, #-32]
|
||
3b80: d65f03c0 ret
|
||
3b84: d503201f nop
|
||
3b88: d53b00e5 mrs x5, dczid_el0
|
||
3b8c: 3727fe85 tbnz w5, #4, 3b5c <memset+0x9c>
|
||
3b90: 12000ca5 and w5, w5, #0xf
|
||
3b94: 710010bf cmp w5, #0x4
|
||
3b98: 54000281 b.ne 3be8 <memset+0x128> // b.any
|
||
3b9c: 3d800460 str q0, [x3, #16]
|
||
3ba0: ad010060 stp q0, q0, [x3, #32]
|
||
3ba4: 927ae463 and x3, x3, #0xffffffffffffffc0
|
||
3ba8: ad020060 stp q0, q0, [x3, #64]
|
||
3bac: ad030060 stp q0, q0, [x3, #96]
|
||
3bb0: cb030082 sub x2, x4, x3
|
||
3bb4: d1040042 sub x2, x2, #0x100
|
||
3bb8: 91020063 add x3, x3, #0x80
|
||
3bbc: d503201f nop
|
||
3bc0: d50b7423 dc zva, x3
|
||
3bc4: 91010063 add x3, x3, #0x40
|
||
3bc8: f1010042 subs x2, x2, #0x40
|
||
3bcc: 54ffffa8 b.hi 3bc0 <memset+0x100> // b.pmore
|
||
3bd0: ad000060 stp q0, q0, [x3]
|
||
3bd4: ad010060 stp q0, q0, [x3, #32]
|
||
3bd8: ad3e0080 stp q0, q0, [x4, #-64]
|
||
3bdc: ad3f0080 stp q0, q0, [x4, #-32]
|
||
3be0: d65f03c0 ret
|
||
3be4: d503201f nop
|
||
3be8: 710014bf cmp w5, #0x5
|
||
3bec: 54000241 b.ne 3c34 <memset+0x174> // b.any
|
||
3bf0: 3d800460 str q0, [x3, #16]
|
||
3bf4: ad010060 stp q0, q0, [x3, #32]
|
||
3bf8: ad020060 stp q0, q0, [x3, #64]
|
||
3bfc: ad030060 stp q0, q0, [x3, #96]
|
||
3c00: 9279e063 and x3, x3, #0xffffffffffffff80
|
||
3c04: cb030082 sub x2, x4, x3
|
||
3c08: d1040042 sub x2, x2, #0x100
|
||
3c0c: 91020063 add x3, x3, #0x80
|
||
3c10: d50b7423 dc zva, x3
|
||
3c14: 91020063 add x3, x3, #0x80
|
||
3c18: f1020042 subs x2, x2, #0x80
|
||
3c1c: 54ffffa8 b.hi 3c10 <memset+0x150> // b.pmore
|
||
3c20: ad3c0080 stp q0, q0, [x4, #-128]
|
||
3c24: ad3d0080 stp q0, q0, [x4, #-96]
|
||
3c28: ad3e0080 stp q0, q0, [x4, #-64]
|
||
3c2c: ad3f0080 stp q0, q0, [x4, #-32]
|
||
3c30: d65f03c0 ret
|
||
3c34: 52800086 mov w6, #0x4 // #4
|
||
3c38: 1ac520c7 lsl w7, w6, w5
|
||
3c3c: 910100e5 add x5, x7, #0x40
|
||
3c40: eb05005f cmp x2, x5
|
||
3c44: 54fff8c3 b.cc 3b5c <memset+0x9c> // b.lo, b.ul, b.last
|
||
3c48: d10004e6 sub x6, x7, #0x1
|
||
3c4c: 8b070065 add x5, x3, x7
|
||
3c50: 91004063 add x3, x3, #0x10
|
||
3c54: eb0300a2 subs x2, x5, x3
|
||
3c58: 8a2600a5 bic x5, x5, x6
|
||
3c5c: 540000a0 b.eq 3c70 <memset+0x1b0> // b.none
|
||
3c60: ac820060 stp q0, q0, [x3], #64
|
||
3c64: ad3f0060 stp q0, q0, [x3, #-32]
|
||
3c68: f1010042 subs x2, x2, #0x40
|
||
3c6c: 54ffffa8 b.hi 3c60 <memset+0x1a0> // b.pmore
|
||
3c70: aa0503e3 mov x3, x5
|
||
3c74: cb050082 sub x2, x4, x5
|
||
3c78: eb070042 subs x2, x2, x7
|
||
3c7c: 540000a3 b.cc 3c90 <memset+0x1d0> // b.lo, b.ul, b.last
|
||
3c80: d50b7423 dc zva, x3
|
||
3c84: 8b070063 add x3, x3, x7
|
||
3c88: eb070042 subs x2, x2, x7
|
||
3c8c: 54ffffa2 b.cs 3c80 <memset+0x1c0> // b.hs, b.nlast
|
||
3c90: 8b070042 add x2, x2, x7
|
||
3c94: d1008063 sub x3, x3, #0x20
|
||
3c98: 17ffffb6 b 3b70 <memset+0xb0>
|
||
3c9c: d503201f nop
|
||
|
||
0000000000003ca0 <__malloc_lock>:
|
||
3ca0: d65f03c0 ret
|
||
3ca4: d503201f nop
|
||
3ca8: d503201f nop
|
||
3cac: d503201f nop
|
||
|
||
0000000000003cb0 <__malloc_unlock>:
|
||
3cb0: d65f03c0 ret
|
||
3cb4: d503201f nop
|
||
3cb8: d503201f nop
|
||
3cbc: d503201f nop
|
||
|
||
0000000000003cc0 <_sbrk_r>:
|
||
3cc0: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
3cc4: 910003fd mov x29, sp
|
||
3cc8: a90153f3 stp x19, x20, [sp, #16]
|
||
3ccc: d0000054 adrp x20, d000 <__malloc_av_+0x780>
|
||
3cd0: aa0003f3 mov x19, x0
|
||
3cd4: b905da9f str wzr, [x20, #1496]
|
||
3cd8: aa0103e0 mov x0, x1
|
||
3cdc: 97fffc05 bl 2cf0 <_sbrk>
|
||
3ce0: b100041f cmn x0, #0x1
|
||
3ce4: 54000080 b.eq 3cf4 <_sbrk_r+0x34> // b.none
|
||
3ce8: a94153f3 ldp x19, x20, [sp, #16]
|
||
3cec: a8c27bfd ldp x29, x30, [sp], #32
|
||
3cf0: d65f03c0 ret
|
||
3cf4: b945da81 ldr w1, [x20, #1496]
|
||
3cf8: 34ffff81 cbz w1, 3ce8 <_sbrk_r+0x28>
|
||
3cfc: b9000261 str w1, [x19]
|
||
3d00: a94153f3 ldp x19, x20, [sp, #16]
|
||
3d04: a8c27bfd ldp x29, x30, [sp], #32
|
||
3d08: d65f03c0 ret
|
||
3d0c: d503201f nop
|
||
|
||
0000000000003d10 <__sprint_r.part.0>:
|
||
3d10: a9bb7bfd stp x29, x30, [sp, #-80]!
|
||
3d14: 910003fd mov x29, sp
|
||
3d18: b940ac23 ldr w3, [x1, #172]
|
||
3d1c: a90363f7 stp x23, x24, [sp, #48]
|
||
3d20: aa0203f8 mov x24, x2
|
||
3d24: 36680563 tbz w3, #13, 3dd0 <__sprint_r.part.0+0xc0>
|
||
3d28: a9025bf5 stp x21, x22, [sp, #32]
|
||
3d2c: aa0003f5 mov x21, x0
|
||
3d30: f9400840 ldr x0, [x2, #16]
|
||
3d34: a90153f3 stp x19, x20, [sp, #16]
|
||
3d38: aa0103f4 mov x20, x1
|
||
3d3c: a9046bf9 stp x25, x26, [sp, #64]
|
||
3d40: f940005a ldr x26, [x2]
|
||
3d44: b40003c0 cbz x0, 3dbc <__sprint_r.part.0+0xac>
|
||
3d48: a9406756 ldp x22, x25, [x26]
|
||
3d4c: d342ff39 lsr x25, x25, #2
|
||
3d50: 2a1903f7 mov w23, w25
|
||
3d54: 7100033f cmp w25, #0x0
|
||
3d58: 540002ad b.le 3dac <__sprint_r.part.0+0x9c>
|
||
3d5c: d2800013 mov x19, #0x0 // #0
|
||
3d60: 14000003 b 3d6c <__sprint_r.part.0+0x5c>
|
||
3d64: 6b1302ff cmp w23, w19
|
||
3d68: 5400020d b.le 3da8 <__sprint_r.part.0+0x98>
|
||
3d6c: b8737ac1 ldr w1, [x22, x19, lsl #2]
|
||
3d70: aa1403e2 mov x2, x20
|
||
3d74: aa1503e0 mov x0, x21
|
||
3d78: 91000673 add x19, x19, #0x1
|
||
3d7c: 94000a15 bl 65d0 <_fputwc_r>
|
||
3d80: 3100041f cmn w0, #0x1
|
||
3d84: 54ffff01 b.ne 3d64 <__sprint_r.part.0+0x54> // b.any
|
||
3d88: a94153f3 ldp x19, x20, [sp, #16]
|
||
3d8c: a9425bf5 ldp x21, x22, [sp, #32]
|
||
3d90: a9446bf9 ldp x25, x26, [sp, #64]
|
||
3d94: b9000b1f str wzr, [x24, #8]
|
||
3d98: f9000b1f str xzr, [x24, #16]
|
||
3d9c: a94363f7 ldp x23, x24, [sp, #48]
|
||
3da0: a8c57bfd ldp x29, x30, [sp], #80
|
||
3da4: d65f03c0 ret
|
||
3da8: f9400b00 ldr x0, [x24, #16]
|
||
3dac: cb39c800 sub x0, x0, w25, sxtw #2
|
||
3db0: f9000b00 str x0, [x24, #16]
|
||
3db4: 9100435a add x26, x26, #0x10
|
||
3db8: b5fffc80 cbnz x0, 3d48 <__sprint_r.part.0+0x38>
|
||
3dbc: 52800000 mov w0, #0x0 // #0
|
||
3dc0: a94153f3 ldp x19, x20, [sp, #16]
|
||
3dc4: a9425bf5 ldp x21, x22, [sp, #32]
|
||
3dc8: a9446bf9 ldp x25, x26, [sp, #64]
|
||
3dcc: 17fffff2 b 3d94 <__sprint_r.part.0+0x84>
|
||
3dd0: 94000b2c bl 6a80 <__sfvwrite_r>
|
||
3dd4: b9000b1f str wzr, [x24, #8]
|
||
3dd8: f9000b1f str xzr, [x24, #16]
|
||
3ddc: a94363f7 ldp x23, x24, [sp, #48]
|
||
3de0: a8c57bfd ldp x29, x30, [sp], #80
|
||
3de4: d65f03c0 ret
|
||
3de8: d503201f nop
|
||
3dec: d503201f nop
|
||
|
||
0000000000003df0 <__sprint_r>:
|
||
3df0: f9400844 ldr x4, [x2, #16]
|
||
3df4: b4000044 cbz x4, 3dfc <__sprint_r+0xc>
|
||
3df8: 17ffffc6 b 3d10 <__sprint_r.part.0>
|
||
3dfc: 52800000 mov w0, #0x0 // #0
|
||
3e00: b900085f str wzr, [x2, #8]
|
||
3e04: d65f03c0 ret
|
||
3e08: d503201f nop
|
||
3e0c: d503201f nop
|
||
|
||
0000000000003e10 <_vfiprintf_r>:
|
||
3e10: d10843ff sub sp, sp, #0x210
|
||
3e14: a9007bfd stp x29, x30, [sp]
|
||
3e18: 910003fd mov x29, sp
|
||
3e1c: a9025bf5 stp x21, x22, [sp, #32]
|
||
3e20: aa0303f5 mov x21, x3
|
||
3e24: f9400063 ldr x3, [x3]
|
||
3e28: f90037e3 str x3, [sp, #104]
|
||
3e2c: f94006a3 ldr x3, [x21, #8]
|
||
3e30: f90043e3 str x3, [sp, #128]
|
||
3e34: b9401aa3 ldr w3, [x21, #24]
|
||
3e38: a90153f3 stp x19, x20, [sp, #16]
|
||
3e3c: aa0003f3 mov x19, x0
|
||
3e40: aa0203f4 mov x20, x2
|
||
3e44: 9103e3e0 add x0, sp, #0xf8
|
||
3e48: d2800102 mov x2, #0x8 // #8
|
||
3e4c: a9046bf9 stp x25, x26, [sp, #64]
|
||
3e50: aa0103f9 mov x25, x1
|
||
3e54: 52800001 mov w1, #0x0 // #0
|
||
3e58: b900b3e3 str w3, [sp, #176]
|
||
3e5c: 97ffff19 bl 3ac0 <memset>
|
||
3e60: b4000073 cbz x19, 3e6c <_vfiprintf_r+0x5c>
|
||
3e64: b9405260 ldr w0, [x19, #80]
|
||
3e68: 34002020 cbz w0, 426c <_vfiprintf_r+0x45c>
|
||
3e6c: 79c02321 ldrsh w1, [x25, #16]
|
||
3e70: 12003c20 and w0, w1, #0xffff
|
||
3e74: 376800e1 tbnz w1, #13, 3e90 <_vfiprintf_r+0x80>
|
||
3e78: b940af22 ldr w2, [x25, #172]
|
||
3e7c: 32130021 orr w1, w1, #0x2000
|
||
3e80: 12003c20 and w0, w1, #0xffff
|
||
3e84: 79002321 strh w1, [x25, #16]
|
||
3e88: 12127841 and w1, w2, #0xffffdfff
|
||
3e8c: b900af21 str w1, [x25, #172]
|
||
3e90: 36180520 tbz w0, #3, 3f34 <_vfiprintf_r+0x124>
|
||
3e94: f9400f21 ldr x1, [x25, #24]
|
||
3e98: b40004e1 cbz x1, 3f34 <_vfiprintf_r+0x124>
|
||
3e9c: 52800341 mov w1, #0x1a // #26
|
||
3ea0: 0a010000 and w0, w0, w1
|
||
3ea4: 7100281f cmp w0, #0xa
|
||
3ea8: 54000580 b.eq 3f58 <_vfiprintf_r+0x148> // b.none
|
||
3eac: a90573fb stp x27, x28, [sp, #80]
|
||
3eb0: 910643fc add x28, sp, #0x190
|
||
3eb4: d0000055 adrp x21, d000 <__malloc_av_+0x780>
|
||
3eb8: aa1c03fb mov x27, x28
|
||
3ebc: 910302b5 add x21, x21, #0xc0
|
||
3ec0: 90000040 adrp x0, b000 <pow10.0+0x80>
|
||
3ec4: 910aa000 add x0, x0, #0x2a8
|
||
3ec8: a90363f7 stp x23, x24, [sp, #48]
|
||
3ecc: b90067ff str wzr, [sp, #100]
|
||
3ed0: f9003fe0 str x0, [sp, #120]
|
||
3ed4: f90047ff str xzr, [sp, #136]
|
||
3ed8: a909ffff stp xzr, xzr, [sp, #152]
|
||
3edc: f90057ff str xzr, [sp, #168]
|
||
3ee0: f9008bfc str x28, [sp, #272]
|
||
3ee4: b9011bff str wzr, [sp, #280]
|
||
3ee8: f90093ff str xzr, [sp, #288]
|
||
3eec: aa1403f7 mov x23, x20
|
||
3ef0: f94076b6 ldr x22, [x21, #232]
|
||
3ef4: 94000fa7 bl 7d90 <__locale_mb_cur_max>
|
||
3ef8: 9103e3e4 add x4, sp, #0xf8
|
||
3efc: 93407c03 sxtw x3, w0
|
||
3f00: aa1703e2 mov x2, x23
|
||
3f04: 9103d3e1 add x1, sp, #0xf4
|
||
3f08: aa1303e0 mov x0, x19
|
||
3f0c: d63f02c0 blr x22
|
||
3f10: 7100001f cmp w0, #0x0
|
||
3f14: 340004a0 cbz w0, 3fa8 <_vfiprintf_r+0x198>
|
||
3f18: 540003ab b.lt 3f8c <_vfiprintf_r+0x17c> // b.tstop
|
||
3f1c: b940f7e1 ldr w1, [sp, #244]
|
||
3f20: 7100943f cmp w1, #0x25
|
||
3f24: 54001720 b.eq 4208 <_vfiprintf_r+0x3f8> // b.none
|
||
3f28: 93407c00 sxtw x0, w0
|
||
3f2c: 8b0002f7 add x23, x23, x0
|
||
3f30: 17fffff0 b 3ef0 <_vfiprintf_r+0xe0>
|
||
3f34: aa1903e1 mov x1, x25
|
||
3f38: aa1303e0 mov x0, x19
|
||
3f3c: 9400072d bl 5bf0 <__swsetup_r>
|
||
3f40: 3500b220 cbnz w0, 5584 <_vfiprintf_r+0x1774>
|
||
3f44: 79402320 ldrh w0, [x25, #16]
|
||
3f48: 52800341 mov w1, #0x1a // #26
|
||
3f4c: 0a010000 and w0, w0, w1
|
||
3f50: 7100281f cmp w0, #0xa
|
||
3f54: 54fffac1 b.ne 3eac <_vfiprintf_r+0x9c> // b.any
|
||
3f58: 79c02720 ldrsh w0, [x25, #18]
|
||
3f5c: 37fffa80 tbnz w0, #31, 3eac <_vfiprintf_r+0x9c>
|
||
3f60: a9401ea6 ldp x6, x7, [x21]
|
||
3f64: aa1403e2 mov x2, x20
|
||
3f68: a94116a4 ldp x4, x5, [x21, #16]
|
||
3f6c: aa1903e1 mov x1, x25
|
||
3f70: aa1303e0 mov x0, x19
|
||
3f74: 910303e3 add x3, sp, #0xc0
|
||
3f78: a90c1fe6 stp x6, x7, [sp, #192]
|
||
3f7c: a90d17e4 stp x4, x5, [sp, #208]
|
||
3f80: 9400068c bl 59b0 <__sbprintf>
|
||
3f84: b90067e0 str w0, [sp, #100]
|
||
3f88: 140000b2 b 4250 <_vfiprintf_r+0x440>
|
||
3f8c: 9103e3e0 add x0, sp, #0xf8
|
||
3f90: d2800102 mov x2, #0x8 // #8
|
||
3f94: 52800001 mov w1, #0x0 // #0
|
||
3f98: 97fffeca bl 3ac0 <memset>
|
||
3f9c: d2800020 mov x0, #0x1 // #1
|
||
3fa0: 8b0002f7 add x23, x23, x0
|
||
3fa4: 17ffffd3 b 3ef0 <_vfiprintf_r+0xe0>
|
||
3fa8: 2a0003f6 mov w22, w0
|
||
3fac: cb1402e0 sub x0, x23, x20
|
||
3fb0: 2a0003f8 mov w24, w0
|
||
3fb4: 34008d60 cbz w0, 5160 <_vfiprintf_r+0x1350>
|
||
3fb8: f94093e2 ldr x2, [sp, #288]
|
||
3fbc: 93407f01 sxtw x1, w24
|
||
3fc0: b9411be0 ldr w0, [sp, #280]
|
||
3fc4: 8b020022 add x2, x1, x2
|
||
3fc8: a9000774 stp x20, x1, [x27]
|
||
3fcc: 11000400 add w0, w0, #0x1
|
||
3fd0: b9011be0 str w0, [sp, #280]
|
||
3fd4: f90093e2 str x2, [sp, #288]
|
||
3fd8: 71001c1f cmp w0, #0x7
|
||
3fdc: 5400120d b.le 421c <_vfiprintf_r+0x40c>
|
||
3fe0: b4006222 cbz x2, 4c24 <_vfiprintf_r+0xe14>
|
||
3fe4: 910443e2 add x2, sp, #0x110
|
||
3fe8: aa1903e1 mov x1, x25
|
||
3fec: aa1303e0 mov x0, x19
|
||
3ff0: 97ffff48 bl 3d10 <__sprint_r.part.0>
|
||
3ff4: 35001260 cbnz w0, 4240 <_vfiprintf_r+0x430>
|
||
3ff8: 910643fb add x27, sp, #0x190
|
||
3ffc: b94067e0 ldr w0, [sp, #100]
|
||
4000: 0b180000 add w0, w0, w24
|
||
4004: b90067e0 str w0, [sp, #100]
|
||
4008: 34008ad6 cbz w22, 5160 <_vfiprintf_r+0x1350>
|
||
400c: 394006e0 ldrb w0, [x23, #1]
|
||
4010: 12800004 mov w4, #0xffffffff // #-1
|
||
4014: 910006f4 add x20, x23, #0x1
|
||
4018: 2a0403f6 mov w22, w4
|
||
401c: 5280001c mov w28, #0x0 // #0
|
||
4020: b90063ff str wzr, [sp, #96]
|
||
4024: 3903bfff strb wzr, [sp, #239]
|
||
4028: 91000694 add x20, x20, #0x1
|
||
402c: 51008001 sub w1, w0, #0x20
|
||
4030: 7101683f cmp w1, #0x5a
|
||
4034: 54000c49 b.ls 41bc <_vfiprintf_r+0x3ac> // b.plast
|
||
4038: 34008940 cbz w0, 5160 <_vfiprintf_r+0x1350>
|
||
403c: 52800036 mov w22, #0x1 // #1
|
||
4040: 9104a3fa add x26, sp, #0x128
|
||
4044: 2a1603f7 mov w23, w22
|
||
4048: 3903bfff strb wzr, [sp, #239]
|
||
404c: 3904a3e0 strb w0, [sp, #296]
|
||
4050: 52800004 mov w4, #0x0 // #0
|
||
4054: f9003bff str xzr, [sp, #112]
|
||
4058: b9411be1 ldr w1, [sp, #280]
|
||
405c: 11000ac0 add w0, w22, #0x2
|
||
4060: 721f038a ands w10, w28, #0x2
|
||
4064: 52801098 mov w24, #0x84 // #132
|
||
4068: 11000422 add w2, w1, #0x1
|
||
406c: 1a961016 csel w22, w0, w22, ne // ne = any
|
||
4070: 2a0203e8 mov w8, w2
|
||
4074: 6a180398 ands w24, w28, w24
|
||
4078: f94093e0 ldr x0, [sp, #288]
|
||
407c: 540000a1 b.ne 4090 <_vfiprintf_r+0x280> // b.any
|
||
4080: b94063e3 ldr w3, [sp, #96]
|
||
4084: 4b160069 sub w9, w3, w22
|
||
4088: 7100013f cmp w9, #0x0
|
||
408c: 5400496c b.gt 49b8 <_vfiprintf_r+0xba8>
|
||
4090: 3943bfe2 ldrb w2, [sp, #239]
|
||
4094: 340001a2 cbz w2, 40c8 <_vfiprintf_r+0x2b8>
|
||
4098: 9103bfe1 add x1, sp, #0xef
|
||
409c: 91000400 add x0, x0, #0x1
|
||
40a0: f9000361 str x1, [x27]
|
||
40a4: d2800021 mov x1, #0x1 // #1
|
||
40a8: f9000761 str x1, [x27, #8]
|
||
40ac: b9011be8 str w8, [sp, #280]
|
||
40b0: f90093e0 str x0, [sp, #288]
|
||
40b4: 71001d1f cmp w8, #0x7
|
||
40b8: 540044cc b.gt 4950 <_vfiprintf_r+0xb40>
|
||
40bc: 2a0803e1 mov w1, w8
|
||
40c0: 9100437b add x27, x27, #0x10
|
||
40c4: 11000508 add w8, w8, #0x1
|
||
40c8: 340002ca cbz w10, 4120 <_vfiprintf_r+0x310>
|
||
40cc: 91000800 add x0, x0, #0x2
|
||
40d0: 9103c3e2 add x2, sp, #0xf0
|
||
40d4: d2800041 mov x1, #0x2 // #2
|
||
40d8: a9000762 stp x2, x1, [x27]
|
||
40dc: b9011be8 str w8, [sp, #280]
|
||
40e0: f90093e0 str x0, [sp, #288]
|
||
40e4: 71001d1f cmp w8, #0x7
|
||
40e8: 5400460d b.le 49a8 <_vfiprintf_r+0xb98>
|
||
40ec: b4005b20 cbz x0, 4c50 <_vfiprintf_r+0xe40>
|
||
40f0: 910443e2 add x2, sp, #0x110
|
||
40f4: aa1903e1 mov x1, x25
|
||
40f8: aa1303e0 mov x0, x19
|
||
40fc: b90093e4 str w4, [sp, #144]
|
||
4100: 97ffff04 bl 3d10 <__sprint_r.part.0>
|
||
4104: 35000940 cbnz w0, 422c <_vfiprintf_r+0x41c>
|
||
4108: b9411be1 ldr w1, [sp, #280]
|
||
410c: 910643fb add x27, sp, #0x190
|
||
4110: b94093e4 ldr w4, [sp, #144]
|
||
4114: f94093e0 ldr x0, [sp, #288]
|
||
4118: 11000428 add w8, w1, #0x1
|
||
411c: d503201f nop
|
||
4120: 7102031f cmp w24, #0x80
|
||
4124: 54002f80 b.eq 4714 <_vfiprintf_r+0x904> // b.none
|
||
4128: 4b170098 sub w24, w4, w23
|
||
412c: 7100031f cmp w24, #0x0
|
||
4130: 540038cc b.gt 4848 <_vfiprintf_r+0xa38>
|
||
4134: 93407ef7 sxtw x23, w23
|
||
4138: a9005f7a stp x26, x23, [x27]
|
||
413c: 8b0002e0 add x0, x23, x0
|
||
4140: b9011be8 str w8, [sp, #280]
|
||
4144: f90093e0 str x0, [sp, #288]
|
||
4148: 71001d1f cmp w8, #0x7
|
||
414c: 540029ad b.le 4680 <_vfiprintf_r+0x870>
|
||
4150: b4004ba0 cbz x0, 4ac4 <_vfiprintf_r+0xcb4>
|
||
4154: 910443e2 add x2, sp, #0x110
|
||
4158: aa1903e1 mov x1, x25
|
||
415c: aa1303e0 mov x0, x19
|
||
4160: 97fffeec bl 3d10 <__sprint_r.part.0>
|
||
4164: 35000640 cbnz w0, 422c <_vfiprintf_r+0x41c>
|
||
4168: f94093e0 ldr x0, [sp, #288]
|
||
416c: 910643e5 add x5, sp, #0x190
|
||
4170: 361000bc tbz w28, #2, 4184 <_vfiprintf_r+0x374>
|
||
4174: b94063e1 ldr w1, [sp, #96]
|
||
4178: 4b160037 sub w23, w1, w22
|
||
417c: 710002ff cmp w23, #0x0
|
||
4180: 54004b0c b.gt 4ae0 <_vfiprintf_r+0xcd0>
|
||
4184: b94063e1 ldr w1, [sp, #96]
|
||
4188: 6b16003f cmp w1, w22
|
||
418c: 1a96a023 csel w3, w1, w22, ge // ge = tcont
|
||
4190: b94067e1 ldr w1, [sp, #100]
|
||
4194: 0b030021 add w1, w1, w3
|
||
4198: b90067e1 str w1, [sp, #100]
|
||
419c: b5003c60 cbnz x0, 4928 <_vfiprintf_r+0xb18>
|
||
41a0: f9403be1 ldr x1, [sp, #112]
|
||
41a4: b9011bff str wzr, [sp, #280]
|
||
41a8: 910643fb add x27, sp, #0x190
|
||
41ac: b4ffea01 cbz x1, 3eec <_vfiprintf_r+0xdc>
|
||
41b0: aa1303e0 mov x0, x19
|
||
41b4: 94000977 bl 6790 <_free_r>
|
||
41b8: 17ffff4d b 3eec <_vfiprintf_r+0xdc>
|
||
41bc: f9403fe2 ldr x2, [sp, #120]
|
||
41c0: 78615841 ldrh w1, [x2, w1, uxtw #1]
|
||
41c4: 10000062 adr x2, 41d0 <_vfiprintf_r+0x3c0>
|
||
41c8: 8b21a841 add x1, x2, w1, sxth #2
|
||
41cc: d61f0020 br x1
|
||
41d0: 5100c001 sub w1, w0, #0x30
|
||
41d4: b90063ff str wzr, [sp, #96]
|
||
41d8: b94063e0 ldr w0, [sp, #96]
|
||
41dc: 0b000802 add w2, w0, w0, lsl #2
|
||
41e0: 38401680 ldrb w0, [x20], #1
|
||
41e4: 0b020421 add w1, w1, w2, lsl #1
|
||
41e8: b90063e1 str w1, [sp, #96]
|
||
41ec: 5100c001 sub w1, w0, #0x30
|
||
41f0: 7100243f cmp w1, #0x9
|
||
41f4: 54ffff29 b.ls 41d8 <_vfiprintf_r+0x3c8> // b.plast
|
||
41f8: 17ffff8d b 402c <_vfiprintf_r+0x21c>
|
||
41fc: 39400280 ldrb w0, [x20]
|
||
4200: 321c039c orr w28, w28, #0x10
|
||
4204: 17ffff89 b 4028 <_vfiprintf_r+0x218>
|
||
4208: 2a0003f6 mov w22, w0
|
||
420c: cb1402e0 sub x0, x23, x20
|
||
4210: 2a0003f8 mov w24, w0
|
||
4214: 34ffefc0 cbz w0, 400c <_vfiprintf_r+0x1fc>
|
||
4218: 17ffff68 b 3fb8 <_vfiprintf_r+0x1a8>
|
||
421c: 9100437b add x27, x27, #0x10
|
||
4220: 17ffff77 b 3ffc <_vfiprintf_r+0x1ec>
|
||
4224: aa1903f3 mov x19, x25
|
||
4228: aa1403f9 mov x25, x20
|
||
422c: f9403be0 ldr x0, [sp, #112]
|
||
4230: b4000080 cbz x0, 4240 <_vfiprintf_r+0x430>
|
||
4234: f9403be1 ldr x1, [sp, #112]
|
||
4238: aa1303e0 mov x0, x19
|
||
423c: 94000955 bl 6790 <_free_r>
|
||
4240: 79c02320 ldrsh w0, [x25, #16]
|
||
4244: a94363f7 ldp x23, x24, [sp, #48]
|
||
4248: a94573fb ldp x27, x28, [sp, #80]
|
||
424c: 373099c0 tbnz w0, #6, 5584 <_vfiprintf_r+0x1774>
|
||
4250: b94067e0 ldr w0, [sp, #100]
|
||
4254: a9407bfd ldp x29, x30, [sp]
|
||
4258: a94153f3 ldp x19, x20, [sp, #16]
|
||
425c: a9425bf5 ldp x21, x22, [sp, #32]
|
||
4260: a9446bf9 ldp x25, x26, [sp, #64]
|
||
4264: 910843ff add sp, sp, #0x210
|
||
4268: d65f03c0 ret
|
||
426c: aa1303e0 mov x0, x19
|
||
4270: 94000870 bl 6430 <__sinit>
|
||
4274: 17fffefe b 3e6c <_vfiprintf_r+0x5c>
|
||
4278: b940b3e1 ldr w1, [sp, #176]
|
||
427c: 2a1603e4 mov w4, w22
|
||
4280: 37f856c1 tbnz w1, #31, 4d58 <_vfiprintf_r+0xf48>
|
||
4284: f94037e1 ldr x1, [sp, #104]
|
||
4288: 91003c38 add x24, x1, #0xf
|
||
428c: 927df318 and x24, x24, #0xfffffffffffffff8
|
||
4290: f94037e1 ldr x1, [sp, #104]
|
||
4294: 3903bfff strb wzr, [sp, #239]
|
||
4298: f940003a ldr x26, [x1]
|
||
429c: b400753a cbz x26, 5140 <_vfiprintf_r+0x1330>
|
||
42a0: 71014c1f cmp w0, #0x53
|
||
42a4: 54006740 b.eq 4f8c <_vfiprintf_r+0x117c> // b.none
|
||
42a8: 3720673c tbnz w28, #4, 4f8c <_vfiprintf_r+0x117c>
|
||
42ac: 3100049f cmn w4, #0x1
|
||
42b0: 54009520 b.eq 5554 <_vfiprintf_r+0x1744> // b.none
|
||
42b4: 93407c82 sxtw x2, w4
|
||
42b8: aa1a03e0 mov x0, x26
|
||
42bc: 52800001 mov w1, #0x0 // #0
|
||
42c0: b9006be4 str w4, [sp, #104]
|
||
42c4: 94001118 bl 8724 <memchr>
|
||
42c8: f9003be0 str x0, [sp, #112]
|
||
42cc: b9406be4 ldr w4, [sp, #104]
|
||
42d0: b40090a0 cbz x0, 54e4 <_vfiprintf_r+0x16d4>
|
||
42d4: cb1a0003 sub x3, x0, x26
|
||
42d8: 52800004 mov w4, #0x0 // #0
|
||
42dc: 7100007f cmp w3, #0x0
|
||
42e0: 2a0303f7 mov w23, w3
|
||
42e4: 1a9fa076 csel w22, w3, wzr, ge // ge = tcont
|
||
42e8: a906fff8 stp x24, xzr, [sp, #104]
|
||
42ec: 14000060 b 446c <_vfiprintf_r+0x65c>
|
||
42f0: 71010c1f cmp w0, #0x43
|
||
42f4: 54000040 b.eq 42fc <_vfiprintf_r+0x4ec> // b.none
|
||
42f8: 3620569c tbz w28, #4, 4dc8 <_vfiprintf_r+0xfb8>
|
||
42fc: 910423e0 add x0, sp, #0x108
|
||
4300: d2800102 mov x2, #0x8 // #8
|
||
4304: 52800001 mov w1, #0x0 // #0
|
||
4308: 97fffdee bl 3ac0 <memset>
|
||
430c: b940b3e0 ldr w0, [sp, #176]
|
||
4310: 37f87a20 tbnz w0, #31, 5254 <_vfiprintf_r+0x1444>
|
||
4314: f94037e0 ldr x0, [sp, #104]
|
||
4318: 91002c01 add x1, x0, #0xb
|
||
431c: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
4320: f90037e1 str x1, [sp, #104]
|
||
4324: b9400002 ldr w2, [x0]
|
||
4328: 9104a3fa add x26, sp, #0x128
|
||
432c: 910423e3 add x3, sp, #0x108
|
||
4330: aa1a03e1 mov x1, x26
|
||
4334: aa1303e0 mov x0, x19
|
||
4338: 940005d2 bl 5a80 <_wcrtomb_r>
|
||
433c: 2a0003f7 mov w23, w0
|
||
4340: 3100041f cmn w0, #0x1
|
||
4344: 54009260 b.eq 5590 <_vfiprintf_r+0x1780> // b.none
|
||
4348: 7100001f cmp w0, #0x0
|
||
434c: 3903bfff strb wzr, [sp, #239]
|
||
4350: 1a9fa016 csel w22, w0, wzr, ge // ge = tcont
|
||
4354: 17ffff3f b 4050 <_vfiprintf_r+0x240>
|
||
4358: b94063e1 ldr w1, [sp, #96]
|
||
435c: f90037e0 str x0, [sp, #104]
|
||
4360: 4b0103e1 neg w1, w1
|
||
4364: b90063e1 str w1, [sp, #96]
|
||
4368: 39400280 ldrb w0, [x20]
|
||
436c: 321e039c orr w28, w28, #0x4
|
||
4370: 17ffff2e b 4028 <_vfiprintf_r+0x218>
|
||
4374: aa1403e2 mov x2, x20
|
||
4378: 38401440 ldrb w0, [x2], #1
|
||
437c: 7100a81f cmp w0, #0x2a
|
||
4380: 5400a6a0 b.eq 5854 <_vfiprintf_r+0x1a44> // b.none
|
||
4384: 5100c001 sub w1, w0, #0x30
|
||
4388: aa0203f4 mov x20, x2
|
||
438c: 52800016 mov w22, #0x0 // #0
|
||
4390: 7100243f cmp w1, #0x9
|
||
4394: 54ffe4c8 b.hi 402c <_vfiprintf_r+0x21c> // b.pmore
|
||
4398: 38401680 ldrb w0, [x20], #1
|
||
439c: 0b160ac4 add w4, w22, w22, lsl #2
|
||
43a0: 0b040436 add w22, w1, w4, lsl #1
|
||
43a4: 5100c001 sub w1, w0, #0x30
|
||
43a8: 7100243f cmp w1, #0x9
|
||
43ac: 54ffff69 b.ls 4398 <_vfiprintf_r+0x588> // b.plast
|
||
43b0: 17ffff1f b 402c <_vfiprintf_r+0x21c>
|
||
43b4: 52800560 mov w0, #0x2b // #43
|
||
43b8: 3903bfe0 strb w0, [sp, #239]
|
||
43bc: 39400280 ldrb w0, [x20]
|
||
43c0: 17ffff1a b 4028 <_vfiprintf_r+0x218>
|
||
43c4: b940b3e0 ldr w0, [sp, #176]
|
||
43c8: 37f84da0 tbnz w0, #31, 4d7c <_vfiprintf_r+0xf6c>
|
||
43cc: f94037e0 ldr x0, [sp, #104]
|
||
43d0: 91002c00 add x0, x0, #0xb
|
||
43d4: 927df000 and x0, x0, #0xfffffffffffffff8
|
||
43d8: f94037e1 ldr x1, [sp, #104]
|
||
43dc: b9400021 ldr w1, [x1]
|
||
43e0: b90063e1 str w1, [sp, #96]
|
||
43e4: 37fffba1 tbnz w1, #31, 4358 <_vfiprintf_r+0x548>
|
||
43e8: f90037e0 str x0, [sp, #104]
|
||
43ec: 39400280 ldrb w0, [x20]
|
||
43f0: 17ffff0e b 4028 <_vfiprintf_r+0x218>
|
||
43f4: 2a1603e4 mov w4, w22
|
||
43f8: 321c0396 orr w22, w28, #0x10
|
||
43fc: b940b3e0 ldr w0, [sp, #176]
|
||
4400: 37280056 tbnz w22, #5, 4408 <_vfiprintf_r+0x5f8>
|
||
4404: 36204876 tbz w22, #4, 4d10 <_vfiprintf_r+0xf00>
|
||
4408: 37f85a40 tbnz w0, #31, 4f50 <_vfiprintf_r+0x1140>
|
||
440c: f94037e1 ldr x1, [sp, #104]
|
||
4410: 91003c20 add x0, x1, #0xf
|
||
4414: 927df000 and x0, x0, #0xfffffffffffffff8
|
||
4418: f90037e0 str x0, [sp, #104]
|
||
441c: f9400021 ldr x1, [x1]
|
||
4420: 52800020 mov w0, #0x1 // #1
|
||
4424: 3903bfff strb wzr, [sp, #239]
|
||
4428: 3100049f cmn w4, #0x1
|
||
442c: 54001320 b.eq 4690 <_vfiprintf_r+0x880> // b.none
|
||
4430: f100003f cmp x1, #0x0
|
||
4434: 12187adc and w28, w22, #0xffffff7f
|
||
4438: 7a400880 ccmp w4, #0x0, #0x0, eq // eq = none
|
||
443c: 54001261 b.ne 4688 <_vfiprintf_r+0x878> // b.any
|
||
4440: 35000660 cbnz w0, 450c <_vfiprintf_r+0x6fc>
|
||
4444: 120002d7 and w23, w22, #0x1
|
||
4448: 36003f56 tbz w22, #0, 4c30 <_vfiprintf_r+0xe20>
|
||
444c: 91062ffa add x26, sp, #0x18b
|
||
4450: 52800600 mov w0, #0x30 // #48
|
||
4454: 52800004 mov w4, #0x0 // #0
|
||
4458: 39062fe0 strb w0, [sp, #395]
|
||
445c: d503201f nop
|
||
4460: 6b17009f cmp w4, w23
|
||
4464: f9003bff str xzr, [sp, #112]
|
||
4468: 1a97a096 csel w22, w4, w23, ge // ge = tcont
|
||
446c: 3943bfe0 ldrb w0, [sp, #239]
|
||
4470: 7100001f cmp w0, #0x0
|
||
4474: 1a9606d6 cinc w22, w22, ne // ne = any
|
||
4478: 17fffef8 b 4058 <_vfiprintf_r+0x248>
|
||
447c: 39400280 ldrb w0, [x20]
|
||
4480: 3219039c orr w28, w28, #0x80
|
||
4484: 17fffee9 b 4028 <_vfiprintf_r+0x218>
|
||
4488: 2a1603e4 mov w4, w22
|
||
448c: 321c039c orr w28, w28, #0x10
|
||
4490: b940b3e0 ldr w0, [sp, #176]
|
||
4494: 3728005c tbnz w28, #5, 449c <_vfiprintf_r+0x68c>
|
||
4498: 362042dc tbz w28, #4, 4cf0 <_vfiprintf_r+0xee0>
|
||
449c: 37f85460 tbnz w0, #31, 4f28 <_vfiprintf_r+0x1118>
|
||
44a0: f94037e0 ldr x0, [sp, #104]
|
||
44a4: 91003c01 add x1, x0, #0xf
|
||
44a8: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
44ac: f90037e1 str x1, [sp, #104]
|
||
44b0: f9400001 ldr x1, [x0]
|
||
44b4: 12157b96 and w22, w28, #0xfffffbff
|
||
44b8: 52800000 mov w0, #0x0 // #0
|
||
44bc: 17ffffda b 4424 <_vfiprintf_r+0x614>
|
||
44c0: 2a1603e4 mov w4, w22
|
||
44c4: 321c039c orr w28, w28, #0x10
|
||
44c8: b940b3e0 ldr w0, [sp, #176]
|
||
44cc: 3728005c tbnz w28, #5, 44d4 <_vfiprintf_r+0x6c4>
|
||
44d0: 36203ffc tbz w28, #4, 4ccc <_vfiprintf_r+0xebc>
|
||
44d4: 37f85160 tbnz w0, #31, 4f00 <_vfiprintf_r+0x10f0>
|
||
44d8: f94037e0 ldr x0, [sp, #104]
|
||
44dc: 91003c01 add x1, x0, #0xf
|
||
44e0: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
44e4: f90037e1 str x1, [sp, #104]
|
||
44e8: f9400000 ldr x0, [x0]
|
||
44ec: aa0003e1 mov x1, x0
|
||
44f0: b7f83b80 tbnz x0, #63, 4c60 <_vfiprintf_r+0xe50>
|
||
44f4: 3100049f cmn w4, #0x1
|
||
44f8: 540036e0 b.eq 4bd4 <_vfiprintf_r+0xdc4> // b.none
|
||
44fc: 7100009f cmp w4, #0x0
|
||
4500: 12187b9c and w28, w28, #0xffffff7f
|
||
4504: fa400820 ccmp x1, #0x0, #0x0, eq // eq = none
|
||
4508: 54003661 b.ne 4bd4 <_vfiprintf_r+0xdc4> // b.any
|
||
450c: 910633fa add x26, sp, #0x18c
|
||
4510: 52800004 mov w4, #0x0 // #0
|
||
4514: 52800017 mov w23, #0x0 // #0
|
||
4518: 17ffffd2 b 4460 <_vfiprintf_r+0x650>
|
||
451c: aa1303e0 mov x0, x19
|
||
4520: 94000adc bl 7090 <_localeconv_r>
|
||
4524: f9400400 ldr x0, [x0, #8]
|
||
4528: f90053e0 str x0, [sp, #160]
|
||
452c: 94001555 bl 9a80 <strlen>
|
||
4530: aa0003e1 mov x1, x0
|
||
4534: aa0103f7 mov x23, x1
|
||
4538: aa1303e0 mov x0, x19
|
||
453c: f90057e1 str x1, [sp, #168]
|
||
4540: 94000ad4 bl 7090 <_localeconv_r>
|
||
4544: f9400800 ldr x0, [x0, #16]
|
||
4548: f9004fe0 str x0, [sp, #152]
|
||
454c: f10002ff cmp x23, #0x0
|
||
4550: fa401804 ccmp x0, #0x0, #0x4, ne // ne = any
|
||
4554: 54003b80 b.eq 4cc4 <_vfiprintf_r+0xeb4> // b.none
|
||
4558: 39400000 ldrb w0, [x0]
|
||
455c: 32160381 orr w1, w28, #0x400
|
||
4560: 7100001f cmp w0, #0x0
|
||
4564: 39400280 ldrb w0, [x20]
|
||
4568: 1a9c103c csel w28, w1, w28, ne // ne = any
|
||
456c: 17fffeaf b 4028 <_vfiprintf_r+0x218>
|
||
4570: 39400280 ldrb w0, [x20]
|
||
4574: 3200039c orr w28, w28, #0x1
|
||
4578: 17fffeac b 4028 <_vfiprintf_r+0x218>
|
||
457c: 3943bfe1 ldrb w1, [sp, #239]
|
||
4580: 39400280 ldrb w0, [x20]
|
||
4584: 35ffd521 cbnz w1, 4028 <_vfiprintf_r+0x218>
|
||
4588: 52800401 mov w1, #0x20 // #32
|
||
458c: 3903bfe1 strb w1, [sp, #239]
|
||
4590: 17fffea6 b 4028 <_vfiprintf_r+0x218>
|
||
4594: b940b3e0 ldr w0, [sp, #176]
|
||
4598: 372801bc tbnz w28, #5, 45cc <_vfiprintf_r+0x7bc>
|
||
459c: 3720019c tbnz w28, #4, 45cc <_vfiprintf_r+0x7bc>
|
||
45a0: 37306cfc tbnz w28, #6, 533c <_vfiprintf_r+0x152c>
|
||
45a4: 364889bc tbz w28, #9, 56d8 <_vfiprintf_r+0x18c8>
|
||
45a8: 37f89040 tbnz w0, #31, 57b0 <_vfiprintf_r+0x19a0>
|
||
45ac: f94037e0 ldr x0, [sp, #104]
|
||
45b0: 91003c01 add x1, x0, #0xf
|
||
45b4: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
45b8: f90037e1 str x1, [sp, #104]
|
||
45bc: f9400000 ldr x0, [x0]
|
||
45c0: 394193e1 ldrb w1, [sp, #100]
|
||
45c4: 39000001 strb w1, [x0]
|
||
45c8: 17fffe49 b 3eec <_vfiprintf_r+0xdc>
|
||
45cc: 37f84180 tbnz w0, #31, 4dfc <_vfiprintf_r+0xfec>
|
||
45d0: f94037e0 ldr x0, [sp, #104]
|
||
45d4: 91003c01 add x1, x0, #0xf
|
||
45d8: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
45dc: f90037e1 str x1, [sp, #104]
|
||
45e0: f9400000 ldr x0, [x0]
|
||
45e4: b98067e1 ldrsw x1, [sp, #100]
|
||
45e8: f9000001 str x1, [x0]
|
||
45ec: 17fffe40 b 3eec <_vfiprintf_r+0xdc>
|
||
45f0: 39400280 ldrb w0, [x20]
|
||
45f4: 7101b01f cmp w0, #0x6c
|
||
45f8: 54005960 b.eq 5124 <_vfiprintf_r+0x1314> // b.none
|
||
45fc: 321c039c orr w28, w28, #0x10
|
||
4600: 17fffe8a b 4028 <_vfiprintf_r+0x218>
|
||
4604: 39400280 ldrb w0, [x20]
|
||
4608: 7101a01f cmp w0, #0x68
|
||
460c: 54005840 b.eq 5114 <_vfiprintf_r+0x1304> // b.none
|
||
4610: 321a039c orr w28, w28, #0x40
|
||
4614: 17fffe85 b 4028 <_vfiprintf_r+0x218>
|
||
4618: 39400280 ldrb w0, [x20]
|
||
461c: 321b039c orr w28, w28, #0x20
|
||
4620: 17fffe82 b 4028 <_vfiprintf_r+0x218>
|
||
4624: b940b3e0 ldr w0, [sp, #176]
|
||
4628: 2a1603e4 mov w4, w22
|
||
462c: 37f83ba0 tbnz w0, #31, 4da0 <_vfiprintf_r+0xf90>
|
||
4630: f94037e2 ldr x2, [sp, #104]
|
||
4634: 91003c40 add x0, x2, #0xf
|
||
4638: 927df000 and x0, x0, #0xfffffffffffffff8
|
||
463c: f90037e0 str x0, [sp, #104]
|
||
4640: 528f0600 mov w0, #0x7830 // #30768
|
||
4644: f0000021 adrp x1, b000 <pow10.0+0x80>
|
||
4648: 9109c021 add x1, x1, #0x270
|
||
464c: 321f0396 orr w22, w28, #0x2
|
||
4650: f90047e1 str x1, [sp, #136]
|
||
4654: 7901e3e0 strh w0, [sp, #240]
|
||
4658: 52800040 mov w0, #0x2 // #2
|
||
465c: f9400041 ldr x1, [x2]
|
||
4660: 17ffff71 b 4424 <_vfiprintf_r+0x614>
|
||
4664: 910643fb add x27, sp, #0x190
|
||
4668: 93407ee0 sxtw x0, w23
|
||
466c: 52800021 mov w1, #0x1 // #1
|
||
4670: b9011be1 str w1, [sp, #280]
|
||
4674: f90093e0 str x0, [sp, #288]
|
||
4678: a91903fa stp x26, x0, [sp, #400]
|
||
467c: d503201f nop
|
||
4680: 91004365 add x5, x27, #0x10
|
||
4684: 17fffebb b 4170 <_vfiprintf_r+0x360>
|
||
4688: 2a1c03f6 mov w22, w28
|
||
468c: d503201f nop
|
||
4690: 7100041f cmp w0, #0x1
|
||
4694: 54002a20 b.eq 4bd8 <_vfiprintf_r+0xdc8> // b.none
|
||
4698: 910633f7 add x23, sp, #0x18c
|
||
469c: aa1703fa mov x26, x23
|
||
46a0: 7100081f cmp w0, #0x2
|
||
46a4: 54000161 b.ne 46d0 <_vfiprintf_r+0x8c0> // b.any
|
||
46a8: f94047e2 ldr x2, [sp, #136]
|
||
46ac: d503201f nop
|
||
46b0: 92400c20 and x0, x1, #0xf
|
||
46b4: d344fc21 lsr x1, x1, #4
|
||
46b8: 38606840 ldrb w0, [x2, x0]
|
||
46bc: 381fff40 strb w0, [x26, #-1]!
|
||
46c0: b5ffff81 cbnz x1, 46b0 <_vfiprintf_r+0x8a0>
|
||
46c4: 4b1a02f7 sub w23, w23, w26
|
||
46c8: 2a1603fc mov w28, w22
|
||
46cc: 17ffff65 b 4460 <_vfiprintf_r+0x650>
|
||
46d0: 12000820 and w0, w1, #0x7
|
||
46d4: aa1a03e2 mov x2, x26
|
||
46d8: 1100c000 add w0, w0, #0x30
|
||
46dc: 381fff40 strb w0, [x26, #-1]!
|
||
46e0: d343fc21 lsr x1, x1, #3
|
||
46e4: b5ffff61 cbnz x1, 46d0 <_vfiprintf_r+0x8c0>
|
||
46e8: 7100c01f cmp w0, #0x30
|
||
46ec: 1a9f07e0 cset w0, ne // ne = any
|
||
46f0: 6a0002df tst w22, w0
|
||
46f4: 54fffe80 b.eq 46c4 <_vfiprintf_r+0x8b4> // b.none
|
||
46f8: d1000842 sub x2, x2, #0x2
|
||
46fc: 52800600 mov w0, #0x30 // #48
|
||
4700: 2a1603fc mov w28, w22
|
||
4704: 4b0202f7 sub w23, w23, w2
|
||
4708: 381ff340 sturb w0, [x26, #-1]
|
||
470c: aa0203fa mov x26, x2
|
||
4710: 17ffff54 b 4460 <_vfiprintf_r+0x650>
|
||
4714: b94063e2 ldr w2, [sp, #96]
|
||
4718: 4b160058 sub w24, w2, w22
|
||
471c: 7100031f cmp w24, #0x0
|
||
4720: 54ffd04d b.le 4128 <_vfiprintf_r+0x318>
|
||
4724: 7100431f cmp w24, #0x10
|
||
4728: 540073cd b.le 55a0 <_vfiprintf_r+0x1790>
|
||
472c: 2a0103e3 mov w3, w1
|
||
4730: f0000029 adrp x9, b000 <pow10.0+0x80>
|
||
4734: aa1403e1 mov x1, x20
|
||
4738: 910dc129 add x9, x9, #0x370
|
||
473c: aa1303f4 mov x20, x19
|
||
4740: d2800208 mov x8, #0x10 // #16
|
||
4744: 2a1803f3 mov w19, w24
|
||
4748: aa0103f8 mov x24, x1
|
||
474c: b90093e4 str w4, [sp, #144]
|
||
4750: b900b7f6 str w22, [sp, #180]
|
||
4754: aa1903f6 mov x22, x25
|
||
4758: aa0903f9 mov x25, x9
|
||
475c: 14000007 b 4778 <_vfiprintf_r+0x968>
|
||
4760: 1100086a add w10, w3, #0x2
|
||
4764: 9100437b add x27, x27, #0x10
|
||
4768: 2a0203e3 mov w3, w2
|
||
476c: 51004273 sub w19, w19, #0x10
|
||
4770: 7100427f cmp w19, #0x10
|
||
4774: 540002cd b.le 47cc <_vfiprintf_r+0x9bc>
|
||
4778: 91004000 add x0, x0, #0x10
|
||
477c: 11000462 add w2, w3, #0x1
|
||
4780: a9002379 stp x25, x8, [x27]
|
||
4784: b9011be2 str w2, [sp, #280]
|
||
4788: f90093e0 str x0, [sp, #288]
|
||
478c: 71001c5f cmp w2, #0x7
|
||
4790: 54fffe8d b.le 4760 <_vfiprintf_r+0x950>
|
||
4794: b4000d60 cbz x0, 4940 <_vfiprintf_r+0xb30>
|
||
4798: 910443e2 add x2, sp, #0x110
|
||
479c: aa1603e1 mov x1, x22
|
||
47a0: aa1403e0 mov x0, x20
|
||
47a4: 97fffd5b bl 3d10 <__sprint_r.part.0>
|
||
47a8: 35004c60 cbnz w0, 5134 <_vfiprintf_r+0x1324>
|
||
47ac: b9411be3 ldr w3, [sp, #280]
|
||
47b0: 51004273 sub w19, w19, #0x10
|
||
47b4: 910643fb add x27, sp, #0x190
|
||
47b8: d2800208 mov x8, #0x10 // #16
|
||
47bc: 1100046a add w10, w3, #0x1
|
||
47c0: f94093e0 ldr x0, [sp, #288]
|
||
47c4: 7100427f cmp w19, #0x10
|
||
47c8: 54fffd8c b.gt 4778 <_vfiprintf_r+0x968>
|
||
47cc: aa1803e1 mov x1, x24
|
||
47d0: aa1903e9 mov x9, x25
|
||
47d4: b94093e4 ldr w4, [sp, #144]
|
||
47d8: aa1603f9 mov x25, x22
|
||
47dc: b940b7f6 ldr w22, [sp, #180]
|
||
47e0: 2a1303f8 mov w24, w19
|
||
47e4: aa1403f3 mov x19, x20
|
||
47e8: aa0103f4 mov x20, x1
|
||
47ec: 93407f01 sxtw x1, w24
|
||
47f0: a9000769 stp x9, x1, [x27]
|
||
47f4: 8b010000 add x0, x0, x1
|
||
47f8: b9011bea str w10, [sp, #280]
|
||
47fc: f90093e0 str x0, [sp, #288]
|
||
4800: 71001d5f cmp w10, #0x7
|
||
4804: 5400258d b.le 4cb4 <_vfiprintf_r+0xea4>
|
||
4808: b4005920 cbz x0, 532c <_vfiprintf_r+0x151c>
|
||
480c: 910443e2 add x2, sp, #0x110
|
||
4810: aa1903e1 mov x1, x25
|
||
4814: aa1303e0 mov x0, x19
|
||
4818: b90093e4 str w4, [sp, #144]
|
||
481c: 97fffd3d bl 3d10 <__sprint_r.part.0>
|
||
4820: 35ffd060 cbnz w0, 422c <_vfiprintf_r+0x41c>
|
||
4824: b94093e4 ldr w4, [sp, #144]
|
||
4828: 910643fb add x27, sp, #0x190
|
||
482c: b9411be1 ldr w1, [sp, #280]
|
||
4830: 4b170098 sub w24, w4, w23
|
||
4834: 11000428 add w8, w1, #0x1
|
||
4838: f94093e0 ldr x0, [sp, #288]
|
||
483c: 7100031f cmp w24, #0x0
|
||
4840: 54ffc7ad b.le 4134 <_vfiprintf_r+0x324>
|
||
4844: d503201f nop
|
||
4848: f0000029 adrp x9, b000 <pow10.0+0x80>
|
||
484c: 910dc129 add x9, x9, #0x370
|
||
4850: 7100431f cmp w24, #0x10
|
||
4854: 540004ed b.le 48f0 <_vfiprintf_r+0xae0>
|
||
4858: 2a0103e3 mov w3, w1
|
||
485c: d2800204 mov x4, #0x10 // #16
|
||
4860: f9004bf4 str x20, [sp, #144]
|
||
4864: aa1903f4 mov x20, x25
|
||
4868: aa1303f9 mov x25, x19
|
||
486c: aa0903f3 mov x19, x9
|
||
4870: 14000007 b 488c <_vfiprintf_r+0xa7c>
|
||
4874: 11000868 add w8, w3, #0x2
|
||
4878: 9100437b add x27, x27, #0x10
|
||
487c: 2a0203e3 mov w3, w2
|
||
4880: 51004318 sub w24, w24, #0x10
|
||
4884: 7100431f cmp w24, #0x10
|
||
4888: 540002cd b.le 48e0 <_vfiprintf_r+0xad0>
|
||
488c: 91004000 add x0, x0, #0x10
|
||
4890: 11000462 add w2, w3, #0x1
|
||
4894: a9001373 stp x19, x4, [x27]
|
||
4898: b9011be2 str w2, [sp, #280]
|
||
489c: f90093e0 str x0, [sp, #288]
|
||
48a0: 71001c5f cmp w2, #0x7
|
||
48a4: 54fffe8d b.le 4874 <_vfiprintf_r+0xa64>
|
||
48a8: b4000380 cbz x0, 4918 <_vfiprintf_r+0xb08>
|
||
48ac: 910443e2 add x2, sp, #0x110
|
||
48b0: aa1403e1 mov x1, x20
|
||
48b4: aa1903e0 mov x0, x25
|
||
48b8: 97fffd16 bl 3d10 <__sprint_r.part.0>
|
||
48bc: 35ffcb40 cbnz w0, 4224 <_vfiprintf_r+0x414>
|
||
48c0: b9411be3 ldr w3, [sp, #280]
|
||
48c4: 51004318 sub w24, w24, #0x10
|
||
48c8: 910643fb add x27, sp, #0x190
|
||
48cc: d2800204 mov x4, #0x10 // #16
|
||
48d0: 11000468 add w8, w3, #0x1
|
||
48d4: f94093e0 ldr x0, [sp, #288]
|
||
48d8: 7100431f cmp w24, #0x10
|
||
48dc: 54fffd8c b.gt 488c <_vfiprintf_r+0xa7c>
|
||
48e0: aa1303e9 mov x9, x19
|
||
48e4: aa1903f3 mov x19, x25
|
||
48e8: aa1403f9 mov x25, x20
|
||
48ec: f9404bf4 ldr x20, [sp, #144]
|
||
48f0: 93407f18 sxtw x24, w24
|
||
48f4: 8b180000 add x0, x0, x24
|
||
48f8: a9006369 stp x9, x24, [x27]
|
||
48fc: b9011be8 str w8, [sp, #280]
|
||
4900: f90093e0 str x0, [sp, #288]
|
||
4904: 71001d1f cmp w8, #0x7
|
||
4908: 5400178c b.gt 4bf8 <_vfiprintf_r+0xde8>
|
||
490c: 9100437b add x27, x27, #0x10
|
||
4910: 11000508 add w8, w8, #0x1
|
||
4914: 17fffe08 b 4134 <_vfiprintf_r+0x324>
|
||
4918: 910643fb add x27, sp, #0x190
|
||
491c: 52800028 mov w8, #0x1 // #1
|
||
4920: 52800003 mov w3, #0x0 // #0
|
||
4924: 17ffffd7 b 4880 <_vfiprintf_r+0xa70>
|
||
4928: 910443e2 add x2, sp, #0x110
|
||
492c: aa1903e1 mov x1, x25
|
||
4930: aa1303e0 mov x0, x19
|
||
4934: 97fffcf7 bl 3d10 <__sprint_r.part.0>
|
||
4938: 34ffc340 cbz w0, 41a0 <_vfiprintf_r+0x390>
|
||
493c: 17fffe3c b 422c <_vfiprintf_r+0x41c>
|
||
4940: 910643fb add x27, sp, #0x190
|
||
4944: 5280002a mov w10, #0x1 // #1
|
||
4948: 52800003 mov w3, #0x0 // #0
|
||
494c: 17ffff88 b 476c <_vfiprintf_r+0x95c>
|
||
4950: b4001760 cbz x0, 4c3c <_vfiprintf_r+0xe2c>
|
||
4954: 910443e2 add x2, sp, #0x110
|
||
4958: aa1903e1 mov x1, x25
|
||
495c: aa1303e0 mov x0, x19
|
||
4960: b90093ea str w10, [sp, #144]
|
||
4964: b900b7e4 str w4, [sp, #180]
|
||
4968: 97fffcea bl 3d10 <__sprint_r.part.0>
|
||
496c: 35ffc600 cbnz w0, 422c <_vfiprintf_r+0x41c>
|
||
4970: b9411be1 ldr w1, [sp, #280]
|
||
4974: 910643fb add x27, sp, #0x190
|
||
4978: b94093ea ldr w10, [sp, #144]
|
||
497c: b940b7e4 ldr w4, [sp, #180]
|
||
4980: 11000428 add w8, w1, #0x1
|
||
4984: f94093e0 ldr x0, [sp, #288]
|
||
4988: 17fffdd0 b 40c8 <_vfiprintf_r+0x2b8>
|
||
498c: 9103c3e0 add x0, sp, #0xf0
|
||
4990: d2800041 mov x1, #0x2 // #2
|
||
4994: 910643fb add x27, sp, #0x190
|
||
4998: a91907e0 stp x0, x1, [sp, #400]
|
||
499c: aa0103e0 mov x0, x1
|
||
49a0: 52800028 mov w8, #0x1 // #1
|
||
49a4: d503201f nop
|
||
49a8: 2a0803e1 mov w1, w8
|
||
49ac: 9100437b add x27, x27, #0x10
|
||
49b0: 11000428 add w8, w1, #0x1
|
||
49b4: 17fffddb b 4120 <_vfiprintf_r+0x310>
|
||
49b8: 7100413f cmp w9, #0x10
|
||
49bc: 54005c4d b.le 5544 <_vfiprintf_r+0x1734>
|
||
49c0: f0000028 adrp x8, b000 <pow10.0+0x80>
|
||
49c4: 910d8108 add x8, x8, #0x360
|
||
49c8: aa1b03e3 mov x3, x27
|
||
49cc: d280020c mov x12, #0x10 // #16
|
||
49d0: 2a1703fb mov w27, w23
|
||
49d4: 2a1603f7 mov w23, w22
|
||
49d8: aa0803f6 mov x22, x8
|
||
49dc: b90093ea str w10, [sp, #144]
|
||
49e0: b900b7e4 str w4, [sp, #180]
|
||
49e4: 2a0103e4 mov w4, w1
|
||
49e8: f9005ff4 str x20, [sp, #184]
|
||
49ec: aa1903f4 mov x20, x25
|
||
49f0: 2a0903f9 mov w25, w9
|
||
49f4: 14000008 b 4a14 <_vfiprintf_r+0xc04>
|
||
49f8: 1100088b add w11, w4, #0x2
|
||
49fc: 91004063 add x3, x3, #0x10
|
||
4a00: 2a0203e4 mov w4, w2
|
||
4a04: 51004339 sub w25, w25, #0x10
|
||
4a08: 7100433f cmp w25, #0x10
|
||
4a0c: 540002cd b.le 4a64 <_vfiprintf_r+0xc54>
|
||
4a10: 11000482 add w2, w4, #0x1
|
||
4a14: 91004000 add x0, x0, #0x10
|
||
4a18: a9003076 stp x22, x12, [x3]
|
||
4a1c: b9011be2 str w2, [sp, #280]
|
||
4a20: f90093e0 str x0, [sp, #288]
|
||
4a24: 71001c5f cmp w2, #0x7
|
||
4a28: 54fffe8d b.le 49f8 <_vfiprintf_r+0xbe8>
|
||
4a2c: b4000440 cbz x0, 4ab4 <_vfiprintf_r+0xca4>
|
||
4a30: 910443e2 add x2, sp, #0x110
|
||
4a34: aa1403e1 mov x1, x20
|
||
4a38: aa1303e0 mov x0, x19
|
||
4a3c: 97fffcb5 bl 3d10 <__sprint_r.part.0>
|
||
4a40: 35ffbf40 cbnz w0, 4228 <_vfiprintf_r+0x418>
|
||
4a44: b9411be4 ldr w4, [sp, #280]
|
||
4a48: 51004339 sub w25, w25, #0x10
|
||
4a4c: 910643e3 add x3, sp, #0x190
|
||
4a50: d280020c mov x12, #0x10 // #16
|
||
4a54: 1100048b add w11, w4, #0x1
|
||
4a58: f94093e0 ldr x0, [sp, #288]
|
||
4a5c: 7100433f cmp w25, #0x10
|
||
4a60: 54fffd8c b.gt 4a10 <_vfiprintf_r+0xc00>
|
||
4a64: 2a1903e9 mov w9, w25
|
||
4a68: b94093ea ldr w10, [sp, #144]
|
||
4a6c: aa1403f9 mov x25, x20
|
||
4a70: b940b7e4 ldr w4, [sp, #180]
|
||
4a74: f9405ff4 ldr x20, [sp, #184]
|
||
4a78: aa1603e8 mov x8, x22
|
||
4a7c: 2a1703f6 mov w22, w23
|
||
4a80: 2a1b03f7 mov w23, w27
|
||
4a84: aa0303fb mov x27, x3
|
||
4a88: 93407d21 sxtw x1, w9
|
||
4a8c: a9000768 stp x8, x1, [x27]
|
||
4a90: 8b010000 add x0, x0, x1
|
||
4a94: b9011beb str w11, [sp, #280]
|
||
4a98: f90093e0 str x0, [sp, #288]
|
||
4a9c: 71001d7f cmp w11, #0x7
|
||
4aa0: 54000ecc b.gt 4c78 <_vfiprintf_r+0xe68>
|
||
4aa4: 9100437b add x27, x27, #0x10
|
||
4aa8: 11000568 add w8, w11, #0x1
|
||
4aac: 2a0b03e1 mov w1, w11
|
||
4ab0: 17fffd78 b 4090 <_vfiprintf_r+0x280>
|
||
4ab4: 910643e3 add x3, sp, #0x190
|
||
4ab8: 52800004 mov w4, #0x0 // #0
|
||
4abc: 5280002b mov w11, #0x1 // #1
|
||
4ac0: 17ffffd1 b 4a04 <_vfiprintf_r+0xbf4>
|
||
4ac4: b9011bff str wzr, [sp, #280]
|
||
4ac8: 3610079c tbz w28, #2, 4bb8 <_vfiprintf_r+0xda8>
|
||
4acc: b94063e1 ldr w1, [sp, #96]
|
||
4ad0: 4b160037 sub w23, w1, w22
|
||
4ad4: 710002ff cmp w23, #0x0
|
||
4ad8: 5400070d b.le 4bb8 <_vfiprintf_r+0xda8>
|
||
4adc: 910643e5 add x5, sp, #0x190
|
||
4ae0: b9411be2 ldr w2, [sp, #280]
|
||
4ae4: 710042ff cmp w23, #0x10
|
||
4ae8: 5400546d b.le 5574 <_vfiprintf_r+0x1764>
|
||
4aec: f0000028 adrp x8, b000 <pow10.0+0x80>
|
||
4af0: 910d8108 add x8, x8, #0x360
|
||
4af4: aa0803fa mov x26, x8
|
||
4af8: d2800218 mov x24, #0x10 // #16
|
||
4afc: 14000007 b 4b18 <_vfiprintf_r+0xd08>
|
||
4b00: 11000844 add w4, w2, #0x2
|
||
4b04: 910040a5 add x5, x5, #0x10
|
||
4b08: 2a0303e2 mov w2, w3
|
||
4b0c: 510042f7 sub w23, w23, #0x10
|
||
4b10: 710042ff cmp w23, #0x10
|
||
4b14: 540002ad b.le 4b68 <_vfiprintf_r+0xd58>
|
||
4b18: 91004000 add x0, x0, #0x10
|
||
4b1c: 11000443 add w3, w2, #0x1
|
||
4b20: a90060ba stp x26, x24, [x5]
|
||
4b24: b9011be3 str w3, [sp, #280]
|
||
4b28: f90093e0 str x0, [sp, #288]
|
||
4b2c: 71001c7f cmp w3, #0x7
|
||
4b30: 54fffe8d b.le 4b00 <_vfiprintf_r+0xcf0>
|
||
4b34: b40003a0 cbz x0, 4ba8 <_vfiprintf_r+0xd98>
|
||
4b38: 910443e2 add x2, sp, #0x110
|
||
4b3c: aa1903e1 mov x1, x25
|
||
4b40: aa1303e0 mov x0, x19
|
||
4b44: 97fffc73 bl 3d10 <__sprint_r.part.0>
|
||
4b48: 35ffb720 cbnz w0, 422c <_vfiprintf_r+0x41c>
|
||
4b4c: b9411be2 ldr w2, [sp, #280]
|
||
4b50: 510042f7 sub w23, w23, #0x10
|
||
4b54: 910643e5 add x5, sp, #0x190
|
||
4b58: 11000444 add w4, w2, #0x1
|
||
4b5c: f94093e0 ldr x0, [sp, #288]
|
||
4b60: 710042ff cmp w23, #0x10
|
||
4b64: 54fffdac b.gt 4b18 <_vfiprintf_r+0xd08>
|
||
4b68: aa1a03e8 mov x8, x26
|
||
4b6c: 93407ef7 sxtw x23, w23
|
||
4b70: a9005ca8 stp x8, x23, [x5]
|
||
4b74: 8b170000 add x0, x0, x23
|
||
4b78: b9011be4 str w4, [sp, #280]
|
||
4b7c: f90093e0 str x0, [sp, #288]
|
||
4b80: 71001c9f cmp w4, #0x7
|
||
4b84: 54ffb00d b.le 4184 <_vfiprintf_r+0x374>
|
||
4b88: b4000180 cbz x0, 4bb8 <_vfiprintf_r+0xda8>
|
||
4b8c: 910443e2 add x2, sp, #0x110
|
||
4b90: aa1903e1 mov x1, x25
|
||
4b94: aa1303e0 mov x0, x19
|
||
4b98: 97fffc5e bl 3d10 <__sprint_r.part.0>
|
||
4b9c: 35ffb480 cbnz w0, 422c <_vfiprintf_r+0x41c>
|
||
4ba0: f94093e0 ldr x0, [sp, #288]
|
||
4ba4: 17fffd78 b 4184 <_vfiprintf_r+0x374>
|
||
4ba8: 910643e5 add x5, sp, #0x190
|
||
4bac: 52800024 mov w4, #0x1 // #1
|
||
4bb0: 52800002 mov w2, #0x0 // #0
|
||
4bb4: 17ffffd6 b 4b0c <_vfiprintf_r+0xcfc>
|
||
4bb8: b94063e0 ldr w0, [sp, #96]
|
||
4bbc: 6b16001f cmp w0, w22
|
||
4bc0: 1a96a003 csel w3, w0, w22, ge // ge = tcont
|
||
4bc4: b94067e0 ldr w0, [sp, #100]
|
||
4bc8: 0b030000 add w0, w0, w3
|
||
4bcc: b90067e0 str w0, [sp, #100]
|
||
4bd0: 17fffd74 b 41a0 <_vfiprintf_r+0x390>
|
||
4bd4: 2a1c03f6 mov w22, w28
|
||
4bd8: f100243f cmp x1, #0x9
|
||
4bdc: 540024c8 b.hi 5074 <_vfiprintf_r+0x1264> // b.pmore
|
||
4be0: 1100c021 add w1, w1, #0x30
|
||
4be4: 2a1603fc mov w28, w22
|
||
4be8: 91062ffa add x26, sp, #0x18b
|
||
4bec: 52800037 mov w23, #0x1 // #1
|
||
4bf0: 39062fe1 strb w1, [sp, #395]
|
||
4bf4: 17fffe1b b 4460 <_vfiprintf_r+0x650>
|
||
4bf8: b4ffd360 cbz x0, 4664 <_vfiprintf_r+0x854>
|
||
4bfc: 910443e2 add x2, sp, #0x110
|
||
4c00: aa1903e1 mov x1, x25
|
||
4c04: aa1303e0 mov x0, x19
|
||
4c08: 97fffc42 bl 3d10 <__sprint_r.part.0>
|
||
4c0c: 35ffb100 cbnz w0, 422c <_vfiprintf_r+0x41c>
|
||
4c10: b9411be8 ldr w8, [sp, #280]
|
||
4c14: 910643fb add x27, sp, #0x190
|
||
4c18: f94093e0 ldr x0, [sp, #288]
|
||
4c1c: 11000508 add w8, w8, #0x1
|
||
4c20: 17fffd45 b 4134 <_vfiprintf_r+0x324>
|
||
4c24: 910643fb add x27, sp, #0x190
|
||
4c28: b9011bff str wzr, [sp, #280]
|
||
4c2c: 17fffcf4 b 3ffc <_vfiprintf_r+0x1ec>
|
||
4c30: 910633fa add x26, sp, #0x18c
|
||
4c34: 52800004 mov w4, #0x0 // #0
|
||
4c38: 17fffe0a b 4460 <_vfiprintf_r+0x650>
|
||
4c3c: 350007ca cbnz w10, 4d34 <_vfiprintf_r+0xf24>
|
||
4c40: 910643fb add x27, sp, #0x190
|
||
4c44: 52800001 mov w1, #0x0 // #0
|
||
4c48: 52800028 mov w8, #0x1 // #1
|
||
4c4c: 17fffd35 b 4120 <_vfiprintf_r+0x310>
|
||
4c50: 910643fb add x27, sp, #0x190
|
||
4c54: 52800028 mov w8, #0x1 // #1
|
||
4c58: 52800001 mov w1, #0x0 // #0
|
||
4c5c: 17fffd31 b 4120 <_vfiprintf_r+0x310>
|
||
4c60: 528005a0 mov w0, #0x2d // #45
|
||
4c64: cb0103e1 neg x1, x1
|
||
4c68: 2a1c03f6 mov w22, w28
|
||
4c6c: 3903bfe0 strb w0, [sp, #239]
|
||
4c70: 52800020 mov w0, #0x1 // #1
|
||
4c74: 17fffded b 4428 <_vfiprintf_r+0x618>
|
||
4c78: b4000d60 cbz x0, 4e24 <_vfiprintf_r+0x1014>
|
||
4c7c: 910443e2 add x2, sp, #0x110
|
||
4c80: aa1903e1 mov x1, x25
|
||
4c84: aa1303e0 mov x0, x19
|
||
4c88: b90093ea str w10, [sp, #144]
|
||
4c8c: b900b7e4 str w4, [sp, #180]
|
||
4c90: 97fffc20 bl 3d10 <__sprint_r.part.0>
|
||
4c94: 35ffacc0 cbnz w0, 422c <_vfiprintf_r+0x41c>
|
||
4c98: b9411be1 ldr w1, [sp, #280]
|
||
4c9c: 910643fb add x27, sp, #0x190
|
||
4ca0: b94093ea ldr w10, [sp, #144]
|
||
4ca4: b940b7e4 ldr w4, [sp, #180]
|
||
4ca8: 11000428 add w8, w1, #0x1
|
||
4cac: f94093e0 ldr x0, [sp, #288]
|
||
4cb0: 17fffcf8 b 4090 <_vfiprintf_r+0x280>
|
||
4cb4: 9100437b add x27, x27, #0x10
|
||
4cb8: 11000548 add w8, w10, #0x1
|
||
4cbc: 2a0a03e1 mov w1, w10
|
||
4cc0: 17fffd1a b 4128 <_vfiprintf_r+0x318>
|
||
4cc4: 39400280 ldrb w0, [x20]
|
||
4cc8: 17fffcd8 b 4028 <_vfiprintf_r+0x218>
|
||
4ccc: 36302a9c tbz w28, #6, 521c <_vfiprintf_r+0x140c>
|
||
4cd0: 37f83d20 tbnz w0, #31, 5474 <_vfiprintf_r+0x1664>
|
||
4cd4: f94037e0 ldr x0, [sp, #104]
|
||
4cd8: 91002c01 add x1, x0, #0xb
|
||
4cdc: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
4ce0: f90037e1 str x1, [sp, #104]
|
||
4ce4: 79800001 ldrsh x1, [x0]
|
||
4ce8: aa0103e0 mov x0, x1
|
||
4cec: 17fffe01 b 44f0 <_vfiprintf_r+0x6e0>
|
||
4cf0: 3630247c tbz w28, #6, 517c <_vfiprintf_r+0x136c>
|
||
4cf4: 37f83960 tbnz w0, #31, 5420 <_vfiprintf_r+0x1610>
|
||
4cf8: f94037e0 ldr x0, [sp, #104]
|
||
4cfc: 91002c01 add x1, x0, #0xb
|
||
4d00: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
4d04: f90037e1 str x1, [sp, #104]
|
||
4d08: 79400001 ldrh w1, [x0]
|
||
4d0c: 17fffdea b 44b4 <_vfiprintf_r+0x6a4>
|
||
4d10: 36302476 tbz w22, #6, 519c <_vfiprintf_r+0x138c>
|
||
4d14: 37f839c0 tbnz w0, #31, 544c <_vfiprintf_r+0x163c>
|
||
4d18: f94037e0 ldr x0, [sp, #104]
|
||
4d1c: 91002c01 add x1, x0, #0xb
|
||
4d20: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
4d24: f90037e1 str x1, [sp, #104]
|
||
4d28: 79400001 ldrh w1, [x0]
|
||
4d2c: 52800020 mov w0, #0x1 // #1
|
||
4d30: 17fffdbd b 4424 <_vfiprintf_r+0x614>
|
||
4d34: 9103c3e0 add x0, sp, #0xf0
|
||
4d38: d2800042 mov x2, #0x2 // #2
|
||
4d3c: 910643fb add x27, sp, #0x190
|
||
4d40: 52800021 mov w1, #0x1 // #1
|
||
4d44: a9190be0 stp x0, x2, [sp, #400]
|
||
4d48: aa0203e0 mov x0, x2
|
||
4d4c: 17ffff18 b 49ac <_vfiprintf_r+0xb9c>
|
||
4d50: 2a1603e4 mov w4, w22
|
||
4d54: 17fffddd b 44c8 <_vfiprintf_r+0x6b8>
|
||
4d58: b940b3e1 ldr w1, [sp, #176]
|
||
4d5c: 11002021 add w1, w1, #0x8
|
||
4d60: 7100003f cmp w1, #0x0
|
||
4d64: 54002d6d b.le 5310 <_vfiprintf_r+0x1500>
|
||
4d68: f94037e2 ldr x2, [sp, #104]
|
||
4d6c: b900b3e1 str w1, [sp, #176]
|
||
4d70: 91003c58 add x24, x2, #0xf
|
||
4d74: 927df318 and x24, x24, #0xfffffffffffffff8
|
||
4d78: 17fffd46 b 4290 <_vfiprintf_r+0x480>
|
||
4d7c: b940b3e0 ldr w0, [sp, #176]
|
||
4d80: 11002001 add w1, w0, #0x8
|
||
4d84: 7100003f cmp w1, #0x0
|
||
4d88: 54002a2d b.le 52cc <_vfiprintf_r+0x14bc>
|
||
4d8c: f94037e0 ldr x0, [sp, #104]
|
||
4d90: b900b3e1 str w1, [sp, #176]
|
||
4d94: 91002c00 add x0, x0, #0xb
|
||
4d98: 927df000 and x0, x0, #0xfffffffffffffff8
|
||
4d9c: 17fffd8f b 43d8 <_vfiprintf_r+0x5c8>
|
||
4da0: b940b3e0 ldr w0, [sp, #176]
|
||
4da4: 11002000 add w0, w0, #0x8
|
||
4da8: 7100001f cmp w0, #0x0
|
||
4dac: 5400286d b.le 52b8 <_vfiprintf_r+0x14a8>
|
||
4db0: f94037e2 ldr x2, [sp, #104]
|
||
4db4: b900b3e0 str w0, [sp, #176]
|
||
4db8: 91003c41 add x1, x2, #0xf
|
||
4dbc: 927df020 and x0, x1, #0xfffffffffffffff8
|
||
4dc0: f90037e0 str x0, [sp, #104]
|
||
4dc4: 17fffe1f b 4640 <_vfiprintf_r+0x830>
|
||
4dc8: b940b3e0 ldr w0, [sp, #176]
|
||
4dcc: 37f828e0 tbnz w0, #31, 52e8 <_vfiprintf_r+0x14d8>
|
||
4dd0: f94037e0 ldr x0, [sp, #104]
|
||
4dd4: 91002c01 add x1, x0, #0xb
|
||
4dd8: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
4ddc: f90037e1 str x1, [sp, #104]
|
||
4de0: b9400000 ldr w0, [x0]
|
||
4de4: 52800036 mov w22, #0x1 // #1
|
||
4de8: 9104a3fa add x26, sp, #0x128
|
||
4dec: 2a1603f7 mov w23, w22
|
||
4df0: 3903bfff strb wzr, [sp, #239]
|
||
4df4: 3904a3e0 strb w0, [sp, #296]
|
||
4df8: 17fffc96 b 4050 <_vfiprintf_r+0x240>
|
||
4dfc: b940b3e0 ldr w0, [sp, #176]
|
||
4e00: 11002001 add w1, w0, #0x8
|
||
4e04: 7100003f cmp w1, #0x0
|
||
4e08: 5400394d b.le 5530 <_vfiprintf_r+0x1720>
|
||
4e0c: f94037e0 ldr x0, [sp, #104]
|
||
4e10: b900b3e1 str w1, [sp, #176]
|
||
4e14: 91003c02 add x2, x0, #0xf
|
||
4e18: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
4e1c: f90037e1 str x1, [sp, #104]
|
||
4e20: 17fffdf0 b 45e0 <_vfiprintf_r+0x7d0>
|
||
4e24: 3943bfe1 ldrb w1, [sp, #239]
|
||
4e28: 35002d81 cbnz w1, 53d8 <_vfiprintf_r+0x15c8>
|
||
4e2c: 35ffdb0a cbnz w10, 498c <_vfiprintf_r+0xb7c>
|
||
4e30: 910643fb add x27, sp, #0x190
|
||
4e34: 52800001 mov w1, #0x0 // #0
|
||
4e38: 52800028 mov w8, #0x1 // #1
|
||
4e3c: 17fffcbb b 4128 <_vfiprintf_r+0x318>
|
||
4e40: 2a1603e4 mov w4, w22
|
||
4e44: 2a1c03f6 mov w22, w28
|
||
4e48: 17fffd6d b 43fc <_vfiprintf_r+0x5ec>
|
||
4e4c: 2a1603e4 mov w4, w22
|
||
4e50: f0000021 adrp x1, b000 <pow10.0+0x80>
|
||
4e54: 9109c021 add x1, x1, #0x270
|
||
4e58: f90047e1 str x1, [sp, #136]
|
||
4e5c: b940b3e1 ldr w1, [sp, #176]
|
||
4e60: 3728023c tbnz w28, #5, 4ea4 <_vfiprintf_r+0x1094>
|
||
4e64: 3720021c tbnz w28, #4, 4ea4 <_vfiprintf_r+0x1094>
|
||
4e68: 36301b7c tbz w28, #6, 51d4 <_vfiprintf_r+0x13c4>
|
||
4e6c: 37f82c41 tbnz w1, #31, 53f4 <_vfiprintf_r+0x15e4>
|
||
4e70: f94037e1 ldr x1, [sp, #104]
|
||
4e74: 91002c22 add x2, x1, #0xb
|
||
4e78: 927df042 and x2, x2, #0xfffffffffffffff8
|
||
4e7c: 79400021 ldrh w1, [x1]
|
||
4e80: f90037e2 str x2, [sp, #104]
|
||
4e84: 1400000e b 4ebc <_vfiprintf_r+0x10ac>
|
||
4e88: f0000021 adrp x1, b000 <pow10.0+0x80>
|
||
4e8c: 2a1603e4 mov w4, w22
|
||
4e90: 910a2021 add x1, x1, #0x288
|
||
4e94: f90047e1 str x1, [sp, #136]
|
||
4e98: 17fffff1 b 4e5c <_vfiprintf_r+0x104c>
|
||
4e9c: 2a1603e4 mov w4, w22
|
||
4ea0: 17fffd7c b 4490 <_vfiprintf_r+0x680>
|
||
4ea4: 37f801a1 tbnz w1, #31, 4ed8 <_vfiprintf_r+0x10c8>
|
||
4ea8: f94037e1 ldr x1, [sp, #104]
|
||
4eac: 91003c22 add x2, x1, #0xf
|
||
4eb0: 927df042 and x2, x2, #0xfffffffffffffff8
|
||
4eb4: f90037e2 str x2, [sp, #104]
|
||
4eb8: f9400021 ldr x1, [x1]
|
||
4ebc: f100003f cmp x1, #0x0
|
||
4ec0: 1a9f07e2 cset w2, ne // ne = any
|
||
4ec4: 6a02039f tst w28, w2
|
||
4ec8: 54000581 b.ne 4f78 <_vfiprintf_r+0x1168> // b.any
|
||
4ecc: 12157b96 and w22, w28, #0xfffffbff
|
||
4ed0: 52800040 mov w0, #0x2 // #2
|
||
4ed4: 17fffd54 b 4424 <_vfiprintf_r+0x614>
|
||
4ed8: b940b3e1 ldr w1, [sp, #176]
|
||
4edc: 11002022 add w2, w1, #0x8
|
||
4ee0: 7100005f cmp w2, #0x0
|
||
4ee4: 540016ed b.le 51c0 <_vfiprintf_r+0x13b0>
|
||
4ee8: f94037e1 ldr x1, [sp, #104]
|
||
4eec: b900b3e2 str w2, [sp, #176]
|
||
4ef0: 91003c23 add x3, x1, #0xf
|
||
4ef4: 927df062 and x2, x3, #0xfffffffffffffff8
|
||
4ef8: f90037e2 str x2, [sp, #104]
|
||
4efc: 17ffffef b 4eb8 <_vfiprintf_r+0x10a8>
|
||
4f00: b940b3e0 ldr w0, [sp, #176]
|
||
4f04: 11002001 add w1, w0, #0x8
|
||
4f08: 7100003f cmp w1, #0x0
|
||
4f0c: 540017ed b.le 5208 <_vfiprintf_r+0x13f8>
|
||
4f10: f94037e0 ldr x0, [sp, #104]
|
||
4f14: b900b3e1 str w1, [sp, #176]
|
||
4f18: 91003c02 add x2, x0, #0xf
|
||
4f1c: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
4f20: f90037e1 str x1, [sp, #104]
|
||
4f24: 17fffd71 b 44e8 <_vfiprintf_r+0x6d8>
|
||
4f28: b940b3e0 ldr w0, [sp, #176]
|
||
4f2c: 11002001 add w1, w0, #0x8
|
||
4f30: 7100003f cmp w1, #0x0
|
||
4f34: 5400186d b.le 5240 <_vfiprintf_r+0x1430>
|
||
4f38: f94037e0 ldr x0, [sp, #104]
|
||
4f3c: b900b3e1 str w1, [sp, #176]
|
||
4f40: 91003c02 add x2, x0, #0xf
|
||
4f44: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
4f48: f90037e1 str x1, [sp, #104]
|
||
4f4c: 17fffd59 b 44b0 <_vfiprintf_r+0x6a0>
|
||
4f50: b940b3e0 ldr w0, [sp, #176]
|
||
4f54: 11002000 add w0, w0, #0x8
|
||
4f58: 7100001f cmp w0, #0x0
|
||
4f5c: 540014cd b.le 51f4 <_vfiprintf_r+0x13e4>
|
||
4f60: f94037e1 ldr x1, [sp, #104]
|
||
4f64: b900b3e0 str w0, [sp, #176]
|
||
4f68: 91003c22 add x2, x1, #0xf
|
||
4f6c: 927df040 and x0, x2, #0xfffffffffffffff8
|
||
4f70: f90037e0 str x0, [sp, #104]
|
||
4f74: 17fffd2a b 441c <_vfiprintf_r+0x60c>
|
||
4f78: 321f039c orr w28, w28, #0x2
|
||
4f7c: 3903c7e0 strb w0, [sp, #241]
|
||
4f80: 52800600 mov w0, #0x30 // #48
|
||
4f84: 3903c3e0 strb w0, [sp, #240]
|
||
4f88: 17ffffd1 b 4ecc <_vfiprintf_r+0x10bc>
|
||
4f8c: 910403e0 add x0, sp, #0x100
|
||
4f90: d2800102 mov x2, #0x8 // #8
|
||
4f94: 52800001 mov w1, #0x0 // #0
|
||
4f98: b9006be4 str w4, [sp, #104]
|
||
4f9c: f90087fa str x26, [sp, #264]
|
||
4fa0: 97fffac8 bl 3ac0 <memset>
|
||
4fa4: b9406be4 ldr w4, [sp, #104]
|
||
4fa8: 3100049f cmn w4, #0x1
|
||
4fac: 54001680 b.eq 527c <_vfiprintf_r+0x146c> // b.none
|
||
4fb0: d2800016 mov x22, #0x0 // #0
|
||
4fb4: 52800017 mov w23, #0x0 // #0
|
||
4fb8: aa1603e0 mov x0, x22
|
||
4fbc: 2a1703f6 mov w22, w23
|
||
4fc0: aa0003f7 mov x23, x0
|
||
4fc4: f90037f4 str x20, [sp, #104]
|
||
4fc8: 2a0403f4 mov w20, w4
|
||
4fcc: 1400000d b 5000 <_vfiprintf_r+0x11f0>
|
||
4fd0: 910403e3 add x3, sp, #0x100
|
||
4fd4: 9104a3e1 add x1, sp, #0x128
|
||
4fd8: aa1303e0 mov x0, x19
|
||
4fdc: 940002a9 bl 5a80 <_wcrtomb_r>
|
||
4fe0: 3100041f cmn w0, #0x1
|
||
4fe4: 54002d60 b.eq 5590 <_vfiprintf_r+0x1780> // b.none
|
||
4fe8: 0b0002c0 add w0, w22, w0
|
||
4fec: 6b14001f cmp w0, w20
|
||
4ff0: 540000ec b.gt 500c <_vfiprintf_r+0x11fc>
|
||
4ff4: 910012f7 add x23, x23, #0x4
|
||
4ff8: 54003820 b.eq 56fc <_vfiprintf_r+0x18ec> // b.none
|
||
4ffc: 2a0003f6 mov w22, w0
|
||
5000: f94087e0 ldr x0, [sp, #264]
|
||
5004: b8776802 ldr w2, [x0, x23]
|
||
5008: 35fffe42 cbnz w2, 4fd0 <_vfiprintf_r+0x11c0>
|
||
500c: f94037f4 ldr x20, [sp, #104]
|
||
5010: 2a1603f7 mov w23, w22
|
||
5014: 340014b7 cbz w23, 52a8 <_vfiprintf_r+0x1498>
|
||
5018: 71018eff cmp w23, #0x63
|
||
501c: 540024ac b.gt 54b0 <_vfiprintf_r+0x16a0>
|
||
5020: 9104a3fa add x26, sp, #0x128
|
||
5024: f9003bff str xzr, [sp, #112]
|
||
5028: 93407ef6 sxtw x22, w23
|
||
502c: d2800102 mov x2, #0x8 // #8
|
||
5030: 52800001 mov w1, #0x0 // #0
|
||
5034: 910403e0 add x0, sp, #0x100
|
||
5038: 97fffaa2 bl 3ac0 <memset>
|
||
503c: 910403e4 add x4, sp, #0x100
|
||
5040: aa1603e3 mov x3, x22
|
||
5044: 910423e2 add x2, sp, #0x108
|
||
5048: aa1a03e1 mov x1, x26
|
||
504c: aa1303e0 mov x0, x19
|
||
5050: 940002d8 bl 5bb0 <_wcsrtombs_r>
|
||
5054: eb0002df cmp x22, x0
|
||
5058: 54004761 b.ne 5944 <_vfiprintf_r+0x1b34> // b.any
|
||
505c: 710002ff cmp w23, #0x0
|
||
5060: 52800004 mov w4, #0x0 // #0
|
||
5064: 1a9fa2f6 csel w22, w23, wzr, ge // ge = tcont
|
||
5068: 3837cb5f strb wzr, [x26, w23, sxtw]
|
||
506c: f90037f8 str x24, [sp, #104]
|
||
5070: 17fffcff b 446c <_vfiprintf_r+0x65c>
|
||
5074: 910633f7 add x23, sp, #0x18c
|
||
5078: 121602c6 and w6, w22, #0x400
|
||
507c: b202e7fc mov x28, #0xcccccccccccccccc // #-3689348814741910324
|
||
5080: aa1703e2 mov x2, x23
|
||
5084: aa1403e3 mov x3, x20
|
||
5088: aa1703e5 mov x5, x23
|
||
508c: 52800008 mov w8, #0x0 // #0
|
||
5090: aa1303f7 mov x23, x19
|
||
5094: f29999bc movk x28, #0xcccd
|
||
5098: 2a0603f3 mov w19, w6
|
||
509c: f9404ff4 ldr x20, [sp, #152]
|
||
50a0: 14000007 b 50bc <_vfiprintf_r+0x12ac>
|
||
50a4: 9bdc7c38 umulh x24, x1, x28
|
||
50a8: d343ff18 lsr x24, x24, #3
|
||
50ac: f100243f cmp x1, #0x9
|
||
50b0: 54000249 b.ls 50f8 <_vfiprintf_r+0x12e8> // b.plast
|
||
50b4: aa1803e1 mov x1, x24
|
||
50b8: aa1a03e2 mov x2, x26
|
||
50bc: 9bdc7c38 umulh x24, x1, x28
|
||
50c0: 11000508 add w8, w8, #0x1
|
||
50c4: d100045a sub x26, x2, #0x1
|
||
50c8: d343ff18 lsr x24, x24, #3
|
||
50cc: 8b180b00 add x0, x24, x24, lsl #2
|
||
50d0: cb000420 sub x0, x1, x0, lsl #1
|
||
50d4: 1100c000 add w0, w0, #0x30
|
||
50d8: 381ff040 sturb w0, [x2, #-1]
|
||
50dc: 34fffe53 cbz w19, 50a4 <_vfiprintf_r+0x1294>
|
||
50e0: 39400280 ldrb w0, [x20]
|
||
50e4: 7103fc1f cmp w0, #0xff
|
||
50e8: 7a481000 ccmp w0, w8, #0x0, ne // ne = any
|
||
50ec: 54fffdc1 b.ne 50a4 <_vfiprintf_r+0x1294> // b.any
|
||
50f0: f100243f cmp x1, #0x9
|
||
50f4: 54002028 b.hi 54f8 <_vfiprintf_r+0x16e8> // b.pmore
|
||
50f8: aa1703f3 mov x19, x23
|
||
50fc: aa0503f7 mov x23, x5
|
||
5100: 4b1a02f7 sub w23, w23, w26
|
||
5104: 2a1603fc mov w28, w22
|
||
5108: f9004ff4 str x20, [sp, #152]
|
||
510c: aa0303f4 mov x20, x3
|
||
5110: 17fffcd4 b 4460 <_vfiprintf_r+0x650>
|
||
5114: 39400680 ldrb w0, [x20, #1]
|
||
5118: 3217039c orr w28, w28, #0x200
|
||
511c: 91000694 add x20, x20, #0x1
|
||
5120: 17fffbc2 b 4028 <_vfiprintf_r+0x218>
|
||
5124: 39400680 ldrb w0, [x20, #1]
|
||
5128: 321b039c orr w28, w28, #0x20
|
||
512c: 91000694 add x20, x20, #0x1
|
||
5130: 17fffbbe b 4028 <_vfiprintf_r+0x218>
|
||
5134: aa1403f3 mov x19, x20
|
||
5138: aa1603f9 mov x25, x22
|
||
513c: 17fffc3c b 422c <_vfiprintf_r+0x41c>
|
||
5140: 7100189f cmp w4, #0x6
|
||
5144: 528000d7 mov w23, #0x6 // #6
|
||
5148: 1a979097 csel w23, w4, w23, ls // ls = plast
|
||
514c: d0000027 adrp x7, b000 <pow10.0+0x80>
|
||
5150: 2a1703f6 mov w22, w23
|
||
5154: 910a80fa add x26, x7, #0x2a0
|
||
5158: f90037f8 str x24, [sp, #104]
|
||
515c: 17fffbbd b 4050 <_vfiprintf_r+0x240>
|
||
5160: f94093e0 ldr x0, [sp, #288]
|
||
5164: b4ff86e0 cbz x0, 4240 <_vfiprintf_r+0x430>
|
||
5168: aa1303e0 mov x0, x19
|
||
516c: 910443e2 add x2, sp, #0x110
|
||
5170: aa1903e1 mov x1, x25
|
||
5174: 97fffae7 bl 3d10 <__sprint_r.part.0>
|
||
5178: 17fffc32 b 4240 <_vfiprintf_r+0x430>
|
||
517c: 3648101c tbz w28, #9, 537c <_vfiprintf_r+0x156c>
|
||
5180: 37f822e0 tbnz w0, #31, 55dc <_vfiprintf_r+0x17cc>
|
||
5184: f94037e0 ldr x0, [sp, #104]
|
||
5188: 91002c01 add x1, x0, #0xb
|
||
518c: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
5190: f90037e1 str x1, [sp, #104]
|
||
5194: 39400001 ldrb w1, [x0]
|
||
5198: 17fffcc7 b 44b4 <_vfiprintf_r+0x6a4>
|
||
519c: 364810f6 tbz w22, #9, 53b8 <_vfiprintf_r+0x15a8>
|
||
51a0: 37f82880 tbnz w0, #31, 56b0 <_vfiprintf_r+0x18a0>
|
||
51a4: f94037e0 ldr x0, [sp, #104]
|
||
51a8: 91002c01 add x1, x0, #0xb
|
||
51ac: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
51b0: f90037e1 str x1, [sp, #104]
|
||
51b4: 39400001 ldrb w1, [x0]
|
||
51b8: 52800020 mov w0, #0x1 // #1
|
||
51bc: 17fffc9a b 4424 <_vfiprintf_r+0x614>
|
||
51c0: f94043e3 ldr x3, [sp, #128]
|
||
51c4: b940b3e1 ldr w1, [sp, #176]
|
||
51c8: b900b3e2 str w2, [sp, #176]
|
||
51cc: 8b21c061 add x1, x3, w1, sxtw
|
||
51d0: 17ffff3a b 4eb8 <_vfiprintf_r+0x10a8>
|
||
51d4: 36480c7c tbz w28, #9, 5360 <_vfiprintf_r+0x1550>
|
||
51d8: 37f82421 tbnz w1, #31, 565c <_vfiprintf_r+0x184c>
|
||
51dc: f94037e1 ldr x1, [sp, #104]
|
||
51e0: 91002c22 add x2, x1, #0xb
|
||
51e4: 927df042 and x2, x2, #0xfffffffffffffff8
|
||
51e8: 39400021 ldrb w1, [x1]
|
||
51ec: f90037e2 str x2, [sp, #104]
|
||
51f0: 17ffff33 b 4ebc <_vfiprintf_r+0x10ac>
|
||
51f4: f94043e2 ldr x2, [sp, #128]
|
||
51f8: b940b3e1 ldr w1, [sp, #176]
|
||
51fc: b900b3e0 str w0, [sp, #176]
|
||
5200: 8b21c041 add x1, x2, w1, sxtw
|
||
5204: 17fffc86 b 441c <_vfiprintf_r+0x60c>
|
||
5208: f94043e2 ldr x2, [sp, #128]
|
||
520c: b940b3e0 ldr w0, [sp, #176]
|
||
5210: b900b3e1 str w1, [sp, #176]
|
||
5214: 8b20c040 add x0, x2, w0, sxtw
|
||
5218: 17fffcb4 b 44e8 <_vfiprintf_r+0x6d8>
|
||
521c: 36480bfc tbz w28, #9, 5398 <_vfiprintf_r+0x1588>
|
||
5220: 37f820a0 tbnz w0, #31, 5634 <_vfiprintf_r+0x1824>
|
||
5224: f94037e0 ldr x0, [sp, #104]
|
||
5228: 91002c01 add x1, x0, #0xb
|
||
522c: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
5230: f90037e1 str x1, [sp, #104]
|
||
5234: 39800001 ldrsb x1, [x0]
|
||
5238: aa0103e0 mov x0, x1
|
||
523c: 17fffcad b 44f0 <_vfiprintf_r+0x6e0>
|
||
5240: f94043e2 ldr x2, [sp, #128]
|
||
5244: b940b3e0 ldr w0, [sp, #176]
|
||
5248: b900b3e1 str w1, [sp, #176]
|
||
524c: 8b20c040 add x0, x2, w0, sxtw
|
||
5250: 17fffc98 b 44b0 <_vfiprintf_r+0x6a0>
|
||
5254: b940b3e0 ldr w0, [sp, #176]
|
||
5258: 11002001 add w1, w0, #0x8
|
||
525c: 7100003f cmp w1, #0x0
|
||
5260: 540011ed b.le 549c <_vfiprintf_r+0x168c>
|
||
5264: f94037e0 ldr x0, [sp, #104]
|
||
5268: b900b3e1 str w1, [sp, #176]
|
||
526c: 91002c02 add x2, x0, #0xb
|
||
5270: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
5274: f90037e1 str x1, [sp, #104]
|
||
5278: 17fffc2b b 4324 <_vfiprintf_r+0x514>
|
||
527c: 910403e4 add x4, sp, #0x100
|
||
5280: 910423e2 add x2, sp, #0x108
|
||
5284: aa1303e0 mov x0, x19
|
||
5288: d2800003 mov x3, #0x0 // #0
|
||
528c: d2800001 mov x1, #0x0 // #0
|
||
5290: 94000248 bl 5bb0 <_wcsrtombs_r>
|
||
5294: 2a0003f7 mov w23, w0
|
||
5298: 3100041f cmn w0, #0x1
|
||
529c: 540017a0 b.eq 5590 <_vfiprintf_r+0x1780> // b.none
|
||
52a0: f90087fa str x26, [sp, #264]
|
||
52a4: 17ffff5c b 5014 <_vfiprintf_r+0x1204>
|
||
52a8: 52800016 mov w22, #0x0 // #0
|
||
52ac: 52800004 mov w4, #0x0 // #0
|
||
52b0: a906fff8 stp x24, xzr, [sp, #104]
|
||
52b4: 17fffc6e b 446c <_vfiprintf_r+0x65c>
|
||
52b8: f94043e2 ldr x2, [sp, #128]
|
||
52bc: b940b3e1 ldr w1, [sp, #176]
|
||
52c0: b900b3e0 str w0, [sp, #176]
|
||
52c4: 8b21c042 add x2, x2, w1, sxtw
|
||
52c8: 17fffcde b 4640 <_vfiprintf_r+0x830>
|
||
52cc: f94043e2 ldr x2, [sp, #128]
|
||
52d0: b940b3e0 ldr w0, [sp, #176]
|
||
52d4: b900b3e1 str w1, [sp, #176]
|
||
52d8: 8b20c042 add x2, x2, w0, sxtw
|
||
52dc: f94037e0 ldr x0, [sp, #104]
|
||
52e0: f90037e2 str x2, [sp, #104]
|
||
52e4: 17fffc3d b 43d8 <_vfiprintf_r+0x5c8>
|
||
52e8: b940b3e0 ldr w0, [sp, #176]
|
||
52ec: 11002001 add w1, w0, #0x8
|
||
52f0: 7100003f cmp w1, #0x0
|
||
52f4: 54000eed b.le 54d0 <_vfiprintf_r+0x16c0>
|
||
52f8: f94037e0 ldr x0, [sp, #104]
|
||
52fc: b900b3e1 str w1, [sp, #176]
|
||
5300: 91002c02 add x2, x0, #0xb
|
||
5304: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
5308: f90037e1 str x1, [sp, #104]
|
||
530c: 17fffeb5 b 4de0 <_vfiprintf_r+0xfd0>
|
||
5310: f94043e3 ldr x3, [sp, #128]
|
||
5314: b940b3e2 ldr w2, [sp, #176]
|
||
5318: b900b3e1 str w1, [sp, #176]
|
||
531c: f94037f8 ldr x24, [sp, #104]
|
||
5320: 8b22c062 add x2, x3, w2, sxtw
|
||
5324: f90037e2 str x2, [sp, #104]
|
||
5328: 17fffbda b 4290 <_vfiprintf_r+0x480>
|
||
532c: 910643fb add x27, sp, #0x190
|
||
5330: 52800028 mov w8, #0x1 // #1
|
||
5334: 52800001 mov w1, #0x0 // #0
|
||
5338: 17fffb7c b 4128 <_vfiprintf_r+0x318>
|
||
533c: 37f81e60 tbnz w0, #31, 5708 <_vfiprintf_r+0x18f8>
|
||
5340: f94037e0 ldr x0, [sp, #104]
|
||
5344: 91003c01 add x1, x0, #0xf
|
||
5348: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
534c: f90037e1 str x1, [sp, #104]
|
||
5350: f9400000 ldr x0, [x0]
|
||
5354: 7940cbe1 ldrh w1, [sp, #100]
|
||
5358: 79000001 strh w1, [x0]
|
||
535c: 17fffae4 b 3eec <_vfiprintf_r+0xdc>
|
||
5360: 37f81281 tbnz w1, #31, 55b0 <_vfiprintf_r+0x17a0>
|
||
5364: f94037e1 ldr x1, [sp, #104]
|
||
5368: 91002c22 add x2, x1, #0xb
|
||
536c: 927df042 and x2, x2, #0xfffffffffffffff8
|
||
5370: b9400021 ldr w1, [x1]
|
||
5374: f90037e2 str x2, [sp, #104]
|
||
5378: 17fffed1 b 4ebc <_vfiprintf_r+0x10ac>
|
||
537c: 37f81460 tbnz w0, #31, 5608 <_vfiprintf_r+0x17f8>
|
||
5380: f94037e0 ldr x0, [sp, #104]
|
||
5384: 91002c01 add x1, x0, #0xb
|
||
5388: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
538c: f90037e1 str x1, [sp, #104]
|
||
5390: b9400001 ldr w1, [x0]
|
||
5394: 17fffc48 b 44b4 <_vfiprintf_r+0x6a4>
|
||
5398: 37f81cc0 tbnz w0, #31, 5730 <_vfiprintf_r+0x1920>
|
||
539c: f94037e0 ldr x0, [sp, #104]
|
||
53a0: 91002c01 add x1, x0, #0xb
|
||
53a4: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
53a8: f90037e1 str x1, [sp, #104]
|
||
53ac: b9800001 ldrsw x1, [x0]
|
||
53b0: aa0103e0 mov x0, x1
|
||
53b4: 17fffc4f b 44f0 <_vfiprintf_r+0x6e0>
|
||
53b8: 37f81680 tbnz w0, #31, 5688 <_vfiprintf_r+0x1878>
|
||
53bc: f94037e0 ldr x0, [sp, #104]
|
||
53c0: 91002c01 add x1, x0, #0xb
|
||
53c4: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
53c8: f90037e1 str x1, [sp, #104]
|
||
53cc: b9400001 ldr w1, [x0]
|
||
53d0: 52800020 mov w0, #0x1 // #1
|
||
53d4: 17fffc14 b 4424 <_vfiprintf_r+0x614>
|
||
53d8: 9103bfe0 add x0, sp, #0xef
|
||
53dc: 910643fb add x27, sp, #0x190
|
||
53e0: 52800028 mov w8, #0x1 // #1
|
||
53e4: f900cbe0 str x0, [sp, #400]
|
||
53e8: d2800020 mov x0, #0x1 // #1
|
||
53ec: f900cfe0 str x0, [sp, #408]
|
||
53f0: 17fffb33 b 40bc <_vfiprintf_r+0x2ac>
|
||
53f4: b940b3e1 ldr w1, [sp, #176]
|
||
53f8: 11002022 add w2, w1, #0x8
|
||
53fc: 7100005f cmp w2, #0x0
|
||
5400: 54001b6d b.le 576c <_vfiprintf_r+0x195c>
|
||
5404: f94037e1 ldr x1, [sp, #104]
|
||
5408: b900b3e2 str w2, [sp, #176]
|
||
540c: 91002c23 add x3, x1, #0xb
|
||
5410: 927df062 and x2, x3, #0xfffffffffffffff8
|
||
5414: 79400021 ldrh w1, [x1]
|
||
5418: f90037e2 str x2, [sp, #104]
|
||
541c: 17fffea8 b 4ebc <_vfiprintf_r+0x10ac>
|
||
5420: b940b3e0 ldr w0, [sp, #176]
|
||
5424: 11002001 add w1, w0, #0x8
|
||
5428: 7100003f cmp w1, #0x0
|
||
542c: 54001b6d b.le 5798 <_vfiprintf_r+0x1988>
|
||
5430: f94037e0 ldr x0, [sp, #104]
|
||
5434: b900b3e1 str w1, [sp, #176]
|
||
5438: 91002c02 add x2, x0, #0xb
|
||
543c: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
5440: f90037e1 str x1, [sp, #104]
|
||
5444: 79400001 ldrh w1, [x0]
|
||
5448: 17fffc1b b 44b4 <_vfiprintf_r+0x6a4>
|
||
544c: b940b3e0 ldr w0, [sp, #176]
|
||
5450: 11002001 add w1, w0, #0x8
|
||
5454: 7100003f cmp w1, #0x0
|
||
5458: 5400196d b.le 5784 <_vfiprintf_r+0x1974>
|
||
545c: f94037e0 ldr x0, [sp, #104]
|
||
5460: b900b3e1 str w1, [sp, #176]
|
||
5464: 91002c02 add x2, x0, #0xb
|
||
5468: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
546c: f90037e1 str x1, [sp, #104]
|
||
5470: 17fffe2e b 4d28 <_vfiprintf_r+0xf18>
|
||
5474: b940b3e0 ldr w0, [sp, #176]
|
||
5478: 11002001 add w1, w0, #0x8
|
||
547c: 7100003f cmp w1, #0x0
|
||
5480: 540016cd b.le 5758 <_vfiprintf_r+0x1948>
|
||
5484: f94037e0 ldr x0, [sp, #104]
|
||
5488: b900b3e1 str w1, [sp, #176]
|
||
548c: 91002c02 add x2, x0, #0xb
|
||
5490: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
5494: f90037e1 str x1, [sp, #104]
|
||
5498: 17fffe13 b 4ce4 <_vfiprintf_r+0xed4>
|
||
549c: f94043e2 ldr x2, [sp, #128]
|
||
54a0: b940b3e0 ldr w0, [sp, #176]
|
||
54a4: b900b3e1 str w1, [sp, #176]
|
||
54a8: 8b20c040 add x0, x2, w0, sxtw
|
||
54ac: 17fffb9e b 4324 <_vfiprintf_r+0x514>
|
||
54b0: 110006e1 add w1, w23, #0x1
|
||
54b4: aa1303e0 mov x0, x19
|
||
54b8: 93407c21 sxtw x1, w1
|
||
54bc: 97fff6e1 bl 3040 <_malloc_r>
|
||
54c0: aa0003fa mov x26, x0
|
||
54c4: b4000660 cbz x0, 5590 <_vfiprintf_r+0x1780>
|
||
54c8: f9003be0 str x0, [sp, #112]
|
||
54cc: 17fffed7 b 5028 <_vfiprintf_r+0x1218>
|
||
54d0: f94043e2 ldr x2, [sp, #128]
|
||
54d4: b940b3e0 ldr w0, [sp, #176]
|
||
54d8: b900b3e1 str w1, [sp, #176]
|
||
54dc: 8b20c040 add x0, x2, w0, sxtw
|
||
54e0: 17fffe40 b 4de0 <_vfiprintf_r+0xfd0>
|
||
54e4: 2a0403f6 mov w22, w4
|
||
54e8: 2a0403f7 mov w23, w4
|
||
54ec: 52800004 mov w4, #0x0 // #0
|
||
54f0: f90037f8 str x24, [sp, #104]
|
||
54f4: 17fffbde b 446c <_vfiprintf_r+0x65c>
|
||
54f8: a94a03e1 ldp x1, x0, [sp, #160]
|
||
54fc: b90073e4 str w4, [sp, #112]
|
||
5500: a90917e3 stp x3, x5, [sp, #144]
|
||
5504: cb00035a sub x26, x26, x0
|
||
5508: aa0003e2 mov x2, x0
|
||
550c: aa1a03e0 mov x0, x26
|
||
5510: 940011d0 bl 9c50 <strncpy>
|
||
5514: 39400680 ldrb w0, [x20, #1]
|
||
5518: 52800008 mov w8, #0x0 // #0
|
||
551c: b94073e4 ldr w4, [sp, #112]
|
||
5520: 7100001f cmp w0, #0x0
|
||
5524: 9a940694 cinc x20, x20, ne // ne = any
|
||
5528: a94917e3 ldp x3, x5, [sp, #144]
|
||
552c: 17fffee2 b 50b4 <_vfiprintf_r+0x12a4>
|
||
5530: f94043e2 ldr x2, [sp, #128]
|
||
5534: b940b3e0 ldr w0, [sp, #176]
|
||
5538: b900b3e1 str w1, [sp, #176]
|
||
553c: 8b20c040 add x0, x2, w0, sxtw
|
||
5540: 17fffc28 b 45e0 <_vfiprintf_r+0x7d0>
|
||
5544: d0000028 adrp x8, b000 <pow10.0+0x80>
|
||
5548: 2a0203eb mov w11, w2
|
||
554c: 910d8108 add x8, x8, #0x360
|
||
5550: 17fffd4e b 4a88 <_vfiprintf_r+0xc78>
|
||
5554: aa1a03e0 mov x0, x26
|
||
5558: 9400114a bl 9a80 <strlen>
|
||
555c: 7100001f cmp w0, #0x0
|
||
5560: 2a0003f7 mov w23, w0
|
||
5564: 1a9fa016 csel w22, w0, wzr, ge // ge = tcont
|
||
5568: 52800004 mov w4, #0x0 // #0
|
||
556c: a906fff8 stp x24, xzr, [sp, #104]
|
||
5570: 17fffbbf b 446c <_vfiprintf_r+0x65c>
|
||
5574: d0000028 adrp x8, b000 <pow10.0+0x80>
|
||
5578: 11000444 add w4, w2, #0x1
|
||
557c: 910d8108 add x8, x8, #0x360
|
||
5580: 17fffd7b b 4b6c <_vfiprintf_r+0xd5c>
|
||
5584: 12800000 mov w0, #0xffffffff // #-1
|
||
5588: b90067e0 str w0, [sp, #100]
|
||
558c: 17fffb31 b 4250 <_vfiprintf_r+0x440>
|
||
5590: 79c02320 ldrsh w0, [x25, #16]
|
||
5594: 321a0000 orr w0, w0, #0x40
|
||
5598: 79002320 strh w0, [x25, #16]
|
||
559c: 17fffb2a b 4244 <_vfiprintf_r+0x434>
|
||
55a0: d0000029 adrp x9, b000 <pow10.0+0x80>
|
||
55a4: 2a0803ea mov w10, w8
|
||
55a8: 910dc129 add x9, x9, #0x370
|
||
55ac: 17fffc90 b 47ec <_vfiprintf_r+0x9dc>
|
||
55b0: b940b3e1 ldr w1, [sp, #176]
|
||
55b4: 11002022 add w2, w1, #0x8
|
||
55b8: 7100005f cmp w2, #0x0
|
||
55bc: 540019cd b.le 58f4 <_vfiprintf_r+0x1ae4>
|
||
55c0: f94037e1 ldr x1, [sp, #104]
|
||
55c4: b900b3e2 str w2, [sp, #176]
|
||
55c8: 91002c23 add x3, x1, #0xb
|
||
55cc: 927df062 and x2, x3, #0xfffffffffffffff8
|
||
55d0: b9400021 ldr w1, [x1]
|
||
55d4: f90037e2 str x2, [sp, #104]
|
||
55d8: 17fffe39 b 4ebc <_vfiprintf_r+0x10ac>
|
||
55dc: b940b3e0 ldr w0, [sp, #176]
|
||
55e0: 11002001 add w1, w0, #0x8
|
||
55e4: 7100003f cmp w1, #0x0
|
||
55e8: 540010cd b.le 5800 <_vfiprintf_r+0x19f0>
|
||
55ec: f94037e0 ldr x0, [sp, #104]
|
||
55f0: b900b3e1 str w1, [sp, #176]
|
||
55f4: 91002c02 add x2, x0, #0xb
|
||
55f8: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
55fc: f90037e1 str x1, [sp, #104]
|
||
5600: 39400001 ldrb w1, [x0]
|
||
5604: 17fffbac b 44b4 <_vfiprintf_r+0x6a4>
|
||
5608: b940b3e0 ldr w0, [sp, #176]
|
||
560c: 11002001 add w1, w0, #0x8
|
||
5610: 7100003f cmp w1, #0x0
|
||
5614: 540015ad b.le 58c8 <_vfiprintf_r+0x1ab8>
|
||
5618: f94037e0 ldr x0, [sp, #104]
|
||
561c: b900b3e1 str w1, [sp, #176]
|
||
5620: 91002c02 add x2, x0, #0xb
|
||
5624: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
5628: f90037e1 str x1, [sp, #104]
|
||
562c: b9400001 ldr w1, [x0]
|
||
5630: 17fffba1 b 44b4 <_vfiprintf_r+0x6a4>
|
||
5634: b940b3e0 ldr w0, [sp, #176]
|
||
5638: 11002001 add w1, w0, #0x8
|
||
563c: 7100003f cmp w1, #0x0
|
||
5640: 54000f6d b.le 582c <_vfiprintf_r+0x1a1c>
|
||
5644: f94037e0 ldr x0, [sp, #104]
|
||
5648: b900b3e1 str w1, [sp, #176]
|
||
564c: 91002c02 add x2, x0, #0xb
|
||
5650: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
5654: f90037e1 str x1, [sp, #104]
|
||
5658: 17fffef7 b 5234 <_vfiprintf_r+0x1424>
|
||
565c: b940b3e1 ldr w1, [sp, #176]
|
||
5660: 11002022 add w2, w1, #0x8
|
||
5664: 7100005f cmp w2, #0x0
|
||
5668: 5400152d b.le 590c <_vfiprintf_r+0x1afc>
|
||
566c: f94037e1 ldr x1, [sp, #104]
|
||
5670: b900b3e2 str w2, [sp, #176]
|
||
5674: 91002c23 add x3, x1, #0xb
|
||
5678: 927df062 and x2, x3, #0xfffffffffffffff8
|
||
567c: 39400021 ldrb w1, [x1]
|
||
5680: f90037e2 str x2, [sp, #104]
|
||
5684: 17fffe0e b 4ebc <_vfiprintf_r+0x10ac>
|
||
5688: b940b3e0 ldr w0, [sp, #176]
|
||
568c: 11002001 add w1, w0, #0x8
|
||
5690: 7100003f cmp w1, #0x0
|
||
5694: 5400106d b.le 58a0 <_vfiprintf_r+0x1a90>
|
||
5698: f94037e0 ldr x0, [sp, #104]
|
||
569c: b900b3e1 str w1, [sp, #176]
|
||
56a0: 91002c02 add x2, x0, #0xb
|
||
56a4: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
56a8: f90037e1 str x1, [sp, #104]
|
||
56ac: 17ffff48 b 53cc <_vfiprintf_r+0x15bc>
|
||
56b0: b940b3e0 ldr w0, [sp, #176]
|
||
56b4: 11002001 add w1, w0, #0x8
|
||
56b8: 7100003f cmp w1, #0x0
|
||
56bc: 54000e8d b.le 588c <_vfiprintf_r+0x1a7c>
|
||
56c0: f94037e0 ldr x0, [sp, #104]
|
||
56c4: b900b3e1 str w1, [sp, #176]
|
||
56c8: 91002c02 add x2, x0, #0xb
|
||
56cc: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
56d0: f90037e1 str x1, [sp, #104]
|
||
56d4: 17fffeb8 b 51b4 <_vfiprintf_r+0x13a4>
|
||
56d8: 37f80800 tbnz w0, #31, 57d8 <_vfiprintf_r+0x19c8>
|
||
56dc: f94037e0 ldr x0, [sp, #104]
|
||
56e0: 91003c01 add x1, x0, #0xf
|
||
56e4: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
56e8: f90037e1 str x1, [sp, #104]
|
||
56ec: f9400000 ldr x0, [x0]
|
||
56f0: b94067e1 ldr w1, [sp, #100]
|
||
56f4: b9000001 str w1, [x0]
|
||
56f8: 17fff9fd b 3eec <_vfiprintf_r+0xdc>
|
||
56fc: 2a1403f7 mov w23, w20
|
||
5700: f94037f4 ldr x20, [sp, #104]
|
||
5704: 17fffe44 b 5014 <_vfiprintf_r+0x1204>
|
||
5708: b940b3e0 ldr w0, [sp, #176]
|
||
570c: 11002001 add w1, w0, #0x8
|
||
5710: 7100003f cmp w1, #0x0
|
||
5714: 54000d0d b.le 58b4 <_vfiprintf_r+0x1aa4>
|
||
5718: f94037e0 ldr x0, [sp, #104]
|
||
571c: b900b3e1 str w1, [sp, #176]
|
||
5720: 91003c02 add x2, x0, #0xf
|
||
5724: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
5728: f90037e1 str x1, [sp, #104]
|
||
572c: 17ffff09 b 5350 <_vfiprintf_r+0x1540>
|
||
5730: b940b3e0 ldr w0, [sp, #176]
|
||
5734: 11002001 add w1, w0, #0x8
|
||
5738: 7100003f cmp w1, #0x0
|
||
573c: 540006ed b.le 5818 <_vfiprintf_r+0x1a08>
|
||
5740: f94037e0 ldr x0, [sp, #104]
|
||
5744: b900b3e1 str w1, [sp, #176]
|
||
5748: 91002c02 add x2, x0, #0xb
|
||
574c: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
5750: f90037e1 str x1, [sp, #104]
|
||
5754: 17ffff16 b 53ac <_vfiprintf_r+0x159c>
|
||
5758: f94043e2 ldr x2, [sp, #128]
|
||
575c: b940b3e0 ldr w0, [sp, #176]
|
||
5760: b900b3e1 str w1, [sp, #176]
|
||
5764: 8b20c040 add x0, x2, w0, sxtw
|
||
5768: 17fffd5f b 4ce4 <_vfiprintf_r+0xed4>
|
||
576c: f94043e3 ldr x3, [sp, #128]
|
||
5770: b940b3e1 ldr w1, [sp, #176]
|
||
5774: b900b3e2 str w2, [sp, #176]
|
||
5778: 8b21c061 add x1, x3, w1, sxtw
|
||
577c: 79400021 ldrh w1, [x1]
|
||
5780: 17fffdcf b 4ebc <_vfiprintf_r+0x10ac>
|
||
5784: f94043e2 ldr x2, [sp, #128]
|
||
5788: b940b3e0 ldr w0, [sp, #176]
|
||
578c: b900b3e1 str w1, [sp, #176]
|
||
5790: 8b20c040 add x0, x2, w0, sxtw
|
||
5794: 17fffd65 b 4d28 <_vfiprintf_r+0xf18>
|
||
5798: f94043e2 ldr x2, [sp, #128]
|
||
579c: b940b3e0 ldr w0, [sp, #176]
|
||
57a0: b900b3e1 str w1, [sp, #176]
|
||
57a4: 8b20c040 add x0, x2, w0, sxtw
|
||
57a8: 79400001 ldrh w1, [x0]
|
||
57ac: 17fffb42 b 44b4 <_vfiprintf_r+0x6a4>
|
||
57b0: b940b3e0 ldr w0, [sp, #176]
|
||
57b4: 11002001 add w1, w0, #0x8
|
||
57b8: 7100003f cmp w1, #0x0
|
||
57bc: 5400092d b.le 58e0 <_vfiprintf_r+0x1ad0>
|
||
57c0: f94037e0 ldr x0, [sp, #104]
|
||
57c4: b900b3e1 str w1, [sp, #176]
|
||
57c8: 91003c02 add x2, x0, #0xf
|
||
57cc: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
57d0: f90037e1 str x1, [sp, #104]
|
||
57d4: 17fffb7a b 45bc <_vfiprintf_r+0x7ac>
|
||
57d8: b940b3e0 ldr w0, [sp, #176]
|
||
57dc: 11002001 add w1, w0, #0x8
|
||
57e0: 7100003f cmp w1, #0x0
|
||
57e4: 540002ed b.le 5840 <_vfiprintf_r+0x1a30>
|
||
57e8: f94037e0 ldr x0, [sp, #104]
|
||
57ec: b900b3e1 str w1, [sp, #176]
|
||
57f0: 91003c02 add x2, x0, #0xf
|
||
57f4: 927df041 and x1, x2, #0xfffffffffffffff8
|
||
57f8: f90037e1 str x1, [sp, #104]
|
||
57fc: 17ffffbc b 56ec <_vfiprintf_r+0x18dc>
|
||
5800: f94043e2 ldr x2, [sp, #128]
|
||
5804: b940b3e0 ldr w0, [sp, #176]
|
||
5808: b900b3e1 str w1, [sp, #176]
|
||
580c: 8b20c040 add x0, x2, w0, sxtw
|
||
5810: 39400001 ldrb w1, [x0]
|
||
5814: 17fffb28 b 44b4 <_vfiprintf_r+0x6a4>
|
||
5818: f94043e2 ldr x2, [sp, #128]
|
||
581c: b940b3e0 ldr w0, [sp, #176]
|
||
5820: b900b3e1 str w1, [sp, #176]
|
||
5824: 8b20c040 add x0, x2, w0, sxtw
|
||
5828: 17fffee1 b 53ac <_vfiprintf_r+0x159c>
|
||
582c: f94043e2 ldr x2, [sp, #128]
|
||
5830: b940b3e0 ldr w0, [sp, #176]
|
||
5834: b900b3e1 str w1, [sp, #176]
|
||
5838: 8b20c040 add x0, x2, w0, sxtw
|
||
583c: 17fffe7e b 5234 <_vfiprintf_r+0x1424>
|
||
5840: f94043e2 ldr x2, [sp, #128]
|
||
5844: b940b3e0 ldr w0, [sp, #176]
|
||
5848: b900b3e1 str w1, [sp, #176]
|
||
584c: 8b20c040 add x0, x2, w0, sxtw
|
||
5850: 17ffffa7 b 56ec <_vfiprintf_r+0x18dc>
|
||
5854: b940b3e0 ldr w0, [sp, #176]
|
||
5858: 37f80660 tbnz w0, #31, 5924 <_vfiprintf_r+0x1b14>
|
||
585c: f94037e1 ldr x1, [sp, #104]
|
||
5860: 91002c21 add x1, x1, #0xb
|
||
5864: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
5868: f94037e3 ldr x3, [sp, #104]
|
||
586c: f90037e1 str x1, [sp, #104]
|
||
5870: b900b3e0 str w0, [sp, #176]
|
||
5874: 39400680 ldrb w0, [x20, #1]
|
||
5878: aa0203f4 mov x20, x2
|
||
587c: b9400064 ldr w4, [x3]
|
||
5880: 7100009f cmp w4, #0x0
|
||
5884: 5a9fa096 csinv w22, w4, wzr, ge // ge = tcont
|
||
5888: 17fff9e8 b 4028 <_vfiprintf_r+0x218>
|
||
588c: f94043e2 ldr x2, [sp, #128]
|
||
5890: b940b3e0 ldr w0, [sp, #176]
|
||
5894: b900b3e1 str w1, [sp, #176]
|
||
5898: 8b20c040 add x0, x2, w0, sxtw
|
||
589c: 17fffe46 b 51b4 <_vfiprintf_r+0x13a4>
|
||
58a0: f94043e2 ldr x2, [sp, #128]
|
||
58a4: b940b3e0 ldr w0, [sp, #176]
|
||
58a8: b900b3e1 str w1, [sp, #176]
|
||
58ac: 8b20c040 add x0, x2, w0, sxtw
|
||
58b0: 17fffec7 b 53cc <_vfiprintf_r+0x15bc>
|
||
58b4: f94043e2 ldr x2, [sp, #128]
|
||
58b8: b940b3e0 ldr w0, [sp, #176]
|
||
58bc: b900b3e1 str w1, [sp, #176]
|
||
58c0: 8b20c040 add x0, x2, w0, sxtw
|
||
58c4: 17fffea3 b 5350 <_vfiprintf_r+0x1540>
|
||
58c8: f94043e2 ldr x2, [sp, #128]
|
||
58cc: b940b3e0 ldr w0, [sp, #176]
|
||
58d0: b900b3e1 str w1, [sp, #176]
|
||
58d4: 8b20c040 add x0, x2, w0, sxtw
|
||
58d8: b9400001 ldr w1, [x0]
|
||
58dc: 17fffaf6 b 44b4 <_vfiprintf_r+0x6a4>
|
||
58e0: f94043e2 ldr x2, [sp, #128]
|
||
58e4: b940b3e0 ldr w0, [sp, #176]
|
||
58e8: b900b3e1 str w1, [sp, #176]
|
||
58ec: 8b20c040 add x0, x2, w0, sxtw
|
||
58f0: 17fffb33 b 45bc <_vfiprintf_r+0x7ac>
|
||
58f4: f94043e3 ldr x3, [sp, #128]
|
||
58f8: b940b3e1 ldr w1, [sp, #176]
|
||
58fc: b900b3e2 str w2, [sp, #176]
|
||
5900: 8b21c061 add x1, x3, w1, sxtw
|
||
5904: b9400021 ldr w1, [x1]
|
||
5908: 17fffd6d b 4ebc <_vfiprintf_r+0x10ac>
|
||
590c: f94043e3 ldr x3, [sp, #128]
|
||
5910: b940b3e1 ldr w1, [sp, #176]
|
||
5914: b900b3e2 str w2, [sp, #176]
|
||
5918: 8b21c061 add x1, x3, w1, sxtw
|
||
591c: 39400021 ldrb w1, [x1]
|
||
5920: 17fffd67 b 4ebc <_vfiprintf_r+0x10ac>
|
||
5924: b940b3e0 ldr w0, [sp, #176]
|
||
5928: f94037e1 ldr x1, [sp, #104]
|
||
592c: 11002000 add w0, w0, #0x8
|
||
5930: 7100001f cmp w0, #0x0
|
||
5934: 5400010d b.le 5954 <_vfiprintf_r+0x1b44>
|
||
5938: 91002c21 add x1, x1, #0xb
|
||
593c: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
5940: 17ffffca b 5868 <_vfiprintf_r+0x1a58>
|
||
5944: 79402320 ldrh w0, [x25, #16]
|
||
5948: 321a0000 orr w0, w0, #0x40
|
||
594c: 79002320 strh w0, [x25, #16]
|
||
5950: 17fffa37 b 422c <_vfiprintf_r+0x41c>
|
||
5954: f94043e4 ldr x4, [sp, #128]
|
||
5958: b940b3e3 ldr w3, [sp, #176]
|
||
595c: 8b23c083 add x3, x4, w3, sxtw
|
||
5960: f90037e3 str x3, [sp, #104]
|
||
5964: 17ffffc1 b 5868 <_vfiprintf_r+0x1a58>
|
||
5968: d503201f nop
|
||
596c: d503201f nop
|
||
|
||
0000000000005970 <vfiprintf>:
|
||
5970: aa0203e4 mov x4, x2
|
||
5974: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
5978: f0000023 adrp x3, c000 <IpcTestNull+0x6e8>
|
||
597c: 910003fd mov x29, sp
|
||
5980: a9401c46 ldp x6, x7, [x2]
|
||
5984: aa0003e8 mov x8, x0
|
||
5988: a9411484 ldp x4, x5, [x4, #16]
|
||
598c: aa0103e2 mov x2, x1
|
||
5990: f9409860 ldr x0, [x3, #304]
|
||
5994: aa0803e1 mov x1, x8
|
||
5998: 910043e3 add x3, sp, #0x10
|
||
599c: a9011fe6 stp x6, x7, [sp, #16]
|
||
59a0: a90217e4 stp x4, x5, [sp, #32]
|
||
59a4: 97fff91b bl 3e10 <_vfiprintf_r>
|
||
59a8: a8c37bfd ldp x29, x30, [sp], #48
|
||
59ac: d65f03c0 ret
|
||
|
||
00000000000059b0 <__sbprintf>:
|
||
59b0: d11403ff sub sp, sp, #0x500
|
||
59b4: 52808005 mov w5, #0x400 // #1024
|
||
59b8: 910403e6 add x6, sp, #0x100
|
||
59bc: a9007bfd stp x29, x30, [sp]
|
||
59c0: 910003fd mov x29, sp
|
||
59c4: a90153f3 stp x19, x20, [sp, #16]
|
||
59c8: aa0103f3 mov x19, x1
|
||
59cc: aa0303e1 mov x1, x3
|
||
59d0: 9100c3e3 add x3, sp, #0x30
|
||
59d4: f9002be6 str x6, [sp, #80]
|
||
59d8: 79402264 ldrh w4, [x19, #16]
|
||
59dc: a9403c2e ldp x14, x15, [x1]
|
||
59e0: 121e7884 and w4, w4, #0xfffffffd
|
||
59e4: 7940266c ldrh w12, [x19, #18]
|
||
59e8: a9412428 ldp x8, x9, [x1, #16]
|
||
59ec: 910143e1 add x1, sp, #0x50
|
||
59f0: f9401a6b ldr x11, [x19, #48]
|
||
59f4: b9005fe5 str w5, [sp, #92]
|
||
59f8: f940226a ldr x10, [x19, #64]
|
||
59fc: a9033fee stp x14, x15, [sp, #48]
|
||
5a00: b940ae67 ldr w7, [x19, #172]
|
||
5a04: f90013f5 str x21, [sp, #32]
|
||
5a08: aa0003f5 mov x21, x0
|
||
5a0c: a90427e8 stp x8, x9, [sp, #64]
|
||
5a10: 7900c3e4 strh w4, [sp, #96]
|
||
5a14: 7900c7ec strh w12, [sp, #98]
|
||
5a18: f90037e6 str x6, [sp, #104]
|
||
5a1c: b90073e5 str w5, [sp, #112]
|
||
5a20: b9007bff str wzr, [sp, #120]
|
||
5a24: f90043eb str x11, [sp, #128]
|
||
5a28: f9004bea str x10, [sp, #144]
|
||
5a2c: b900ffe7 str w7, [sp, #252]
|
||
5a30: 97fff8f8 bl 3e10 <_vfiprintf_r>
|
||
5a34: 2a0003f4 mov w20, w0
|
||
5a38: 37f800c0 tbnz w0, #31, 5a50 <__sbprintf+0xa0>
|
||
5a3c: 910143e1 add x1, sp, #0x50
|
||
5a40: aa1503e0 mov x0, x21
|
||
5a44: 9400017b bl 6030 <_fflush_r>
|
||
5a48: 7100001f cmp w0, #0x0
|
||
5a4c: 5a9f0294 csinv w20, w20, wzr, eq // eq = none
|
||
5a50: 7940c3e0 ldrh w0, [sp, #96]
|
||
5a54: 36300080 tbz w0, #6, 5a64 <__sbprintf+0xb4>
|
||
5a58: 79402260 ldrh w0, [x19, #16]
|
||
5a5c: 321a0000 orr w0, w0, #0x40
|
||
5a60: 79002260 strh w0, [x19, #16]
|
||
5a64: 2a1403e0 mov w0, w20
|
||
5a68: a9407bfd ldp x29, x30, [sp]
|
||
5a6c: a94153f3 ldp x19, x20, [sp, #16]
|
||
5a70: f94013f5 ldr x21, [sp, #32]
|
||
5a74: 911403ff add sp, sp, #0x500
|
||
5a78: d65f03c0 ret
|
||
5a7c: d503201f nop
|
||
|
||
0000000000005a80 <_wcrtomb_r>:
|
||
5a80: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
5a84: 91055004 add x4, x0, #0x154
|
||
5a88: 910003fd mov x29, sp
|
||
5a8c: a90153f3 stp x19, x20, [sp, #16]
|
||
5a90: aa0303f3 mov x19, x3
|
||
5a94: f100027f cmp x19, #0x0
|
||
5a98: 90000043 adrp x3, d000 <__malloc_av_+0x780>
|
||
5a9c: 9a930093 csel x19, x4, x19, eq // eq = none
|
||
5aa0: aa0003f4 mov x20, x0
|
||
5aa4: f940d064 ldr x4, [x3, #416]
|
||
5aa8: aa1303e3 mov x3, x19
|
||
5aac: b4000121 cbz x1, 5ad0 <_wcrtomb_r+0x50>
|
||
5ab0: d63f0080 blr x4
|
||
5ab4: 2a0003e1 mov w1, w0
|
||
5ab8: 93407c20 sxtw x0, w1
|
||
5abc: 3100043f cmn w1, #0x1
|
||
5ac0: 54000160 b.eq 5aec <_wcrtomb_r+0x6c> // b.none
|
||
5ac4: a94153f3 ldp x19, x20, [sp, #16]
|
||
5ac8: a8c37bfd ldp x29, x30, [sp], #48
|
||
5acc: d65f03c0 ret
|
||
5ad0: 910083e1 add x1, sp, #0x20
|
||
5ad4: 52800002 mov w2, #0x0 // #0
|
||
5ad8: d63f0080 blr x4
|
||
5adc: 2a0003e1 mov w1, w0
|
||
5ae0: 93407c20 sxtw x0, w1
|
||
5ae4: 3100043f cmn w1, #0x1
|
||
5ae8: 54fffee1 b.ne 5ac4 <_wcrtomb_r+0x44> // b.any
|
||
5aec: b900027f str wzr, [x19]
|
||
5af0: 52801141 mov w1, #0x8a // #138
|
||
5af4: b9000281 str w1, [x20]
|
||
5af8: 92800000 mov x0, #0xffffffffffffffff // #-1
|
||
5afc: a94153f3 ldp x19, x20, [sp, #16]
|
||
5b00: a8c37bfd ldp x29, x30, [sp], #48
|
||
5b04: d65f03c0 ret
|
||
5b08: d503201f nop
|
||
5b0c: d503201f nop
|
||
|
||
0000000000005b10 <wcrtomb>:
|
||
5b10: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
5b14: f0000024 adrp x4, c000 <IpcTestNull+0x6e8>
|
||
5b18: 90000043 adrp x3, d000 <__malloc_av_+0x780>
|
||
5b1c: 910003fd mov x29, sp
|
||
5b20: a90153f3 stp x19, x20, [sp, #16]
|
||
5b24: f100005f cmp x2, #0x0
|
||
5b28: f9409894 ldr x20, [x4, #304]
|
||
5b2c: 91055284 add x4, x20, #0x154
|
||
5b30: 9a820093 csel x19, x4, x2, eq // eq = none
|
||
5b34: f940d064 ldr x4, [x3, #416]
|
||
5b38: b40001a0 cbz x0, 5b6c <wcrtomb+0x5c>
|
||
5b3c: 2a0103e2 mov w2, w1
|
||
5b40: aa0003e1 mov x1, x0
|
||
5b44: aa1303e3 mov x3, x19
|
||
5b48: aa1403e0 mov x0, x20
|
||
5b4c: d63f0080 blr x4
|
||
5b50: 2a0003e1 mov w1, w0
|
||
5b54: 93407c20 sxtw x0, w1
|
||
5b58: 3100043f cmn w1, #0x1
|
||
5b5c: 540001a0 b.eq 5b90 <wcrtomb+0x80> // b.none
|
||
5b60: a94153f3 ldp x19, x20, [sp, #16]
|
||
5b64: a8c37bfd ldp x29, x30, [sp], #48
|
||
5b68: d65f03c0 ret
|
||
5b6c: 910083e1 add x1, sp, #0x20
|
||
5b70: aa1303e3 mov x3, x19
|
||
5b74: aa1403e0 mov x0, x20
|
||
5b78: 52800002 mov w2, #0x0 // #0
|
||
5b7c: d63f0080 blr x4
|
||
5b80: 2a0003e1 mov w1, w0
|
||
5b84: 93407c20 sxtw x0, w1
|
||
5b88: 3100043f cmn w1, #0x1
|
||
5b8c: 54fffea1 b.ne 5b60 <wcrtomb+0x50> // b.any
|
||
5b90: b900027f str wzr, [x19]
|
||
5b94: 52801141 mov w1, #0x8a // #138
|
||
5b98: b9000281 str w1, [x20]
|
||
5b9c: 92800000 mov x0, #0xffffffffffffffff // #-1
|
||
5ba0: a94153f3 ldp x19, x20, [sp, #16]
|
||
5ba4: a8c37bfd ldp x29, x30, [sp], #48
|
||
5ba8: d65f03c0 ret
|
||
5bac: d503201f nop
|
||
|
||
0000000000005bb0 <_wcsrtombs_r>:
|
||
5bb0: aa0403e5 mov x5, x4
|
||
5bb4: aa0303e4 mov x4, x3
|
||
5bb8: 92800003 mov x3, #0xffffffffffffffff // #-1
|
||
5bbc: 140011a9 b a260 <_wcsnrtombs_r>
|
||
|
||
0000000000005bc0 <wcsrtombs>:
|
||
5bc0: f0000026 adrp x6, c000 <IpcTestNull+0x6e8>
|
||
5bc4: aa0003e4 mov x4, x0
|
||
5bc8: aa0103e5 mov x5, x1
|
||
5bcc: aa0403e1 mov x1, x4
|
||
5bd0: f94098c0 ldr x0, [x6, #304]
|
||
5bd4: aa0203e4 mov x4, x2
|
||
5bd8: aa0503e2 mov x2, x5
|
||
5bdc: aa0303e5 mov x5, x3
|
||
5be0: 92800003 mov x3, #0xffffffffffffffff // #-1
|
||
5be4: 1400119f b a260 <_wcsnrtombs_r>
|
||
5be8: d503201f nop
|
||
5bec: d503201f nop
|
||
|
||
0000000000005bf0 <__swsetup_r>:
|
||
5bf0: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
5bf4: f0000022 adrp x2, c000 <IpcTestNull+0x6e8>
|
||
5bf8: 910003fd mov x29, sp
|
||
5bfc: a90153f3 stp x19, x20, [sp, #16]
|
||
5c00: aa0003f4 mov x20, x0
|
||
5c04: aa0103f3 mov x19, x1
|
||
5c08: f9409840 ldr x0, [x2, #304]
|
||
5c0c: b4000060 cbz x0, 5c18 <__swsetup_r+0x28>
|
||
5c10: b9405001 ldr w1, [x0, #80]
|
||
5c14: 340004e1 cbz w1, 5cb0 <__swsetup_r+0xc0>
|
||
5c18: 79c02262 ldrsh w2, [x19, #16]
|
||
5c1c: 12003c41 and w1, w2, #0xffff
|
||
5c20: 36180502 tbz w2, #3, 5cc0 <__swsetup_r+0xd0>
|
||
5c24: f9400e63 ldr x3, [x19, #24]
|
||
5c28: b40002c3 cbz x3, 5c80 <__swsetup_r+0x90>
|
||
5c2c: 36000141 tbz w1, #0, 5c54 <__swsetup_r+0x64>
|
||
5c30: b9402260 ldr w0, [x19, #32]
|
||
5c34: b9000e7f str wzr, [x19, #12]
|
||
5c38: 4b0003e0 neg w0, w0
|
||
5c3c: b9002a60 str w0, [x19, #40]
|
||
5c40: 52800000 mov w0, #0x0 // #0
|
||
5c44: b4000143 cbz x3, 5c6c <__swsetup_r+0x7c>
|
||
5c48: a94153f3 ldp x19, x20, [sp, #16]
|
||
5c4c: a8c27bfd ldp x29, x30, [sp], #32
|
||
5c50: d65f03c0 ret
|
||
5c54: 52800000 mov w0, #0x0 // #0
|
||
5c58: 37080041 tbnz w1, #1, 5c60 <__swsetup_r+0x70>
|
||
5c5c: b9402260 ldr w0, [x19, #32]
|
||
5c60: b9000e60 str w0, [x19, #12]
|
||
5c64: 52800000 mov w0, #0x0 // #0
|
||
5c68: b5ffff03 cbnz x3, 5c48 <__swsetup_r+0x58>
|
||
5c6c: 363ffee1 tbz w1, #7, 5c48 <__swsetup_r+0x58>
|
||
5c70: 321a0042 orr w2, w2, #0x40
|
||
5c74: 12800000 mov w0, #0xffffffff // #-1
|
||
5c78: 79002262 strh w2, [x19, #16]
|
||
5c7c: 17fffff3 b 5c48 <__swsetup_r+0x58>
|
||
5c80: 52805000 mov w0, #0x280 // #640
|
||
5c84: 0a000020 and w0, w1, w0
|
||
5c88: 7108001f cmp w0, #0x200
|
||
5c8c: 54fffd00 b.eq 5c2c <__swsetup_r+0x3c> // b.none
|
||
5c90: aa1303e1 mov x1, x19
|
||
5c94: aa1403e0 mov x0, x20
|
||
5c98: 9400085a bl 7e00 <__smakebuf_r>
|
||
5c9c: 79c02262 ldrsh w2, [x19, #16]
|
||
5ca0: f9400e63 ldr x3, [x19, #24]
|
||
5ca4: 12003c41 and w1, w2, #0xffff
|
||
5ca8: 3607fd61 tbz w1, #0, 5c54 <__swsetup_r+0x64>
|
||
5cac: 17ffffe1 b 5c30 <__swsetup_r+0x40>
|
||
5cb0: 940001e0 bl 6430 <__sinit>
|
||
5cb4: 79c02262 ldrsh w2, [x19, #16]
|
||
5cb8: 12003c41 and w1, w2, #0xffff
|
||
5cbc: 371ffb42 tbnz w2, #3, 5c24 <__swsetup_r+0x34>
|
||
5cc0: 362002e1 tbz w1, #4, 5d1c <__swsetup_r+0x12c>
|
||
5cc4: 371000e1 tbnz w1, #2, 5ce0 <__swsetup_r+0xf0>
|
||
5cc8: f9400e63 ldr x3, [x19, #24]
|
||
5ccc: 321d0042 orr w2, w2, #0x8
|
||
5cd0: 79002262 strh w2, [x19, #16]
|
||
5cd4: 12003c41 and w1, w2, #0xffff
|
||
5cd8: b5fffaa3 cbnz x3, 5c2c <__swsetup_r+0x3c>
|
||
5cdc: 17ffffe9 b 5c80 <__swsetup_r+0x90>
|
||
5ce0: f9402e61 ldr x1, [x19, #88]
|
||
5ce4: b4000101 cbz x1, 5d04 <__swsetup_r+0x114>
|
||
5ce8: 9101d260 add x0, x19, #0x74
|
||
5cec: eb00003f cmp x1, x0
|
||
5cf0: 54000080 b.eq 5d00 <__swsetup_r+0x110> // b.none
|
||
5cf4: aa1403e0 mov x0, x20
|
||
5cf8: 940002a6 bl 6790 <_free_r>
|
||
5cfc: 79c02262 ldrsh w2, [x19, #16]
|
||
5d00: f9002e7f str xzr, [x19, #88]
|
||
5d04: f9400e63 ldr x3, [x19, #24]
|
||
5d08: 12800480 mov w0, #0xffffffdb // #-37
|
||
5d0c: 0a000042 and w2, w2, w0
|
||
5d10: f9000263 str x3, [x19]
|
||
5d14: b9000a7f str wzr, [x19, #8]
|
||
5d18: 17ffffed b 5ccc <__swsetup_r+0xdc>
|
||
5d1c: 52800120 mov w0, #0x9 // #9
|
||
5d20: b9000280 str w0, [x20]
|
||
5d24: 321a0042 orr w2, w2, #0x40
|
||
5d28: 12800000 mov w0, #0xffffffff // #-1
|
||
5d2c: 79002262 strh w2, [x19, #16]
|
||
5d30: 17ffffc6 b 5c48 <__swsetup_r+0x58>
|
||
5d34: d503201f nop
|
||
5d38: d503201f nop
|
||
5d3c: d503201f nop
|
||
|
||
0000000000005d40 <abort>:
|
||
5d40: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
5d44: 528000c0 mov w0, #0x6 // #6
|
||
5d48: 910003fd mov x29, sp
|
||
5d4c: 94000cfd bl 9140 <raise>
|
||
5d50: 52800020 mov w0, #0x1 // #1
|
||
5d54: 97fff3e3 bl 2ce0 <_exit>
|
||
5d58: d503201f nop
|
||
5d5c: d503201f nop
|
||
|
||
0000000000005d60 <__register_exitproc>:
|
||
5d60: d0000024 adrp x4, b000 <pow10.0+0x80>
|
||
5d64: f9412484 ldr x4, [x4, #584]
|
||
5d68: f940fc85 ldr x5, [x4, #504]
|
||
5d6c: b4000405 cbz x5, 5dec <__register_exitproc+0x8c>
|
||
5d70: b94008a4 ldr w4, [x5, #8]
|
||
5d74: 71007c9f cmp w4, #0x1f
|
||
5d78: 5400040c b.gt 5df8 <__register_exitproc+0x98>
|
||
5d7c: 93407c86 sxtw x6, w4
|
||
5d80: 350000e0 cbnz w0, 5d9c <__register_exitproc+0x3c>
|
||
5d84: 910008c2 add x2, x6, #0x2
|
||
5d88: 11000484 add w4, w4, #0x1
|
||
5d8c: b90008a4 str w4, [x5, #8]
|
||
5d90: 52800000 mov w0, #0x0 // #0
|
||
5d94: f82278a1 str x1, [x5, x2, lsl #3]
|
||
5d98: d65f03c0 ret
|
||
5d9c: 8b24cca7 add x7, x5, w4, sxtw #3
|
||
5da0: 52800028 mov w8, #0x1 // #1
|
||
5da4: 1ac42108 lsl w8, w8, w4
|
||
5da8: 93407c86 sxtw x6, w4
|
||
5dac: f90088e2 str x2, [x7, #272]
|
||
5db0: b94310a2 ldr w2, [x5, #784]
|
||
5db4: 2a080042 orr w2, w2, w8
|
||
5db8: b90310a2 str w2, [x5, #784]
|
||
5dbc: f90108e3 str x3, [x7, #528]
|
||
5dc0: 7100081f cmp w0, #0x2
|
||
5dc4: 54fffe01 b.ne 5d84 <__register_exitproc+0x24> // b.any
|
||
5dc8: b94314a0 ldr w0, [x5, #788]
|
||
5dcc: 910008c2 add x2, x6, #0x2
|
||
5dd0: 11000484 add w4, w4, #0x1
|
||
5dd4: b90008a4 str w4, [x5, #8]
|
||
5dd8: 2a080008 orr w8, w0, w8
|
||
5ddc: b90314a8 str w8, [x5, #788]
|
||
5de0: 52800000 mov w0, #0x0 // #0
|
||
5de4: f82278a1 str x1, [x5, x2, lsl #3]
|
||
5de8: 17ffffec b 5d98 <__register_exitproc+0x38>
|
||
5dec: 91080085 add x5, x4, #0x200
|
||
5df0: f900fc85 str x5, [x4, #504]
|
||
5df4: 17ffffdf b 5d70 <__register_exitproc+0x10>
|
||
5df8: 12800000 mov w0, #0xffffffff // #-1
|
||
5dfc: d65f03c0 ret
|
||
|
||
0000000000005e00 <__sflush_r>:
|
||
5e00: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
5e04: 910003fd mov x29, sp
|
||
5e08: a9025bf5 stp x21, x22, [sp, #32]
|
||
5e0c: aa0003f6 mov x22, x0
|
||
5e10: 79c02020 ldrsh w0, [x1, #16]
|
||
5e14: a90153f3 stp x19, x20, [sp, #16]
|
||
5e18: aa0103f3 mov x19, x1
|
||
5e1c: 37180560 tbnz w0, #3, 5ec8 <__sflush_r+0xc8>
|
||
5e20: 32150000 orr w0, w0, #0x800
|
||
5e24: 79002020 strh w0, [x1, #16]
|
||
5e28: b9400821 ldr w1, [x1, #8]
|
||
5e2c: 7100003f cmp w1, #0x0
|
||
5e30: 5400092d b.le 5f54 <__sflush_r+0x154>
|
||
5e34: f9402664 ldr x4, [x19, #72]
|
||
5e38: b4000944 cbz x4, 5f60 <__sflush_r+0x160>
|
||
5e3c: b94002d4 ldr w20, [x22]
|
||
5e40: 12003c01 and w1, w0, #0xffff
|
||
5e44: b90002df str wzr, [x22]
|
||
5e48: 37600960 tbnz w0, #12, 5f74 <__sflush_r+0x174>
|
||
5e4c: f9401a61 ldr x1, [x19, #48]
|
||
5e50: d2800002 mov x2, #0x0 // #0
|
||
5e54: aa1603e0 mov x0, x22
|
||
5e58: 52800023 mov w3, #0x1 // #1
|
||
5e5c: d63f0080 blr x4
|
||
5e60: aa0003e2 mov x2, x0
|
||
5e64: b100041f cmn x0, #0x1
|
||
5e68: 54000d00 b.eq 6008 <__sflush_r+0x208> // b.none
|
||
5e6c: 79402261 ldrh w1, [x19, #16]
|
||
5e70: f9402664 ldr x4, [x19, #72]
|
||
5e74: 361000e1 tbz w1, #2, 5e90 <__sflush_r+0x90>
|
||
5e78: f9402e60 ldr x0, [x19, #88]
|
||
5e7c: b9800a61 ldrsw x1, [x19, #8]
|
||
5e80: cb010042 sub x2, x2, x1
|
||
5e84: b4000060 cbz x0, 5e90 <__sflush_r+0x90>
|
||
5e88: b9807260 ldrsw x0, [x19, #112]
|
||
5e8c: cb000042 sub x2, x2, x0
|
||
5e90: f9401a61 ldr x1, [x19, #48]
|
||
5e94: aa1603e0 mov x0, x22
|
||
5e98: 52800003 mov w3, #0x0 // #0
|
||
5e9c: d63f0080 blr x4
|
||
5ea0: b100041f cmn x0, #0x1
|
||
5ea4: 540006c1 b.ne 5f7c <__sflush_r+0x17c> // b.any
|
||
5ea8: b94002c2 ldr w2, [x22]
|
||
5eac: 7100745f cmp w2, #0x1d
|
||
5eb0: 54000929 b.ls 5fd4 <__sflush_r+0x1d4> // b.plast
|
||
5eb4: 79c02261 ldrsh w1, [x19, #16]
|
||
5eb8: 321a0021 orr w1, w1, #0x40
|
||
5ebc: 12800000 mov w0, #0xffffffff // #-1
|
||
5ec0: 79002261 strh w1, [x19, #16]
|
||
5ec4: 14000028 b 5f64 <__sflush_r+0x164>
|
||
5ec8: f9400c35 ldr x21, [x1, #24]
|
||
5ecc: b40004b5 cbz x21, 5f60 <__sflush_r+0x160>
|
||
5ed0: 12003c01 and w1, w0, #0xffff
|
||
5ed4: 52800002 mov w2, #0x0 // #0
|
||
5ed8: f9400260 ldr x0, [x19]
|
||
5edc: f9000275 str x21, [x19]
|
||
5ee0: cb150000 sub x0, x0, x21
|
||
5ee4: 2a0003f4 mov w20, w0
|
||
5ee8: f240043f tst x1, #0x3
|
||
5eec: 54000041 b.ne 5ef4 <__sflush_r+0xf4> // b.any
|
||
5ef0: b9402262 ldr w2, [x19, #32]
|
||
5ef4: b9000e62 str w2, [x19, #12]
|
||
5ef8: 7100001f cmp w0, #0x0
|
||
5efc: 540000ac b.gt 5f10 <__sflush_r+0x110>
|
||
5f00: 14000018 b 5f60 <__sflush_r+0x160>
|
||
5f04: 8b20c2b5 add x21, x21, w0, sxtw
|
||
5f08: 7100029f cmp w20, #0x0
|
||
5f0c: 540002ad b.le 5f60 <__sflush_r+0x160>
|
||
5f10: f9401a61 ldr x1, [x19, #48]
|
||
5f14: 2a1403e3 mov w3, w20
|
||
5f18: f9402264 ldr x4, [x19, #64]
|
||
5f1c: aa1503e2 mov x2, x21
|
||
5f20: aa1603e0 mov x0, x22
|
||
5f24: d63f0080 blr x4
|
||
5f28: 4b000294 sub w20, w20, w0
|
||
5f2c: 7100001f cmp w0, #0x0
|
||
5f30: 54fffeac b.gt 5f04 <__sflush_r+0x104>
|
||
5f34: 79402261 ldrh w1, [x19, #16]
|
||
5f38: 12800000 mov w0, #0xffffffff // #-1
|
||
5f3c: a9425bf5 ldp x21, x22, [sp, #32]
|
||
5f40: 321a0021 orr w1, w1, #0x40
|
||
5f44: 79002261 strh w1, [x19, #16]
|
||
5f48: a94153f3 ldp x19, x20, [sp, #16]
|
||
5f4c: a8c37bfd ldp x29, x30, [sp], #48
|
||
5f50: d65f03c0 ret
|
||
5f54: b9407261 ldr w1, [x19, #112]
|
||
5f58: 7100003f cmp w1, #0x0
|
||
5f5c: 54fff6cc b.gt 5e34 <__sflush_r+0x34>
|
||
5f60: 52800000 mov w0, #0x0 // #0
|
||
5f64: a94153f3 ldp x19, x20, [sp, #16]
|
||
5f68: a9425bf5 ldp x21, x22, [sp, #32]
|
||
5f6c: a8c37bfd ldp x29, x30, [sp], #48
|
||
5f70: d65f03c0 ret
|
||
5f74: f9404a62 ldr x2, [x19, #144]
|
||
5f78: 17ffffbf b 5e74 <__sflush_r+0x74>
|
||
5f7c: 79c02261 ldrsh w1, [x19, #16]
|
||
5f80: f9400e62 ldr x2, [x19, #24]
|
||
5f84: 12147821 and w1, w1, #0xfffff7ff
|
||
5f88: f9000262 str x2, [x19]
|
||
5f8c: b9000a7f str wzr, [x19, #8]
|
||
5f90: 79002261 strh w1, [x19, #16]
|
||
5f94: 36600041 tbz w1, #12, 5f9c <__sflush_r+0x19c>
|
||
5f98: f9004a60 str x0, [x19, #144]
|
||
5f9c: f9402e61 ldr x1, [x19, #88]
|
||
5fa0: b90002d4 str w20, [x22]
|
||
5fa4: b4fffde1 cbz x1, 5f60 <__sflush_r+0x160>
|
||
5fa8: 9101d260 add x0, x19, #0x74
|
||
5fac: eb00003f cmp x1, x0
|
||
5fb0: 54000060 b.eq 5fbc <__sflush_r+0x1bc> // b.none
|
||
5fb4: aa1603e0 mov x0, x22
|
||
5fb8: 940001f6 bl 6790 <_free_r>
|
||
5fbc: f9002e7f str xzr, [x19, #88]
|
||
5fc0: 52800000 mov w0, #0x0 // #0
|
||
5fc4: a94153f3 ldp x19, x20, [sp, #16]
|
||
5fc8: a9425bf5 ldp x21, x22, [sp, #32]
|
||
5fcc: a8c37bfd ldp x29, x30, [sp], #48
|
||
5fd0: d65f03c0 ret
|
||
5fd4: d2800023 mov x3, #0x1 // #1
|
||
5fd8: 79c02261 ldrsh w1, [x19, #16]
|
||
5fdc: f2a40803 movk x3, #0x2040, lsl #16
|
||
5fe0: 9ac22463 lsr x3, x3, x2
|
||
5fe4: 3607f6a3 tbz w3, #0, 5eb8 <__sflush_r+0xb8>
|
||
5fe8: f9400e63 ldr x3, [x19, #24]
|
||
5fec: 12147821 and w1, w1, #0xfffff7ff
|
||
5ff0: f9000263 str x3, [x19]
|
||
5ff4: b9000a7f str wzr, [x19, #8]
|
||
5ff8: 79002261 strh w1, [x19, #16]
|
||
5ffc: 3667fd01 tbz w1, #12, 5f9c <__sflush_r+0x19c>
|
||
6000: 35fffce2 cbnz w2, 5f9c <__sflush_r+0x19c>
|
||
6004: 17ffffe5 b 5f98 <__sflush_r+0x198>
|
||
6008: b94002c0 ldr w0, [x22]
|
||
600c: 34fff300 cbz w0, 5e6c <__sflush_r+0x6c>
|
||
6010: 7100741f cmp w0, #0x1d
|
||
6014: 7a561804 ccmp w0, #0x16, #0x4, ne // ne = any
|
||
6018: 54fff8e1 b.ne 5f34 <__sflush_r+0x134> // b.any
|
||
601c: 52800000 mov w0, #0x0 // #0
|
||
6020: b90002d4 str w20, [x22]
|
||
6024: 17ffffd0 b 5f64 <__sflush_r+0x164>
|
||
6028: d503201f nop
|
||
602c: d503201f nop
|
||
|
||
0000000000006030 <_fflush_r>:
|
||
6030: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
6034: 910003fd mov x29, sp
|
||
6038: f9000bf3 str x19, [sp, #16]
|
||
603c: aa0003f3 mov x19, x0
|
||
6040: b4000060 cbz x0, 604c <_fflush_r+0x1c>
|
||
6044: b9405002 ldr w2, [x0, #80]
|
||
6048: 340000e2 cbz w2, 6064 <_fflush_r+0x34>
|
||
604c: 79c02020 ldrsh w0, [x1, #16]
|
||
6050: 35000140 cbnz w0, 6078 <_fflush_r+0x48>
|
||
6054: 52800000 mov w0, #0x0 // #0
|
||
6058: f9400bf3 ldr x19, [sp, #16]
|
||
605c: a8c37bfd ldp x29, x30, [sp], #48
|
||
6060: d65f03c0 ret
|
||
6064: f90017e1 str x1, [sp, #40]
|
||
6068: 940000f2 bl 6430 <__sinit>
|
||
606c: f94017e1 ldr x1, [sp, #40]
|
||
6070: 79c02020 ldrsh w0, [x1, #16]
|
||
6074: 34ffff00 cbz w0, 6054 <_fflush_r+0x24>
|
||
6078: aa1303e0 mov x0, x19
|
||
607c: f9400bf3 ldr x19, [sp, #16]
|
||
6080: a8c37bfd ldp x29, x30, [sp], #48
|
||
6084: 17ffff5f b 5e00 <__sflush_r>
|
||
6088: d503201f nop
|
||
608c: d503201f nop
|
||
|
||
0000000000006090 <fflush>:
|
||
6090: b4000340 cbz x0, 60f8 <fflush+0x68>
|
||
6094: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
6098: 910003fd mov x29, sp
|
||
609c: a90153f3 stp x19, x20, [sp, #16]
|
||
60a0: aa0003f3 mov x19, x0
|
||
60a4: d0000020 adrp x0, c000 <IpcTestNull+0x6e8>
|
||
60a8: f9409814 ldr x20, [x0, #304]
|
||
60ac: b4000074 cbz x20, 60b8 <fflush+0x28>
|
||
60b0: b9405280 ldr w0, [x20, #80]
|
||
60b4: 34000180 cbz w0, 60e4 <fflush+0x54>
|
||
60b8: 79c02260 ldrsh w0, [x19, #16]
|
||
60bc: 350000a0 cbnz w0, 60d0 <fflush+0x40>
|
||
60c0: 52800000 mov w0, #0x0 // #0
|
||
60c4: a94153f3 ldp x19, x20, [sp, #16]
|
||
60c8: a8c27bfd ldp x29, x30, [sp], #32
|
||
60cc: d65f03c0 ret
|
||
60d0: aa1303e1 mov x1, x19
|
||
60d4: aa1403e0 mov x0, x20
|
||
60d8: a94153f3 ldp x19, x20, [sp, #16]
|
||
60dc: a8c27bfd ldp x29, x30, [sp], #32
|
||
60e0: 17ffff48 b 5e00 <__sflush_r>
|
||
60e4: aa1403e0 mov x0, x20
|
||
60e8: 940000d2 bl 6430 <__sinit>
|
||
60ec: 79c02260 ldrsh w0, [x19, #16]
|
||
60f0: 34fffe80 cbz w0, 60c0 <fflush+0x30>
|
||
60f4: 17fffff7 b 60d0 <fflush+0x40>
|
||
60f8: b0000020 adrp x0, b000 <pow10.0+0x80>
|
||
60fc: 90000001 adrp x1, 6000 <__sflush_r+0x200>
|
||
6100: 9100c021 add x1, x1, #0x30
|
||
6104: f9412400 ldr x0, [x0, #584]
|
||
6108: 140003b2 b 6fd0 <_fwalk_reent>
|
||
610c: d503201f nop
|
||
|
||
0000000000006110 <__fp_lock>:
|
||
6110: 52800000 mov w0, #0x0 // #0
|
||
6114: d65f03c0 ret
|
||
6118: d503201f nop
|
||
611c: d503201f nop
|
||
|
||
0000000000006120 <_cleanup_r>:
|
||
6120: 90000021 adrp x1, a000 <__swbuf_r+0xb0>
|
||
6124: 911e0021 add x1, x1, #0x780
|
||
6128: 140003aa b 6fd0 <_fwalk_reent>
|
||
612c: d503201f nop
|
||
|
||
0000000000006130 <__fp_unlock>:
|
||
6130: 52800000 mov w0, #0x0 // #0
|
||
6134: d65f03c0 ret
|
||
6138: d503201f nop
|
||
613c: d503201f nop
|
||
|
||
0000000000006140 <__sinit.part.0>:
|
||
6140: a9bb7bfd stp x29, x30, [sp, #-80]!
|
||
6144: 52800065 mov w5, #0x3 // #3
|
||
6148: 90000001 adrp x1, 6000 <__sflush_r+0x200>
|
||
614c: 910003fd mov x29, sp
|
||
6150: a9025bf5 stp x21, x22, [sp, #32]
|
||
6154: aa0003f5 mov x21, x0
|
||
6158: 9114e2a4 add x4, x21, #0x538
|
||
615c: a90153f3 stp x19, x20, [sp, #16]
|
||
6160: 91048020 add x0, x1, #0x120
|
||
6164: 52800083 mov w3, #0x4 // #4
|
||
6168: f94006b3 ldr x19, [x21, #8]
|
||
616c: a90363f7 stp x23, x24, [sp, #48]
|
||
6170: d2800102 mov x2, #0x8 // #8
|
||
6174: f90023f9 str x25, [sp, #64]
|
||
6178: 52800001 mov w1, #0x0 // #0
|
||
617c: f9002ea0 str x0, [x21, #88]
|
||
6180: 91029260 add x0, x19, #0xa4
|
||
6184: f90292bf str xzr, [x21, #1312]
|
||
6188: f0000018 adrp x24, 9000 <_raise_r+0x40>
|
||
618c: b9052aa5 str w5, [x21, #1320]
|
||
6190: 91120318 add x24, x24, #0x480
|
||
6194: f9029aa4 str x4, [x21, #1328]
|
||
6198: f0000017 adrp x23, 9000 <_raise_r+0x40>
|
||
619c: a9007e7f stp xzr, xzr, [x19]
|
||
61a0: 9113c2f7 add x23, x23, #0x4f0
|
||
61a4: f0000016 adrp x22, 9000 <_raise_r+0x40>
|
||
61a8: b9001263 str w3, [x19, #16]
|
||
61ac: 911502d6 add x22, x22, #0x540
|
||
61b0: f9000e7f str xzr, [x19, #24]
|
||
61b4: f0000019 adrp x25, 9000 <_raise_r+0x40>
|
||
61b8: b900227f str wzr, [x19, #32]
|
||
61bc: 91108339 add x25, x25, #0x420
|
||
61c0: b9002a7f str wzr, [x19, #40]
|
||
61c4: b900ae7f str wzr, [x19, #172]
|
||
61c8: 97fff63e bl 3ac0 <memset>
|
||
61cc: f9400ab4 ldr x20, [x21, #16]
|
||
61d0: 52800123 mov w3, #0x9 // #9
|
||
61d4: a9036673 stp x19, x25, [x19, #48]
|
||
61d8: 72a00023 movk w3, #0x1, lsl #16
|
||
61dc: 91029280 add x0, x20, #0xa4
|
||
61e0: a9045e78 stp x24, x23, [x19, #64]
|
||
61e4: d2800102 mov x2, #0x8 // #8
|
||
61e8: 52800001 mov w1, #0x0 // #0
|
||
61ec: f9002a76 str x22, [x19, #80]
|
||
61f0: a9007e9f stp xzr, xzr, [x20]
|
||
61f4: b9001283 str w3, [x20, #16]
|
||
61f8: f9000e9f str xzr, [x20, #24]
|
||
61fc: b900229f str wzr, [x20, #32]
|
||
6200: b9002a9f str wzr, [x20, #40]
|
||
6204: b900ae9f str wzr, [x20, #172]
|
||
6208: 97fff62e bl 3ac0 <memset>
|
||
620c: f9400eb3 ldr x19, [x21, #24]
|
||
6210: 52800243 mov w3, #0x12 // #18
|
||
6214: a9036694 stp x20, x25, [x20, #48]
|
||
6218: 72a00043 movk w3, #0x2, lsl #16
|
||
621c: 91029260 add x0, x19, #0xa4
|
||
6220: a9045e98 stp x24, x23, [x20, #64]
|
||
6224: d2800102 mov x2, #0x8 // #8
|
||
6228: 52800001 mov w1, #0x0 // #0
|
||
622c: f9002a96 str x22, [x20, #80]
|
||
6230: a9007e7f stp xzr, xzr, [x19]
|
||
6234: b9001263 str w3, [x19, #16]
|
||
6238: f9000e7f str xzr, [x19, #24]
|
||
623c: b900227f str wzr, [x19, #32]
|
||
6240: b9002a7f str wzr, [x19, #40]
|
||
6244: b900ae7f str wzr, [x19, #172]
|
||
6248: 97fff61e bl 3ac0 <memset>
|
||
624c: a9036673 stp x19, x25, [x19, #48]
|
||
6250: 52800020 mov w0, #0x1 // #1
|
||
6254: a9045e78 stp x24, x23, [x19, #64]
|
||
6258: f9002a76 str x22, [x19, #80]
|
||
625c: a94153f3 ldp x19, x20, [sp, #16]
|
||
6260: a94363f7 ldp x23, x24, [sp, #48]
|
||
6264: f94023f9 ldr x25, [sp, #64]
|
||
6268: b90052a0 str w0, [x21, #80]
|
||
626c: a9425bf5 ldp x21, x22, [sp, #32]
|
||
6270: a8c57bfd ldp x29, x30, [sp], #80
|
||
6274: d65f03c0 ret
|
||
6278: d503201f nop
|
||
627c: d503201f nop
|
||
|
||
0000000000006280 <__sfmoreglue>:
|
||
6280: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
6284: 52801602 mov w2, #0xb0 // #176
|
||
6288: 910003fd mov x29, sp
|
||
628c: a90153f3 stp x19, x20, [sp, #16]
|
||
6290: 51000434 sub w20, w1, #0x1
|
||
6294: f90013f5 str x21, [sp, #32]
|
||
6298: 2a0103f5 mov w21, w1
|
||
629c: 9b227e94 smull x20, w20, w2
|
||
62a0: 91032281 add x1, x20, #0xc8
|
||
62a4: 97fff367 bl 3040 <_malloc_r>
|
||
62a8: aa0003f3 mov x19, x0
|
||
62ac: b4000100 cbz x0, 62cc <__sfmoreglue+0x4c>
|
||
62b0: 91006000 add x0, x0, #0x18
|
||
62b4: f900027f str xzr, [x19]
|
||
62b8: b9000a75 str w21, [x19, #8]
|
||
62bc: 9102c282 add x2, x20, #0xb0
|
||
62c0: f9000a60 str x0, [x19, #16]
|
||
62c4: 52800001 mov w1, #0x0 // #0
|
||
62c8: 97fff5fe bl 3ac0 <memset>
|
||
62cc: aa1303e0 mov x0, x19
|
||
62d0: a94153f3 ldp x19, x20, [sp, #16]
|
||
62d4: f94013f5 ldr x21, [sp, #32]
|
||
62d8: a8c37bfd ldp x29, x30, [sp], #48
|
||
62dc: d65f03c0 ret
|
||
|
||
00000000000062e0 <__sfp>:
|
||
62e0: a9bc7bfd stp x29, x30, [sp, #-64]!
|
||
62e4: b0000021 adrp x1, b000 <pow10.0+0x80>
|
||
62e8: 910003fd mov x29, sp
|
||
62ec: a90153f3 stp x19, x20, [sp, #16]
|
||
62f0: f9412434 ldr x20, [x1, #584]
|
||
62f4: f9001fe0 str x0, [sp, #56]
|
||
62f8: f90013f5 str x21, [sp, #32]
|
||
62fc: b9405280 ldr w0, [x20, #80]
|
||
6300: 34000560 cbz w0, 63ac <__sfp+0xcc>
|
||
6304: 91148294 add x20, x20, #0x520
|
||
6308: 52800095 mov w21, #0x4 // #4
|
||
630c: b9400a80 ldr w0, [x20, #8]
|
||
6310: f9400a93 ldr x19, [x20, #16]
|
||
6314: 7100001f cmp w0, #0x0
|
||
6318: 5400042d b.le 639c <__sfp+0xbc>
|
||
631c: 51000400 sub w0, w0, #0x1
|
||
6320: 91000400 add x0, x0, #0x1
|
||
6324: 8b000401 add x1, x0, x0, lsl #1
|
||
6328: d37ef421 lsl x1, x1, #2
|
||
632c: cb000021 sub x1, x1, x0
|
||
6330: 8b011261 add x1, x19, x1, lsl #4
|
||
6334: 14000004 b 6344 <__sfp+0x64>
|
||
6338: 9102c273 add x19, x19, #0xb0
|
||
633c: eb01027f cmp x19, x1
|
||
6340: 540002e0 b.eq 639c <__sfp+0xbc> // b.none
|
||
6344: 79c02260 ldrsh w0, [x19, #16]
|
||
6348: 35ffff80 cbnz w0, 6338 <__sfp+0x58>
|
||
634c: 129fffc0 mov w0, #0xffff0001 // #-65535
|
||
6350: a9007e7f stp xzr, xzr, [x19]
|
||
6354: d2800102 mov x2, #0x8 // #8
|
||
6358: b9001260 str w0, [x19, #16]
|
||
635c: 52800001 mov w1, #0x0 // #0
|
||
6360: f9000e7f str xzr, [x19, #24]
|
||
6364: 91029260 add x0, x19, #0xa4
|
||
6368: b900227f str wzr, [x19, #32]
|
||
636c: b9002a7f str wzr, [x19, #40]
|
||
6370: b900ae7f str wzr, [x19, #172]
|
||
6374: 97fff5d3 bl 3ac0 <memset>
|
||
6378: f9002e7f str xzr, [x19, #88]
|
||
637c: b900627f str wzr, [x19, #96]
|
||
6380: f9003e7f str xzr, [x19, #120]
|
||
6384: b900827f str wzr, [x19, #128]
|
||
6388: aa1303e0 mov x0, x19
|
||
638c: a94153f3 ldp x19, x20, [sp, #16]
|
||
6390: f94013f5 ldr x21, [sp, #32]
|
||
6394: a8c47bfd ldp x29, x30, [sp], #64
|
||
6398: d65f03c0 ret
|
||
639c: f9400293 ldr x19, [x20]
|
||
63a0: b40000d3 cbz x19, 63b8 <__sfp+0xd8>
|
||
63a4: aa1303f4 mov x20, x19
|
||
63a8: 17ffffd9 b 630c <__sfp+0x2c>
|
||
63ac: aa1403e0 mov x0, x20
|
||
63b0: 97ffff64 bl 6140 <__sinit.part.0>
|
||
63b4: 17ffffd4 b 6304 <__sfp+0x24>
|
||
63b8: f9401fe0 ldr x0, [sp, #56]
|
||
63bc: d2805b01 mov x1, #0x2d8 // #728
|
||
63c0: 97fff320 bl 3040 <_malloc_r>
|
||
63c4: aa0003f3 mov x19, x0
|
||
63c8: b4000160 cbz x0, 63f4 <__sfp+0x114>
|
||
63cc: 91006000 add x0, x0, #0x18
|
||
63d0: f900027f str xzr, [x19]
|
||
63d4: b9000a75 str w21, [x19, #8]
|
||
63d8: d2805802 mov x2, #0x2c0 // #704
|
||
63dc: f9000a60 str x0, [x19, #16]
|
||
63e0: 52800001 mov w1, #0x0 // #0
|
||
63e4: 97fff5b7 bl 3ac0 <memset>
|
||
63e8: f9000293 str x19, [x20]
|
||
63ec: aa1303f4 mov x20, x19
|
||
63f0: 17ffffc7 b 630c <__sfp+0x2c>
|
||
63f4: f9401fe1 ldr x1, [sp, #56]
|
||
63f8: f900029f str xzr, [x20]
|
||
63fc: 52800180 mov w0, #0xc // #12
|
||
6400: b9000020 str w0, [x1]
|
||
6404: 17ffffe1 b 6388 <__sfp+0xa8>
|
||
6408: d503201f nop
|
||
640c: d503201f nop
|
||
|
||
0000000000006410 <_cleanup>:
|
||
6410: b0000020 adrp x0, b000 <pow10.0+0x80>
|
||
6414: 90000021 adrp x1, a000 <__swbuf_r+0xb0>
|
||
6418: 911e0021 add x1, x1, #0x780
|
||
641c: f9412400 ldr x0, [x0, #584]
|
||
6420: 140002ec b 6fd0 <_fwalk_reent>
|
||
6424: d503201f nop
|
||
6428: d503201f nop
|
||
642c: d503201f nop
|
||
|
||
0000000000006430 <__sinit>:
|
||
6430: b9405001 ldr w1, [x0, #80]
|
||
6434: 34000041 cbz w1, 643c <__sinit+0xc>
|
||
6438: d65f03c0 ret
|
||
643c: 17ffff41 b 6140 <__sinit.part.0>
|
||
|
||
0000000000006440 <__sfp_lock_acquire>:
|
||
6440: d65f03c0 ret
|
||
6444: d503201f nop
|
||
6448: d503201f nop
|
||
644c: d503201f nop
|
||
|
||
0000000000006450 <__sfp_lock_release>:
|
||
6450: d65f03c0 ret
|
||
6454: d503201f nop
|
||
6458: d503201f nop
|
||
645c: d503201f nop
|
||
|
||
0000000000006460 <__sinit_lock_acquire>:
|
||
6460: d65f03c0 ret
|
||
6464: d503201f nop
|
||
6468: d503201f nop
|
||
646c: d503201f nop
|
||
|
||
0000000000006470 <__sinit_lock_release>:
|
||
6470: d65f03c0 ret
|
||
6474: d503201f nop
|
||
6478: d503201f nop
|
||
647c: d503201f nop
|
||
|
||
0000000000006480 <__fp_lock_all>:
|
||
6480: d0000020 adrp x0, c000 <IpcTestNull+0x6e8>
|
||
6484: 90000001 adrp x1, 6000 <__sflush_r+0x200>
|
||
6488: 91044021 add x1, x1, #0x110
|
||
648c: f9409800 ldr x0, [x0, #304]
|
||
6490: 140002a8 b 6f30 <_fwalk>
|
||
6494: d503201f nop
|
||
6498: d503201f nop
|
||
649c: d503201f nop
|
||
|
||
00000000000064a0 <__fp_unlock_all>:
|
||
64a0: d0000020 adrp x0, c000 <IpcTestNull+0x6e8>
|
||
64a4: 90000001 adrp x1, 6000 <__sflush_r+0x200>
|
||
64a8: 9104c021 add x1, x1, #0x130
|
||
64ac: f9409800 ldr x0, [x0, #304]
|
||
64b0: 140002a0 b 6f30 <_fwalk>
|
||
64b4: d503201f nop
|
||
64b8: d503201f nop
|
||
64bc: d503201f nop
|
||
|
||
00000000000064c0 <__fputwc>:
|
||
64c0: a9bb7bfd stp x29, x30, [sp, #-80]!
|
||
64c4: 910003fd mov x29, sp
|
||
64c8: a90153f3 stp x19, x20, [sp, #16]
|
||
64cc: aa0203f3 mov x19, x2
|
||
64d0: a9025bf5 stp x21, x22, [sp, #32]
|
||
64d4: 2a0103f6 mov w22, w1
|
||
64d8: a90363f7 stp x23, x24, [sp, #48]
|
||
64dc: aa0003f7 mov x23, x0
|
||
64e0: 9400062c bl 7d90 <__locale_mb_cur_max>
|
||
64e4: 7100041f cmp w0, #0x1
|
||
64e8: 54000081 b.ne 64f8 <__fputwc+0x38> // b.any
|
||
64ec: 510006c0 sub w0, w22, #0x1
|
||
64f0: 7103f81f cmp w0, #0xfe
|
||
64f4: 54000509 b.ls 6594 <__fputwc+0xd4> // b.plast
|
||
64f8: 91029263 add x3, x19, #0xa4
|
||
64fc: 2a1603e2 mov w2, w22
|
||
6500: 910123e1 add x1, sp, #0x48
|
||
6504: aa1703e0 mov x0, x23
|
||
6508: 97fffd5e bl 5a80 <_wcrtomb_r>
|
||
650c: aa0003f5 mov x21, x0
|
||
6510: b100041f cmn x0, #0x1
|
||
6514: 54000540 b.eq 65bc <__fputwc+0xfc> // b.none
|
||
6518: b4000460 cbz x0, 65a4 <__fputwc+0xe4>
|
||
651c: 394123e1 ldrb w1, [sp, #72]
|
||
6520: 910123f8 add x24, sp, #0x48
|
||
6524: d2800014 mov x20, #0x0 // #0
|
||
6528: 14000009 b 654c <__fputwc+0x8c>
|
||
652c: f9400263 ldr x3, [x19]
|
||
6530: 91000464 add x4, x3, #0x1
|
||
6534: f9000264 str x4, [x19]
|
||
6538: 39000061 strb w1, [x3]
|
||
653c: 91000694 add x20, x20, #0x1
|
||
6540: eb15029f cmp x20, x21
|
||
6544: 54000302 b.cs 65a4 <__fputwc+0xe4> // b.hs, b.nlast
|
||
6548: 38786a81 ldrb w1, [x20, x24]
|
||
654c: b9400e63 ldr w3, [x19, #12]
|
||
6550: 51000463 sub w3, w3, #0x1
|
||
6554: b9000e63 str w3, [x19, #12]
|
||
6558: 36fffea3 tbz w3, #31, 652c <__fputwc+0x6c>
|
||
655c: b9402a64 ldr w4, [x19, #40]
|
||
6560: aa1303e2 mov x2, x19
|
||
6564: aa1703e0 mov x0, x23
|
||
6568: 6b04007f cmp w3, w4
|
||
656c: 7a4aa824 ccmp w1, #0xa, #0x4, ge // ge = tcont
|
||
6570: 54fffde1 b.ne 652c <__fputwc+0x6c> // b.any
|
||
6574: 94000e77 bl 9f50 <__swbuf_r>
|
||
6578: 3100041f cmn w0, #0x1
|
||
657c: 54fffe01 b.ne 653c <__fputwc+0x7c> // b.any
|
||
6580: a94153f3 ldp x19, x20, [sp, #16]
|
||
6584: a9425bf5 ldp x21, x22, [sp, #32]
|
||
6588: a94363f7 ldp x23, x24, [sp, #48]
|
||
658c: a8c57bfd ldp x29, x30, [sp], #80
|
||
6590: d65f03c0 ret
|
||
6594: 12001ec1 and w1, w22, #0xff
|
||
6598: d2800035 mov x21, #0x1 // #1
|
||
659c: 390123e1 strb w1, [sp, #72]
|
||
65a0: 17ffffe0 b 6520 <__fputwc+0x60>
|
||
65a4: 2a1603e0 mov w0, w22
|
||
65a8: a94153f3 ldp x19, x20, [sp, #16]
|
||
65ac: a9425bf5 ldp x21, x22, [sp, #32]
|
||
65b0: a94363f7 ldp x23, x24, [sp, #48]
|
||
65b4: a8c57bfd ldp x29, x30, [sp], #80
|
||
65b8: d65f03c0 ret
|
||
65bc: 79402261 ldrh w1, [x19, #16]
|
||
65c0: 321a0021 orr w1, w1, #0x40
|
||
65c4: 79002261 strh w1, [x19, #16]
|
||
65c8: 17ffffee b 6580 <__fputwc+0xc0>
|
||
65cc: d503201f nop
|
||
|
||
00000000000065d0 <_fputwc_r>:
|
||
65d0: 79c02043 ldrsh w3, [x2, #16]
|
||
65d4: 376800c3 tbnz w3, #13, 65ec <_fputwc_r+0x1c>
|
||
65d8: b940ac44 ldr w4, [x2, #172]
|
||
65dc: 32130063 orr w3, w3, #0x2000
|
||
65e0: 79002043 strh w3, [x2, #16]
|
||
65e4: 32130083 orr w3, w4, #0x2000
|
||
65e8: b900ac43 str w3, [x2, #172]
|
||
65ec: 17ffffb5 b 64c0 <__fputwc>
|
||
|
||
00000000000065f0 <fputwc>:
|
||
65f0: d0000023 adrp x3, c000 <IpcTestNull+0x6e8>
|
||
65f4: aa0103e2 mov x2, x1
|
||
65f8: 2a0003e1 mov w1, w0
|
||
65fc: f9409860 ldr x0, [x3, #304]
|
||
6600: b4000060 cbz x0, 660c <fputwc+0x1c>
|
||
6604: b9405003 ldr w3, [x0, #80]
|
||
6608: 34000123 cbz w3, 662c <fputwc+0x3c>
|
||
660c: 79c02043 ldrsh w3, [x2, #16]
|
||
6610: 376800c3 tbnz w3, #13, 6628 <fputwc+0x38>
|
||
6614: b940ac44 ldr w4, [x2, #172]
|
||
6618: 32130063 orr w3, w3, #0x2000
|
||
661c: 79002043 strh w3, [x2, #16]
|
||
6620: 32130083 orr w3, w4, #0x2000
|
||
6624: b900ac43 str w3, [x2, #172]
|
||
6628: 17ffffa6 b 64c0 <__fputwc>
|
||
662c: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
6630: 910003fd mov x29, sp
|
||
6634: f9000fe0 str x0, [sp, #24]
|
||
6638: b90027e1 str w1, [sp, #36]
|
||
663c: f90017e2 str x2, [sp, #40]
|
||
6640: 97ffff7c bl 6430 <__sinit>
|
||
6644: f94017e2 ldr x2, [sp, #40]
|
||
6648: b94027e1 ldr w1, [sp, #36]
|
||
664c: f9400fe0 ldr x0, [sp, #24]
|
||
6650: 79c02043 ldrsh w3, [x2, #16]
|
||
6654: 376800c3 tbnz w3, #13, 666c <fputwc+0x7c>
|
||
6658: b940ac44 ldr w4, [x2, #172]
|
||
665c: 32130063 orr w3, w3, #0x2000
|
||
6660: 79002043 strh w3, [x2, #16]
|
||
6664: 32130083 orr w3, w4, #0x2000
|
||
6668: b900ac43 str w3, [x2, #172]
|
||
666c: a8c37bfd ldp x29, x30, [sp], #48
|
||
6670: 17ffff94 b 64c0 <__fputwc>
|
||
6674: d503201f nop
|
||
6678: d503201f nop
|
||
667c: d503201f nop
|
||
|
||
0000000000006680 <_malloc_trim_r>:
|
||
6680: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
6684: 910003fd mov x29, sp
|
||
6688: a9025bf5 stp x21, x22, [sp, #32]
|
||
668c: d0000036 adrp x22, c000 <IpcTestNull+0x6e8>
|
||
6690: 912202d6 add x22, x22, #0x880
|
||
6694: aa0003f5 mov x21, x0
|
||
6698: a90153f3 stp x19, x20, [sp, #16]
|
||
669c: aa0103f3 mov x19, x1
|
||
66a0: 97fff580 bl 3ca0 <__malloc_lock>
|
||
66a4: f9400ac0 ldr x0, [x22, #16]
|
||
66a8: f9400414 ldr x20, [x0, #8]
|
||
66ac: 927ef694 and x20, x20, #0xfffffffffffffffc
|
||
66b0: cb130293 sub x19, x20, x19
|
||
66b4: 913f7e73 add x19, x19, #0xfdf
|
||
66b8: 9274ce73 and x19, x19, #0xfffffffffffff000
|
||
66bc: d1400673 sub x19, x19, #0x1, lsl #12
|
||
66c0: f13ffe7f cmp x19, #0xfff
|
||
66c4: 5400010d b.le 66e4 <_malloc_trim_r+0x64>
|
||
66c8: d2800001 mov x1, #0x0 // #0
|
||
66cc: aa1503e0 mov x0, x21
|
||
66d0: 97fff57c bl 3cc0 <_sbrk_r>
|
||
66d4: f9400ac1 ldr x1, [x22, #16]
|
||
66d8: 8b140021 add x1, x1, x20
|
||
66dc: eb01001f cmp x0, x1
|
||
66e0: 54000100 b.eq 6700 <_malloc_trim_r+0x80> // b.none
|
||
66e4: aa1503e0 mov x0, x21
|
||
66e8: 97fff572 bl 3cb0 <__malloc_unlock>
|
||
66ec: 52800000 mov w0, #0x0 // #0
|
||
66f0: a94153f3 ldp x19, x20, [sp, #16]
|
||
66f4: a9425bf5 ldp x21, x22, [sp, #32]
|
||
66f8: a8c37bfd ldp x29, x30, [sp], #48
|
||
66fc: d65f03c0 ret
|
||
6700: cb1303e1 neg x1, x19
|
||
6704: aa1503e0 mov x0, x21
|
||
6708: 97fff56e bl 3cc0 <_sbrk_r>
|
||
670c: b100041f cmn x0, #0x1
|
||
6710: 54000200 b.eq 6750 <_malloc_trim_r+0xd0> // b.none
|
||
6714: f0000022 adrp x2, d000 <__malloc_av_+0x780>
|
||
6718: cb130294 sub x20, x20, x19
|
||
671c: f9400ac3 ldr x3, [x22, #16]
|
||
6720: b2400294 orr x20, x20, #0x1
|
||
6724: b942e841 ldr w1, [x2, #744]
|
||
6728: aa1503e0 mov x0, x21
|
||
672c: f9000474 str x20, [x3, #8]
|
||
6730: 4b130033 sub w19, w1, w19
|
||
6734: b902e853 str w19, [x2, #744]
|
||
6738: 97fff55e bl 3cb0 <__malloc_unlock>
|
||
673c: 52800020 mov w0, #0x1 // #1
|
||
6740: a94153f3 ldp x19, x20, [sp, #16]
|
||
6744: a9425bf5 ldp x21, x22, [sp, #32]
|
||
6748: a8c37bfd ldp x29, x30, [sp], #48
|
||
674c: d65f03c0 ret
|
||
6750: d2800001 mov x1, #0x0 // #0
|
||
6754: aa1503e0 mov x0, x21
|
||
6758: 97fff55a bl 3cc0 <_sbrk_r>
|
||
675c: f9400ac2 ldr x2, [x22, #16]
|
||
6760: cb020001 sub x1, x0, x2
|
||
6764: f1007c3f cmp x1, #0x1f
|
||
6768: 54fffbed b.le 66e4 <_malloc_trim_r+0x64>
|
||
676c: f0000024 adrp x4, d000 <__malloc_av_+0x780>
|
||
6770: b2400021 orr x1, x1, #0x1
|
||
6774: f9000441 str x1, [x2, #8]
|
||
6778: f0000023 adrp x3, d000 <__malloc_av_+0x780>
|
||
677c: f9404881 ldr x1, [x4, #144]
|
||
6780: cb010000 sub x0, x0, x1
|
||
6784: b902e860 str w0, [x3, #744]
|
||
6788: 17ffffd7 b 66e4 <_malloc_trim_r+0x64>
|
||
678c: d503201f nop
|
||
|
||
0000000000006790 <_free_r>:
|
||
6790: b4000a21 cbz x1, 68d4 <_free_r+0x144>
|
||
6794: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
6798: 910003fd mov x29, sp
|
||
679c: a90153f3 stp x19, x20, [sp, #16]
|
||
67a0: aa0103f3 mov x19, x1
|
||
67a4: aa0003f4 mov x20, x0
|
||
67a8: 97fff53e bl 3ca0 <__malloc_lock>
|
||
67ac: f85f8265 ldur x5, [x19, #-8]
|
||
67b0: d1004263 sub x3, x19, #0x10
|
||
67b4: d0000020 adrp x0, c000 <IpcTestNull+0x6e8>
|
||
67b8: 91220000 add x0, x0, #0x880
|
||
67bc: 927ff8a2 and x2, x5, #0xfffffffffffffffe
|
||
67c0: 8b020064 add x4, x3, x2
|
||
67c4: f9400806 ldr x6, [x0, #16]
|
||
67c8: f9400481 ldr x1, [x4, #8]
|
||
67cc: 927ef421 and x1, x1, #0xfffffffffffffffc
|
||
67d0: eb0400df cmp x6, x4
|
||
67d4: 54000c60 b.eq 6960 <_free_r+0x1d0> // b.none
|
||
67d8: f9000481 str x1, [x4, #8]
|
||
67dc: 8b010086 add x6, x4, x1
|
||
67e0: 37000345 tbnz w5, #0, 6848 <_free_r+0xb8>
|
||
67e4: f85f0267 ldur x7, [x19, #-16]
|
||
67e8: d0000025 adrp x5, c000 <IpcTestNull+0x6e8>
|
||
67ec: f94004c6 ldr x6, [x6, #8]
|
||
67f0: cb070063 sub x3, x3, x7
|
||
67f4: 8b070042 add x2, x2, x7
|
||
67f8: 912240a5 add x5, x5, #0x890
|
||
67fc: 924000c6 and x6, x6, #0x1
|
||
6800: f9400867 ldr x7, [x3, #16]
|
||
6804: eb0500ff cmp x7, x5
|
||
6808: 54000940 b.eq 6930 <_free_r+0x1a0> // b.none
|
||
680c: f9400c68 ldr x8, [x3, #24]
|
||
6810: f9000ce8 str x8, [x7, #24]
|
||
6814: f9000907 str x7, [x8, #16]
|
||
6818: b50001c6 cbnz x6, 6850 <_free_r+0xc0>
|
||
681c: 8b010042 add x2, x2, x1
|
||
6820: f9400881 ldr x1, [x4, #16]
|
||
6824: b2400046 orr x6, x2, #0x1
|
||
6828: eb05003f cmp x1, x5
|
||
682c: 54000ee0 b.eq 6a08 <_free_r+0x278> // b.none
|
||
6830: f9400c84 ldr x4, [x4, #24]
|
||
6834: f9000c24 str x4, [x1, #24]
|
||
6838: f9000881 str x1, [x4, #16]
|
||
683c: f9000466 str x6, [x3, #8]
|
||
6840: f8226862 str x2, [x3, x2]
|
||
6844: 14000006 b 685c <_free_r+0xcc>
|
||
6848: f94004c5 ldr x5, [x6, #8]
|
||
684c: 36000465 tbz w5, #0, 68d8 <_free_r+0x148>
|
||
6850: b2400041 orr x1, x2, #0x1
|
||
6854: f9000461 str x1, [x3, #8]
|
||
6858: f9000082 str x2, [x4]
|
||
685c: f107fc5f cmp x2, #0x1ff
|
||
6860: 54000449 b.ls 68e8 <_free_r+0x158> // b.plast
|
||
6864: d349fc41 lsr x1, x2, #9
|
||
6868: f127fc5f cmp x2, #0x9ff
|
||
686c: 54000a28 b.hi 69b0 <_free_r+0x220> // b.pmore
|
||
6870: d346fc41 lsr x1, x2, #6
|
||
6874: 1100e424 add w4, w1, #0x39
|
||
6878: 1100e025 add w5, w1, #0x38
|
||
687c: 531f7884 lsl w4, w4, #1
|
||
6880: 937d7c84 sbfiz x4, x4, #3, #32
|
||
6884: 8b040004 add x4, x0, x4
|
||
6888: f85f0481 ldr x1, [x4], #-16
|
||
688c: eb01009f cmp x4, x1
|
||
6890: 54000ae0 b.eq 69ec <_free_r+0x25c> // b.none
|
||
6894: d503201f nop
|
||
6898: f9400420 ldr x0, [x1, #8]
|
||
689c: 927ef400 and x0, x0, #0xfffffffffffffffc
|
||
68a0: eb02001f cmp x0, x2
|
||
68a4: 54000089 b.ls 68b4 <_free_r+0x124> // b.plast
|
||
68a8: f9400821 ldr x1, [x1, #16]
|
||
68ac: eb01009f cmp x4, x1
|
||
68b0: 54ffff41 b.ne 6898 <_free_r+0x108> // b.any
|
||
68b4: f9400c24 ldr x4, [x1, #24]
|
||
68b8: a9011061 stp x1, x4, [x3, #16]
|
||
68bc: aa1403e0 mov x0, x20
|
||
68c0: f9000883 str x3, [x4, #16]
|
||
68c4: f9000c23 str x3, [x1, #24]
|
||
68c8: a94153f3 ldp x19, x20, [sp, #16]
|
||
68cc: a8c27bfd ldp x29, x30, [sp], #32
|
||
68d0: 17fff4f8 b 3cb0 <__malloc_unlock>
|
||
68d4: d65f03c0 ret
|
||
68d8: d0000025 adrp x5, c000 <IpcTestNull+0x6e8>
|
||
68dc: 8b010042 add x2, x2, x1
|
||
68e0: 912240a5 add x5, x5, #0x890
|
||
68e4: 17ffffcf b 6820 <_free_r+0x90>
|
||
68e8: d343fc42 lsr x2, x2, #3
|
||
68ec: d2800024 mov x4, #0x1 // #1
|
||
68f0: 11000441 add w1, w2, #0x1
|
||
68f4: f9400405 ldr x5, [x0, #8]
|
||
68f8: 531f7821 lsl w1, w1, #1
|
||
68fc: 13027c42 asr w2, w2, #2
|
||
6900: 8b21cc01 add x1, x0, w1, sxtw #3
|
||
6904: 9ac22082 lsl x2, x4, x2
|
||
6908: aa050042 orr x2, x2, x5
|
||
690c: f9000402 str x2, [x0, #8]
|
||
6910: f85f0420 ldr x0, [x1], #-16
|
||
6914: a9010460 stp x0, x1, [x3, #16]
|
||
6918: f9000823 str x3, [x1, #16]
|
||
691c: f9000c03 str x3, [x0, #24]
|
||
6920: aa1403e0 mov x0, x20
|
||
6924: a94153f3 ldp x19, x20, [sp, #16]
|
||
6928: a8c27bfd ldp x29, x30, [sp], #32
|
||
692c: 17fff4e1 b 3cb0 <__malloc_unlock>
|
||
6930: b50009c6 cbnz x6, 6a68 <_free_r+0x2d8>
|
||
6934: a9410085 ldp x5, x0, [x4, #16]
|
||
6938: 8b020021 add x1, x1, x2
|
||
693c: f9000ca0 str x0, [x5, #24]
|
||
6940: b2400022 orr x2, x1, #0x1
|
||
6944: f9000805 str x5, [x0, #16]
|
||
6948: aa1403e0 mov x0, x20
|
||
694c: f9000462 str x2, [x3, #8]
|
||
6950: f8216861 str x1, [x3, x1]
|
||
6954: a94153f3 ldp x19, x20, [sp, #16]
|
||
6958: a8c27bfd ldp x29, x30, [sp], #32
|
||
695c: 17fff4d5 b 3cb0 <__malloc_unlock>
|
||
6960: 8b010041 add x1, x2, x1
|
||
6964: 370000e5 tbnz w5, #0, 6980 <_free_r+0x1f0>
|
||
6968: f85f0262 ldur x2, [x19, #-16]
|
||
696c: cb020063 sub x3, x3, x2
|
||
6970: 8b020021 add x1, x1, x2
|
||
6974: a9410864 ldp x4, x2, [x3, #16]
|
||
6978: f9000c82 str x2, [x4, #24]
|
||
697c: f9000844 str x4, [x2, #16]
|
||
6980: f0000022 adrp x2, d000 <__malloc_av_+0x780>
|
||
6984: b2400024 orr x4, x1, #0x1
|
||
6988: f9000464 str x4, [x3, #8]
|
||
698c: f9404c42 ldr x2, [x2, #152]
|
||
6990: f9000803 str x3, [x0, #16]
|
||
6994: eb01005f cmp x2, x1
|
||
6998: 54fffc48 b.hi 6920 <_free_r+0x190> // b.pmore
|
||
699c: f0000021 adrp x1, d000 <__malloc_av_+0x780>
|
||
69a0: aa1403e0 mov x0, x20
|
||
69a4: f9419021 ldr x1, [x1, #800]
|
||
69a8: 97ffff36 bl 6680 <_malloc_trim_r>
|
||
69ac: 17ffffdd b 6920 <_free_r+0x190>
|
||
69b0: f100503f cmp x1, #0x14
|
||
69b4: 54000129 b.ls 69d8 <_free_r+0x248> // b.plast
|
||
69b8: f101503f cmp x1, #0x54
|
||
69bc: 54000308 b.hi 6a1c <_free_r+0x28c> // b.pmore
|
||
69c0: d34cfc41 lsr x1, x2, #12
|
||
69c4: 1101bc24 add w4, w1, #0x6f
|
||
69c8: 1101b825 add w5, w1, #0x6e
|
||
69cc: 531f7884 lsl w4, w4, #1
|
||
69d0: 937d7c84 sbfiz x4, x4, #3, #32
|
||
69d4: 17ffffac b 6884 <_free_r+0xf4>
|
||
69d8: 11017024 add w4, w1, #0x5c
|
||
69dc: 11016c25 add w5, w1, #0x5b
|
||
69e0: 531f7884 lsl w4, w4, #1
|
||
69e4: 937d7c84 sbfiz x4, x4, #3, #32
|
||
69e8: 17ffffa7 b 6884 <_free_r+0xf4>
|
||
69ec: f9400406 ldr x6, [x0, #8]
|
||
69f0: 13027ca5 asr w5, w5, #2
|
||
69f4: d2800022 mov x2, #0x1 // #1
|
||
69f8: 9ac52045 lsl x5, x2, x5
|
||
69fc: aa0600a5 orr x5, x5, x6
|
||
6a00: f9000405 str x5, [x0, #8]
|
||
6a04: 17ffffad b 68b8 <_free_r+0x128>
|
||
6a08: a9020c03 stp x3, x3, [x0, #32]
|
||
6a0c: a9009466 stp x6, x5, [x3, #8]
|
||
6a10: f9000c65 str x5, [x3, #24]
|
||
6a14: f8226862 str x2, [x3, x2]
|
||
6a18: 17ffffc2 b 6920 <_free_r+0x190>
|
||
6a1c: f105503f cmp x1, #0x154
|
||
6a20: 540000e8 b.hi 6a3c <_free_r+0x2ac> // b.pmore
|
||
6a24: d34ffc41 lsr x1, x2, #15
|
||
6a28: 1101e024 add w4, w1, #0x78
|
||
6a2c: 1101dc25 add w5, w1, #0x77
|
||
6a30: 531f7884 lsl w4, w4, #1
|
||
6a34: 937d7c84 sbfiz x4, x4, #3, #32
|
||
6a38: 17ffff93 b 6884 <_free_r+0xf4>
|
||
6a3c: f115503f cmp x1, #0x554
|
||
6a40: 540000e8 b.hi 6a5c <_free_r+0x2cc> // b.pmore
|
||
6a44: d352fc41 lsr x1, x2, #18
|
||
6a48: 1101f424 add w4, w1, #0x7d
|
||
6a4c: 1101f025 add w5, w1, #0x7c
|
||
6a50: 531f7884 lsl w4, w4, #1
|
||
6a54: 937d7c84 sbfiz x4, x4, #3, #32
|
||
6a58: 17ffff8b b 6884 <_free_r+0xf4>
|
||
6a5c: d280fe04 mov x4, #0x7f0 // #2032
|
||
6a60: 52800fc5 mov w5, #0x7e // #126
|
||
6a64: 17ffff88 b 6884 <_free_r+0xf4>
|
||
6a68: b2400040 orr x0, x2, #0x1
|
||
6a6c: f9000460 str x0, [x3, #8]
|
||
6a70: f9000082 str x2, [x4]
|
||
6a74: 17ffffab b 6920 <_free_r+0x190>
|
||
6a78: d503201f nop
|
||
6a7c: d503201f nop
|
||
|
||
0000000000006a80 <__sfvwrite_r>:
|
||
6a80: a9ba7bfd stp x29, x30, [sp, #-96]!
|
||
6a84: 910003fd mov x29, sp
|
||
6a88: a90363f7 stp x23, x24, [sp, #48]
|
||
6a8c: aa0003f7 mov x23, x0
|
||
6a90: f9400840 ldr x0, [x2, #16]
|
||
6a94: b4000460 cbz x0, 6b20 <__sfvwrite_r+0xa0>
|
||
6a98: 79402023 ldrh w3, [x1, #16]
|
||
6a9c: aa0203f8 mov x24, x2
|
||
6aa0: a90153f3 stp x19, x20, [sp, #16]
|
||
6aa4: aa0103f3 mov x19, x1
|
||
6aa8: 36180443 tbz w3, #3, 6b30 <__sfvwrite_r+0xb0>
|
||
6aac: f9400c20 ldr x0, [x1, #24]
|
||
6ab0: b4000400 cbz x0, 6b30 <__sfvwrite_r+0xb0>
|
||
6ab4: a9025bf5 stp x21, x22, [sp, #32]
|
||
6ab8: a9046bf9 stp x25, x26, [sp, #64]
|
||
6abc: f9400314 ldr x20, [x24]
|
||
6ac0: 360804a3 tbz w3, #1, 6b54 <__sfvwrite_r+0xd4>
|
||
6ac4: d2800016 mov x22, #0x0 // #0
|
||
6ac8: d2800015 mov x21, #0x0 // #0
|
||
6acc: b27653f9 mov x25, #0x7ffffc00 // #2147482624
|
||
6ad0: eb1902bf cmp x21, x25
|
||
6ad4: aa1603e2 mov x2, x22
|
||
6ad8: 9a9992a3 csel x3, x21, x25, ls // ls = plast
|
||
6adc: aa1703e0 mov x0, x23
|
||
6ae0: b4000875 cbz x21, 6bec <__sfvwrite_r+0x16c>
|
||
6ae4: f9401a61 ldr x1, [x19, #48]
|
||
6ae8: f9402264 ldr x4, [x19, #64]
|
||
6aec: d63f0080 blr x4
|
||
6af0: 7100001f cmp w0, #0x0
|
||
6af4: 5400206d b.le 6f00 <__sfvwrite_r+0x480>
|
||
6af8: f9400b01 ldr x1, [x24, #16]
|
||
6afc: 93407c00 sxtw x0, w0
|
||
6b00: 8b0002d6 add x22, x22, x0
|
||
6b04: cb0002b5 sub x21, x21, x0
|
||
6b08: cb000020 sub x0, x1, x0
|
||
6b0c: f9000b00 str x0, [x24, #16]
|
||
6b10: b5fffe00 cbnz x0, 6ad0 <__sfvwrite_r+0x50>
|
||
6b14: a94153f3 ldp x19, x20, [sp, #16]
|
||
6b18: a9425bf5 ldp x21, x22, [sp, #32]
|
||
6b1c: a9446bf9 ldp x25, x26, [sp, #64]
|
||
6b20: 52800000 mov w0, #0x0 // #0
|
||
6b24: a94363f7 ldp x23, x24, [sp, #48]
|
||
6b28: a8c67bfd ldp x29, x30, [sp], #96
|
||
6b2c: d65f03c0 ret
|
||
6b30: aa1303e1 mov x1, x19
|
||
6b34: aa1703e0 mov x0, x23
|
||
6b38: 97fffc2e bl 5bf0 <__swsetup_r>
|
||
6b3c: 35001f00 cbnz w0, 6f1c <__sfvwrite_r+0x49c>
|
||
6b40: 79402263 ldrh w3, [x19, #16]
|
||
6b44: a9025bf5 stp x21, x22, [sp, #32]
|
||
6b48: a9046bf9 stp x25, x26, [sp, #64]
|
||
6b4c: f9400314 ldr x20, [x24]
|
||
6b50: 370ffba3 tbnz w3, #1, 6ac4 <__sfvwrite_r+0x44>
|
||
6b54: a90573fb stp x27, x28, [sp, #80]
|
||
6b58: 37000503 tbnz w3, #0, 6bf8 <__sfvwrite_r+0x178>
|
||
6b5c: d280001c mov x28, #0x0 // #0
|
||
6b60: d2800015 mov x21, #0x0 // #0
|
||
6b64: d503201f nop
|
||
6b68: b40003d5 cbz x21, 6be0 <__sfvwrite_r+0x160>
|
||
6b6c: f9400266 ldr x6, [x19]
|
||
6b70: b9400e7a ldr w26, [x19, #12]
|
||
6b74: aa0603e0 mov x0, x6
|
||
6b78: 36480ac3 tbz w3, #9, 6cd0 <__sfvwrite_r+0x250>
|
||
6b7c: 93407f5b sxtw x27, w26
|
||
6b80: eb15037f cmp x27, x21
|
||
6b84: 540010c9 b.ls 6d9c <__sfvwrite_r+0x31c> // b.plast
|
||
6b88: 93407ea1 sxtw x1, w21
|
||
6b8c: aa0103f6 mov x22, x1
|
||
6b90: aa0603e0 mov x0, x6
|
||
6b94: aa0103fb mov x27, x1
|
||
6b98: 2a1503fa mov w26, w21
|
||
6b9c: aa1b03e2 mov x2, x27
|
||
6ba0: aa1c03e1 mov x1, x28
|
||
6ba4: 97fff397 bl 3a00 <memmove>
|
||
6ba8: f9400261 ldr x1, [x19]
|
||
6bac: b9400e60 ldr w0, [x19, #12]
|
||
6bb0: 8b1b0022 add x2, x1, x27
|
||
6bb4: f9000262 str x2, [x19]
|
||
6bb8: 4b1a0000 sub w0, w0, w26
|
||
6bbc: b9000e60 str w0, [x19, #12]
|
||
6bc0: f9400b00 ldr x0, [x24, #16]
|
||
6bc4: 8b16039c add x28, x28, x22
|
||
6bc8: cb1602b5 sub x21, x21, x22
|
||
6bcc: cb160016 sub x22, x0, x22
|
||
6bd0: f9000b16 str x22, [x24, #16]
|
||
6bd4: b40005d6 cbz x22, 6c8c <__sfvwrite_r+0x20c>
|
||
6bd8: 79402263 ldrh w3, [x19, #16]
|
||
6bdc: b5fffc95 cbnz x21, 6b6c <__sfvwrite_r+0xec>
|
||
6be0: a940569c ldp x28, x21, [x20]
|
||
6be4: 91004294 add x20, x20, #0x10
|
||
6be8: 17ffffe0 b 6b68 <__sfvwrite_r+0xe8>
|
||
6bec: a9405696 ldp x22, x21, [x20]
|
||
6bf0: 91004294 add x20, x20, #0x10
|
||
6bf4: 17ffffb7 b 6ad0 <__sfvwrite_r+0x50>
|
||
6bf8: 5280001a mov w26, #0x0 // #0
|
||
6bfc: 52800000 mov w0, #0x0 // #0
|
||
6c00: d280001b mov x27, #0x0 // #0
|
||
6c04: d2800019 mov x25, #0x0 // #0
|
||
6c08: b40004d9 cbz x25, 6ca0 <__sfvwrite_r+0x220>
|
||
6c0c: 34000500 cbz w0, 6cac <__sfvwrite_r+0x22c>
|
||
6c10: f9400260 ldr x0, [x19]
|
||
6c14: 93407f56 sxtw x22, w26
|
||
6c18: f9400e61 ldr x1, [x19, #24]
|
||
6c1c: eb1902df cmp x22, x25
|
||
6c20: b9400e75 ldr w21, [x19, #12]
|
||
6c24: 9a9992d6 csel x22, x22, x25, ls // ls = plast
|
||
6c28: b9402263 ldr w3, [x19, #32]
|
||
6c2c: eb01001f cmp x0, x1
|
||
6c30: 0b150075 add w21, w3, w21
|
||
6c34: 7a5582c4 ccmp w22, w21, #0x4, hi // hi = pmore
|
||
6c38: 5400132c b.gt 6e9c <__sfvwrite_r+0x41c>
|
||
6c3c: 6b16007f cmp w3, w22
|
||
6c40: 5400116c b.gt 6e6c <__sfvwrite_r+0x3ec>
|
||
6c44: f9401a61 ldr x1, [x19, #48]
|
||
6c48: aa1b03e2 mov x2, x27
|
||
6c4c: f9402264 ldr x4, [x19, #64]
|
||
6c50: aa1703e0 mov x0, x23
|
||
6c54: d63f0080 blr x4
|
||
6c58: 2a0003f5 mov w21, w0
|
||
6c5c: 7100001f cmp w0, #0x0
|
||
6c60: 5400088d b.le 6d70 <__sfvwrite_r+0x2f0>
|
||
6c64: 6b15035a subs w26, w26, w21
|
||
6c68: 52800020 mov w0, #0x1 // #1
|
||
6c6c: 54000f60 b.eq 6e58 <__sfvwrite_r+0x3d8> // b.none
|
||
6c70: f9400b01 ldr x1, [x24, #16]
|
||
6c74: 93407eb5 sxtw x21, w21
|
||
6c78: 8b15037b add x27, x27, x21
|
||
6c7c: cb150339 sub x25, x25, x21
|
||
6c80: cb150035 sub x21, x1, x21
|
||
6c84: f9000b15 str x21, [x24, #16]
|
||
6c88: b5fffc15 cbnz x21, 6c08 <__sfvwrite_r+0x188>
|
||
6c8c: a94153f3 ldp x19, x20, [sp, #16]
|
||
6c90: a9425bf5 ldp x21, x22, [sp, #32]
|
||
6c94: a9446bf9 ldp x25, x26, [sp, #64]
|
||
6c98: a94573fb ldp x27, x28, [sp, #80]
|
||
6c9c: 17ffffa1 b 6b20 <__sfvwrite_r+0xa0>
|
||
6ca0: a940669b ldp x27, x25, [x20]
|
||
6ca4: 91004294 add x20, x20, #0x10
|
||
6ca8: b4ffffd9 cbz x25, 6ca0 <__sfvwrite_r+0x220>
|
||
6cac: aa1903e2 mov x2, x25
|
||
6cb0: aa1b03e0 mov x0, x27
|
||
6cb4: 52800141 mov w1, #0xa // #10
|
||
6cb8: 9400069b bl 8724 <memchr>
|
||
6cbc: 9100041a add x26, x0, #0x1
|
||
6cc0: f100001f cmp x0, #0x0
|
||
6cc4: cb1b035a sub x26, x26, x27
|
||
6cc8: 1a99175a csinc w26, w26, w25, ne // ne = any
|
||
6ccc: 17ffffd1 b 6c10 <__sfvwrite_r+0x190>
|
||
6cd0: f9400e60 ldr x0, [x19, #24]
|
||
6cd4: eb06001f cmp x0, x6
|
||
6cd8: 54000263 b.cc 6d24 <__sfvwrite_r+0x2a4> // b.lo, b.ul, b.last
|
||
6cdc: b9402263 ldr w3, [x19, #32]
|
||
6ce0: eb23c2bf cmp x21, w3, sxtw
|
||
6ce4: 54000203 b.cc 6d24 <__sfvwrite_r+0x2a4> // b.lo, b.ul, b.last
|
||
6ce8: b27f77e0 mov x0, #0x7ffffffe // #2147483646
|
||
6cec: eb0002bf cmp x21, x0
|
||
6cf0: b2407be0 mov x0, #0x7fffffff // #2147483647
|
||
6cf4: 9a8092a4 csel x4, x21, x0, ls // ls = plast
|
||
6cf8: f9401a61 ldr x1, [x19, #48]
|
||
6cfc: aa1c03e2 mov x2, x28
|
||
6d00: 1ac30c84 sdiv w4, w4, w3
|
||
6d04: aa1703e0 mov x0, x23
|
||
6d08: f9402266 ldr x6, [x19, #64]
|
||
6d0c: 1b037c83 mul w3, w4, w3
|
||
6d10: d63f00c0 blr x6
|
||
6d14: 7100001f cmp w0, #0x0
|
||
6d18: 540002cd b.le 6d70 <__sfvwrite_r+0x2f0>
|
||
6d1c: 93407c16 sxtw x22, w0
|
||
6d20: 17ffffa8 b 6bc0 <__sfvwrite_r+0x140>
|
||
6d24: 93407f44 sxtw x4, w26
|
||
6d28: aa1c03e1 mov x1, x28
|
||
6d2c: eb15009f cmp x4, x21
|
||
6d30: aa0603e0 mov x0, x6
|
||
6d34: 9a95909a csel x26, x4, x21, ls // ls = plast
|
||
6d38: 93407f56 sxtw x22, w26
|
||
6d3c: aa1603e2 mov x2, x22
|
||
6d40: 97fff330 bl 3a00 <memmove>
|
||
6d44: f9400261 ldr x1, [x19]
|
||
6d48: b9400e60 ldr w0, [x19, #12]
|
||
6d4c: 8b160021 add x1, x1, x22
|
||
6d50: f9000261 str x1, [x19]
|
||
6d54: 4b1a0004 sub w4, w0, w26
|
||
6d58: b9000e64 str w4, [x19, #12]
|
||
6d5c: 35fff324 cbnz w4, 6bc0 <__sfvwrite_r+0x140>
|
||
6d60: aa1303e1 mov x1, x19
|
||
6d64: aa1703e0 mov x0, x23
|
||
6d68: 97fffcb2 bl 6030 <_fflush_r>
|
||
6d6c: 34fff2a0 cbz w0, 6bc0 <__sfvwrite_r+0x140>
|
||
6d70: a94573fb ldp x27, x28, [sp, #80]
|
||
6d74: 79c02261 ldrsh w1, [x19, #16]
|
||
6d78: 321a0021 orr w1, w1, #0x40
|
||
6d7c: 79002261 strh w1, [x19, #16]
|
||
6d80: 12800000 mov w0, #0xffffffff // #-1
|
||
6d84: a94153f3 ldp x19, x20, [sp, #16]
|
||
6d88: a9425bf5 ldp x21, x22, [sp, #32]
|
||
6d8c: a94363f7 ldp x23, x24, [sp, #48]
|
||
6d90: a9446bf9 ldp x25, x26, [sp, #64]
|
||
6d94: a8c67bfd ldp x29, x30, [sp], #96
|
||
6d98: d65f03c0 ret
|
||
6d9c: 93407eb6 sxtw x22, w21
|
||
6da0: 52809001 mov w1, #0x480 // #1152
|
||
6da4: 6a01007f tst w3, w1
|
||
6da8: 54ffefa0 b.eq 6b9c <__sfvwrite_r+0x11c> // b.none
|
||
6dac: b9402267 ldr w7, [x19, #32]
|
||
6db0: f9400e61 ldr x1, [x19, #24]
|
||
6db4: 0b0704e7 add w7, w7, w7, lsl #1
|
||
6db8: cb0100d6 sub x22, x6, x1
|
||
6dbc: 0b477ce7 add w7, w7, w7, lsr #31
|
||
6dc0: 93407ed9 sxtw x25, w22
|
||
6dc4: 13017cfb asr w27, w7, #1
|
||
6dc8: 91000720 add x0, x25, #0x1
|
||
6dcc: 8b150000 add x0, x0, x21
|
||
6dd0: 93407f62 sxtw x2, w27
|
||
6dd4: eb00005f cmp x2, x0
|
||
6dd8: 54000082 b.cs 6de8 <__sfvwrite_r+0x368> // b.hs, b.nlast
|
||
6ddc: 110006c7 add w7, w22, #0x1
|
||
6de0: 0b1500fb add w27, w7, w21
|
||
6de4: 93407f62 sxtw x2, w27
|
||
6de8: 36500723 tbz w3, #10, 6ecc <__sfvwrite_r+0x44c>
|
||
6dec: aa0203e1 mov x1, x2
|
||
6df0: aa1703e0 mov x0, x23
|
||
6df4: 97fff093 bl 3040 <_malloc_r>
|
||
6df8: aa0003fa mov x26, x0
|
||
6dfc: b4000860 cbz x0, 6f08 <__sfvwrite_r+0x488>
|
||
6e00: f9400e61 ldr x1, [x19, #24]
|
||
6e04: aa1903e2 mov x2, x25
|
||
6e08: 97fff29e bl 3880 <memcpy>
|
||
6e0c: 79402260 ldrh w0, [x19, #16]
|
||
6e10: 12809001 mov w1, #0xfffffb7f // #-1153
|
||
6e14: 0a010000 and w0, w0, w1
|
||
6e18: 32190000 orr w0, w0, #0x80
|
||
6e1c: 79002260 strh w0, [x19, #16]
|
||
6e20: 8b190340 add x0, x26, x25
|
||
6e24: 4b160366 sub w6, w27, w22
|
||
6e28: 93407eb6 sxtw x22, w21
|
||
6e2c: f9000260 str x0, [x19]
|
||
6e30: b9000e66 str w6, [x19, #12]
|
||
6e34: aa1603e1 mov x1, x22
|
||
6e38: f9000e7a str x26, [x19, #24]
|
||
6e3c: aa0003e6 mov x6, x0
|
||
6e40: b900227b str w27, [x19, #32]
|
||
6e44: 2a1503fa mov w26, w21
|
||
6e48: eb1502df cmp x22, x21
|
||
6e4c: 54ffea08 b.hi 6b8c <__sfvwrite_r+0x10c> // b.pmore
|
||
6e50: aa1603fb mov x27, x22
|
||
6e54: 17ffff52 b 6b9c <__sfvwrite_r+0x11c>
|
||
6e58: aa1303e1 mov x1, x19
|
||
6e5c: aa1703e0 mov x0, x23
|
||
6e60: 97fffc74 bl 6030 <_fflush_r>
|
||
6e64: 34fff060 cbz w0, 6c70 <__sfvwrite_r+0x1f0>
|
||
6e68: 17ffffc2 b 6d70 <__sfvwrite_r+0x2f0>
|
||
6e6c: 93407edc sxtw x28, w22
|
||
6e70: aa1b03e1 mov x1, x27
|
||
6e74: aa1c03e2 mov x2, x28
|
||
6e78: 97fff2e2 bl 3a00 <memmove>
|
||
6e7c: f9400260 ldr x0, [x19]
|
||
6e80: 2a1603f5 mov w21, w22
|
||
6e84: b9400e61 ldr w1, [x19, #12]
|
||
6e88: 8b1c0000 add x0, x0, x28
|
||
6e8c: f9000260 str x0, [x19]
|
||
6e90: 4b160036 sub w22, w1, w22
|
||
6e94: b9000e76 str w22, [x19, #12]
|
||
6e98: 17ffff73 b 6c64 <__sfvwrite_r+0x1e4>
|
||
6e9c: 93407eb6 sxtw x22, w21
|
||
6ea0: aa1b03e1 mov x1, x27
|
||
6ea4: aa1603e2 mov x2, x22
|
||
6ea8: 97fff2d6 bl 3a00 <memmove>
|
||
6eac: f9400262 ldr x2, [x19]
|
||
6eb0: aa1303e1 mov x1, x19
|
||
6eb4: aa1703e0 mov x0, x23
|
||
6eb8: 8b160042 add x2, x2, x22
|
||
6ebc: f9000262 str x2, [x19]
|
||
6ec0: 97fffc5c bl 6030 <_fflush_r>
|
||
6ec4: 34ffed00 cbz w0, 6c64 <__sfvwrite_r+0x1e4>
|
||
6ec8: 17ffffaa b 6d70 <__sfvwrite_r+0x2f0>
|
||
6ecc: aa1703e0 mov x0, x23
|
||
6ed0: 9400064c bl 8800 <_realloc_r>
|
||
6ed4: aa0003fa mov x26, x0
|
||
6ed8: b5fffa40 cbnz x0, 6e20 <__sfvwrite_r+0x3a0>
|
||
6edc: f9400e61 ldr x1, [x19, #24]
|
||
6ee0: aa1703e0 mov x0, x23
|
||
6ee4: 97fffe2b bl 6790 <_free_r>
|
||
6ee8: 79c02261 ldrsh w1, [x19, #16]
|
||
6eec: 52800180 mov w0, #0xc // #12
|
||
6ef0: a94573fb ldp x27, x28, [sp, #80]
|
||
6ef4: 12187821 and w1, w1, #0xffffff7f
|
||
6ef8: b90002e0 str w0, [x23]
|
||
6efc: 17ffff9f b 6d78 <__sfvwrite_r+0x2f8>
|
||
6f00: 79c02261 ldrsh w1, [x19, #16]
|
||
6f04: 17ffff9d b 6d78 <__sfvwrite_r+0x2f8>
|
||
6f08: 79c02261 ldrsh w1, [x19, #16]
|
||
6f0c: 52800180 mov w0, #0xc // #12
|
||
6f10: a94573fb ldp x27, x28, [sp, #80]
|
||
6f14: b90002e0 str w0, [x23]
|
||
6f18: 17ffff98 b 6d78 <__sfvwrite_r+0x2f8>
|
||
6f1c: 12800000 mov w0, #0xffffffff // #-1
|
||
6f20: a94153f3 ldp x19, x20, [sp, #16]
|
||
6f24: 17ffff00 b 6b24 <__sfvwrite_r+0xa4>
|
||
6f28: d503201f nop
|
||
6f2c: d503201f nop
|
||
|
||
0000000000006f30 <_fwalk>:
|
||
6f30: a9bc7bfd stp x29, x30, [sp, #-64]!
|
||
6f34: 910003fd mov x29, sp
|
||
6f38: a9025bf5 stp x21, x22, [sp, #32]
|
||
6f3c: 91148015 add x21, x0, #0x520
|
||
6f40: aa0103f6 mov x22, x1
|
||
6f44: a90153f3 stp x19, x20, [sp, #16]
|
||
6f48: f9001bf7 str x23, [sp, #48]
|
||
6f4c: 52800017 mov w23, #0x0 // #0
|
||
6f50: b9400aa0 ldr w0, [x21, #8]
|
||
6f54: f9400ab3 ldr x19, [x21, #16]
|
||
6f58: 7100001f cmp w0, #0x0
|
||
6f5c: 5400026d b.le 6fa8 <_fwalk+0x78>
|
||
6f60: 51000400 sub w0, w0, #0x1
|
||
6f64: 91000400 add x0, x0, #0x1
|
||
6f68: 8b000414 add x20, x0, x0, lsl #1
|
||
6f6c: d37ef694 lsl x20, x20, #2
|
||
6f70: cb000294 sub x20, x20, x0
|
||
6f74: 8b141274 add x20, x19, x20, lsl #4
|
||
6f78: 79402260 ldrh w0, [x19, #16]
|
||
6f7c: 7100041f cmp w0, #0x1
|
||
6f80: 540000e9 b.ls 6f9c <_fwalk+0x6c> // b.plast
|
||
6f84: 79c02662 ldrsh w2, [x19, #18]
|
||
6f88: aa1303e0 mov x0, x19
|
||
6f8c: 3100045f cmn w2, #0x1
|
||
6f90: 54000060 b.eq 6f9c <_fwalk+0x6c> // b.none
|
||
6f94: d63f02c0 blr x22
|
||
6f98: 2a0002f7 orr w23, w23, w0
|
||
6f9c: 9102c273 add x19, x19, #0xb0
|
||
6fa0: eb13029f cmp x20, x19
|
||
6fa4: 54fffea1 b.ne 6f78 <_fwalk+0x48> // b.any
|
||
6fa8: f94002b5 ldr x21, [x21]
|
||
6fac: b5fffd35 cbnz x21, 6f50 <_fwalk+0x20>
|
||
6fb0: 2a1703e0 mov w0, w23
|
||
6fb4: a94153f3 ldp x19, x20, [sp, #16]
|
||
6fb8: a9425bf5 ldp x21, x22, [sp, #32]
|
||
6fbc: f9401bf7 ldr x23, [sp, #48]
|
||
6fc0: a8c47bfd ldp x29, x30, [sp], #64
|
||
6fc4: d65f03c0 ret
|
||
6fc8: d503201f nop
|
||
6fcc: d503201f nop
|
||
|
||
0000000000006fd0 <_fwalk_reent>:
|
||
6fd0: a9bc7bfd stp x29, x30, [sp, #-64]!
|
||
6fd4: 910003fd mov x29, sp
|
||
6fd8: a9025bf5 stp x21, x22, [sp, #32]
|
||
6fdc: aa0103f6 mov x22, x1
|
||
6fe0: 91148015 add x21, x0, #0x520
|
||
6fe4: a90363f7 stp x23, x24, [sp, #48]
|
||
6fe8: aa0003f8 mov x24, x0
|
||
6fec: 52800017 mov w23, #0x0 // #0
|
||
6ff0: a90153f3 stp x19, x20, [sp, #16]
|
||
6ff4: d503201f nop
|
||
6ff8: b9400aa2 ldr w2, [x21, #8]
|
||
6ffc: f9400ab3 ldr x19, [x21, #16]
|
||
7000: 7100005f cmp w2, #0x0
|
||
7004: 5400028d b.le 7054 <_fwalk_reent+0x84>
|
||
7008: 51000442 sub w2, w2, #0x1
|
||
700c: 91000442 add x2, x2, #0x1
|
||
7010: 8b020454 add x20, x2, x2, lsl #1
|
||
7014: d37ef694 lsl x20, x20, #2
|
||
7018: cb020294 sub x20, x20, x2
|
||
701c: 8b141274 add x20, x19, x20, lsl #4
|
||
7020: 79402262 ldrh w2, [x19, #16]
|
||
7024: 7100045f cmp w2, #0x1
|
||
7028: 54000109 b.ls 7048 <_fwalk_reent+0x78> // b.plast
|
||
702c: 79c02662 ldrsh w2, [x19, #18]
|
||
7030: aa1303e1 mov x1, x19
|
||
7034: aa1803e0 mov x0, x24
|
||
7038: 3100045f cmn w2, #0x1
|
||
703c: 54000060 b.eq 7048 <_fwalk_reent+0x78> // b.none
|
||
7040: d63f02c0 blr x22
|
||
7044: 2a0002f7 orr w23, w23, w0
|
||
7048: 9102c273 add x19, x19, #0xb0
|
||
704c: eb13029f cmp x20, x19
|
||
7050: 54fffe81 b.ne 7020 <_fwalk_reent+0x50> // b.any
|
||
7054: f94002b5 ldr x21, [x21]
|
||
7058: b5fffd15 cbnz x21, 6ff8 <_fwalk_reent+0x28>
|
||
705c: 2a1703e0 mov w0, w23
|
||
7060: a94153f3 ldp x19, x20, [sp, #16]
|
||
7064: a9425bf5 ldp x21, x22, [sp, #32]
|
||
7068: a94363f7 ldp x23, x24, [sp, #48]
|
||
706c: a8c47bfd ldp x29, x30, [sp], #64
|
||
7070: d65f03c0 ret
|
||
7074: d503201f nop
|
||
7078: d503201f nop
|
||
707c: d503201f nop
|
||
|
||
0000000000007080 <__localeconv_l>:
|
||
7080: 91040000 add x0, x0, #0x100
|
||
7084: d65f03c0 ret
|
||
7088: d503201f nop
|
||
708c: d503201f nop
|
||
|
||
0000000000007090 <_localeconv_r>:
|
||
7090: d0000020 adrp x0, d000 <__malloc_av_+0x780>
|
||
7094: 91070000 add x0, x0, #0x1c0
|
||
7098: d65f03c0 ret
|
||
709c: d503201f nop
|
||
|
||
00000000000070a0 <localeconv>:
|
||
70a0: d0000020 adrp x0, d000 <__malloc_av_+0x780>
|
||
70a4: 91070000 add x0, x0, #0x1c0
|
||
70a8: d65f03c0 ret
|
||
70ac: d503201f nop
|
||
|
||
00000000000070b0 <currentlocale>:
|
||
70b0: a9bc7bfd stp x29, x30, [sp, #-64]!
|
||
70b4: 910003fd mov x29, sp
|
||
70b8: a90153f3 stp x19, x20, [sp, #16]
|
||
70bc: d0000034 adrp x20, d000 <__malloc_av_+0x780>
|
||
70c0: 91030294 add x20, x20, #0xc0
|
||
70c4: a9025bf5 stp x21, x22, [sp, #32]
|
||
70c8: 91010296 add x22, x20, #0x40
|
||
70cc: d0000035 adrp x21, d000 <__malloc_av_+0x780>
|
||
70d0: 910cc2b5 add x21, x21, #0x330
|
||
70d4: f9001bf7 str x23, [sp, #48]
|
||
70d8: 91038297 add x23, x20, #0xe0
|
||
70dc: 91008294 add x20, x20, #0x20
|
||
70e0: aa1603f3 mov x19, x22
|
||
70e4: aa1503e0 mov x0, x21
|
||
70e8: aa1403e1 mov x1, x20
|
||
70ec: 940009d5 bl 9840 <strcpy>
|
||
70f0: aa1303e1 mov x1, x19
|
||
70f4: aa1403e0 mov x0, x20
|
||
70f8: 91008273 add x19, x19, #0x20
|
||
70fc: 94000991 bl 9740 <strcmp>
|
||
7100: 35000120 cbnz w0, 7124 <currentlocale+0x74>
|
||
7104: eb17027f cmp x19, x23
|
||
7108: 54ffff41 b.ne 70f0 <currentlocale+0x40> // b.any
|
||
710c: aa1503e0 mov x0, x21
|
||
7110: a94153f3 ldp x19, x20, [sp, #16]
|
||
7114: a9425bf5 ldp x21, x22, [sp, #32]
|
||
7118: f9401bf7 ldr x23, [sp, #48]
|
||
711c: a8c47bfd ldp x29, x30, [sp], #64
|
||
7120: d65f03c0 ret
|
||
7124: 90000033 adrp x19, b000 <pow10.0+0x80>
|
||
7128: 910e0273 add x19, x19, #0x380
|
||
712c: aa1303e1 mov x1, x19
|
||
7130: aa1503e0 mov x0, x21
|
||
7134: 94000923 bl 95c0 <strcat>
|
||
7138: aa1603e1 mov x1, x22
|
||
713c: aa1503e0 mov x0, x21
|
||
7140: 910082d6 add x22, x22, #0x20
|
||
7144: 9400091f bl 95c0 <strcat>
|
||
7148: eb1702df cmp x22, x23
|
||
714c: 54ffff01 b.ne 712c <currentlocale+0x7c> // b.any
|
||
7150: aa1503e0 mov x0, x21
|
||
7154: a94153f3 ldp x19, x20, [sp, #16]
|
||
7158: a9425bf5 ldp x21, x22, [sp, #32]
|
||
715c: f9401bf7 ldr x23, [sp, #48]
|
||
7160: a8c47bfd ldp x29, x30, [sp], #64
|
||
7164: d65f03c0 ret
|
||
7168: d503201f nop
|
||
716c: d503201f nop
|
||
|
||
0000000000007170 <__loadlocale>:
|
||
7170: a9b67bfd stp x29, x30, [sp, #-160]!
|
||
7174: 910003fd mov x29, sp
|
||
7178: a90153f3 stp x19, x20, [sp, #16]
|
||
717c: 937b7c34 sbfiz x20, x1, #5, #32
|
||
7180: 8b140014 add x20, x0, x20
|
||
7184: aa0203f3 mov x19, x2
|
||
7188: a9025bf5 stp x21, x22, [sp, #32]
|
||
718c: aa0003f6 mov x22, x0
|
||
7190: aa0203e0 mov x0, x2
|
||
7194: a90363f7 stp x23, x24, [sp, #48]
|
||
7198: 2a0103f7 mov w23, w1
|
||
719c: aa1403e1 mov x1, x20
|
||
71a0: 94000968 bl 9740 <strcmp>
|
||
71a4: 350000e0 cbnz w0, 71c0 <__loadlocale+0x50>
|
||
71a8: aa1403e0 mov x0, x20
|
||
71ac: a94153f3 ldp x19, x20, [sp, #16]
|
||
71b0: a9425bf5 ldp x21, x22, [sp, #32]
|
||
71b4: a94363f7 ldp x23, x24, [sp, #48]
|
||
71b8: a8ca7bfd ldp x29, x30, [sp], #160
|
||
71bc: d65f03c0 ret
|
||
71c0: aa1303e0 mov x0, x19
|
||
71c4: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
71c8: 90000035 adrp x21, b000 <pow10.0+0x80>
|
||
71cc: 910e2021 add x1, x1, #0x388
|
||
71d0: 910e42b5 add x21, x21, #0x390
|
||
71d4: a9046bf9 stp x25, x26, [sp, #64]
|
||
71d8: 9400095a bl 9740 <strcmp>
|
||
71dc: 34000d80 cbz w0, 738c <__loadlocale+0x21c>
|
||
71e0: aa1503e1 mov x1, x21
|
||
71e4: aa1303e0 mov x0, x19
|
||
71e8: 94000956 bl 9740 <strcmp>
|
||
71ec: 2a0003f5 mov w21, w0
|
||
71f0: 34000be0 cbz w0, 736c <__loadlocale+0x1fc>
|
||
71f4: 39400260 ldrb w0, [x19]
|
||
71f8: 71010c1f cmp w0, #0x43
|
||
71fc: 54000d00 b.eq 739c <__loadlocale+0x22c> // b.none
|
||
7200: 51018400 sub w0, w0, #0x61
|
||
7204: 12001c00 and w0, w0, #0xff
|
||
7208: 7100641f cmp w0, #0x19
|
||
720c: 54000a08 b.hi 734c <__loadlocale+0x1dc> // b.pmore
|
||
7210: 39400660 ldrb w0, [x19, #1]
|
||
7214: 51018400 sub w0, w0, #0x61
|
||
7218: 12001c00 and w0, w0, #0xff
|
||
721c: 7100641f cmp w0, #0x19
|
||
7220: 54000968 b.hi 734c <__loadlocale+0x1dc> // b.pmore
|
||
7224: 39400a60 ldrb w0, [x19, #2]
|
||
7228: 91000a75 add x21, x19, #0x2
|
||
722c: 51018401 sub w1, w0, #0x61
|
||
7230: 12001c21 and w1, w1, #0xff
|
||
7234: 7100643f cmp w1, #0x19
|
||
7238: 54000068 b.hi 7244 <__loadlocale+0xd4> // b.pmore
|
||
723c: 39400e60 ldrb w0, [x19, #3]
|
||
7240: 91000e75 add x21, x19, #0x3
|
||
7244: 71017c1f cmp w0, #0x5f
|
||
7248: 54000d00 b.eq 73e8 <__loadlocale+0x278> // b.none
|
||
724c: 7100b81f cmp w0, #0x2e
|
||
7250: 54002ec0 b.eq 7828 <__loadlocale+0x6b8> // b.none
|
||
7254: 528017e1 mov w1, #0xbf // #191
|
||
7258: 6a01001f tst w0, w1
|
||
725c: 54000781 b.ne 734c <__loadlocale+0x1dc> // b.any
|
||
7260: 910203f8 add x24, sp, #0x80
|
||
7264: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7268: aa1803e0 mov x0, x24
|
||
726c: 910e8021 add x1, x1, #0x3a0
|
||
7270: 94000974 bl 9840 <strcpy>
|
||
7274: 394002a0 ldrb w0, [x21]
|
||
7278: 7101001f cmp w0, #0x40
|
||
727c: 54002da0 b.eq 7830 <__loadlocale+0x6c0> // b.none
|
||
7280: 52800019 mov w25, #0x0 // #0
|
||
7284: 52800015 mov w21, #0x0 // #0
|
||
7288: 5280001a mov w26, #0x0 // #0
|
||
728c: 394203e1 ldrb w1, [sp, #128]
|
||
7290: 51010421 sub w1, w1, #0x41
|
||
7294: 7100d03f cmp w1, #0x34
|
||
7298: 540005a8 b.hi 734c <__loadlocale+0x1dc> // b.pmore
|
||
729c: 90000020 adrp x0, b000 <pow10.0+0x80>
|
||
72a0: 91126000 add x0, x0, #0x498
|
||
72a4: a90573fb stp x27, x28, [sp, #80]
|
||
72a8: 78615800 ldrh w0, [x0, w1, uxtw #1]
|
||
72ac: 10000061 adr x1, 72b8 <__loadlocale+0x148>
|
||
72b0: 8b20a820 add x0, x1, w0, sxth #2
|
||
72b4: d61f0000 br x0
|
||
72b8: 394207e0 ldrb w0, [sp, #129]
|
||
72bc: 121a7800 and w0, w0, #0xffffffdf
|
||
72c0: 12001c00 and w0, w0, #0xff
|
||
72c4: 7101401f cmp w0, #0x50
|
||
72c8: 54000401 b.ne 7348 <__loadlocale+0x1d8> // b.any
|
||
72cc: d2800042 mov x2, #0x2 // #2
|
||
72d0: aa1803e0 mov x0, x24
|
||
72d4: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
72d8: 9110c021 add x1, x1, #0x430
|
||
72dc: 94000a5d bl 9c50 <strncpy>
|
||
72e0: 9101e3e1 add x1, sp, #0x78
|
||
72e4: 91020be0 add x0, sp, #0x82
|
||
72e8: 52800142 mov w2, #0xa // #10
|
||
72ec: 94000b05 bl 9f00 <strtol>
|
||
72f0: f9403fe1 ldr x1, [sp, #120]
|
||
72f4: 39400021 ldrb w1, [x1]
|
||
72f8: 35000281 cbnz w1, 7348 <__loadlocale+0x1d8>
|
||
72fc: f10e901f cmp x0, #0x3a4
|
||
7300: 540030a0 b.eq 7914 <__loadlocale+0x7a4> // b.none
|
||
7304: 54002f2c b.gt 78e8 <__loadlocale+0x778>
|
||
7308: f10d881f cmp x0, #0x362
|
||
730c: 54002dec b.gt 78c8 <__loadlocale+0x758>
|
||
7310: f10d441f cmp x0, #0x351
|
||
7314: 54002c8c b.gt 78a4 <__loadlocale+0x734>
|
||
7318: f106d41f cmp x0, #0x1b5
|
||
731c: 54002da0 b.eq 78d0 <__loadlocale+0x760> // b.none
|
||
7320: d10b4000 sub x0, x0, #0x2d0
|
||
7324: f100dc1f cmp x0, #0x37
|
||
7328: 54000108 b.hi 7348 <__loadlocale+0x1d8> // b.pmore
|
||
732c: d2800021 mov x1, #0x1 // #1
|
||
7330: d280003c mov x28, #0x1 // #1
|
||
7334: f2a00041 movk x1, #0x2, lsl #16
|
||
7338: 9ac02380 lsl x0, x28, x0
|
||
733c: f2e01001 movk x1, #0x80, lsl #48
|
||
7340: ea01001f tst x0, x1
|
||
7344: 54000e21 b.ne 7508 <__loadlocale+0x398> // b.any
|
||
7348: a94573fb ldp x27, x28, [sp, #80]
|
||
734c: d2800014 mov x20, #0x0 // #0
|
||
7350: aa1403e0 mov x0, x20
|
||
7354: a94153f3 ldp x19, x20, [sp, #16]
|
||
7358: a9425bf5 ldp x21, x22, [sp, #32]
|
||
735c: a94363f7 ldp x23, x24, [sp, #48]
|
||
7360: a9446bf9 ldp x25, x26, [sp, #64]
|
||
7364: a8ca7bfd ldp x29, x30, [sp], #160
|
||
7368: d65f03c0 ret
|
||
736c: 910203f8 add x24, sp, #0x80
|
||
7370: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7374: aa1803e0 mov x0, x24
|
||
7378: 910e6021 add x1, x1, #0x398
|
||
737c: 52800019 mov w25, #0x0 // #0
|
||
7380: 5280001a mov w26, #0x0 // #0
|
||
7384: 9400092f bl 9840 <strcpy>
|
||
7388: 17ffffc1 b 728c <__loadlocale+0x11c>
|
||
738c: aa1503e1 mov x1, x21
|
||
7390: aa1303e0 mov x0, x19
|
||
7394: 9400092b bl 9840 <strcpy>
|
||
7398: 17ffff92 b 71e0 <__loadlocale+0x70>
|
||
739c: 39400660 ldrb w0, [x19, #1]
|
||
73a0: 5100b400 sub w0, w0, #0x2d
|
||
73a4: 12001c00 and w0, w0, #0xff
|
||
73a8: 7100041f cmp w0, #0x1
|
||
73ac: 54fffd08 b.hi 734c <__loadlocale+0x1dc> // b.pmore
|
||
73b0: 91000a75 add x21, x19, #0x2
|
||
73b4: 910203f8 add x24, sp, #0x80
|
||
73b8: aa1503e1 mov x1, x21
|
||
73bc: aa1803e0 mov x0, x24
|
||
73c0: 94000920 bl 9840 <strcpy>
|
||
73c4: aa1803e0 mov x0, x24
|
||
73c8: 52800801 mov w1, #0x40 // #64
|
||
73cc: 9400089a bl 9634 <strchr>
|
||
73d0: b4000040 cbz x0, 73d8 <__loadlocale+0x268>
|
||
73d4: 3900001f strb wzr, [x0]
|
||
73d8: aa1803e0 mov x0, x24
|
||
73dc: 940009a9 bl 9a80 <strlen>
|
||
73e0: 8b0002b5 add x21, x21, x0
|
||
73e4: 17ffffa4 b 7274 <__loadlocale+0x104>
|
||
73e8: 394006a0 ldrb w0, [x21, #1]
|
||
73ec: 51010400 sub w0, w0, #0x41
|
||
73f0: 12001c00 and w0, w0, #0xff
|
||
73f4: 7100641f cmp w0, #0x19
|
||
73f8: 54fffaa8 b.hi 734c <__loadlocale+0x1dc> // b.pmore
|
||
73fc: 39400aa0 ldrb w0, [x21, #2]
|
||
7400: 51010400 sub w0, w0, #0x41
|
||
7404: 12001c00 and w0, w0, #0xff
|
||
7408: 7100641f cmp w0, #0x19
|
||
740c: 54fffa08 b.hi 734c <__loadlocale+0x1dc> // b.pmore
|
||
7410: 39400ea0 ldrb w0, [x21, #3]
|
||
7414: 91000eb5 add x21, x21, #0x3
|
||
7418: 17ffff8d b 724c <__loadlocale+0xdc>
|
||
741c: 9000003b adrp x27, b000 <pow10.0+0x80>
|
||
7420: 910f637b add x27, x27, #0x3d8
|
||
7424: aa1b03e1 mov x1, x27
|
||
7428: aa1803e0 mov x0, x24
|
||
742c: 94000849 bl 9550 <strcasecmp>
|
||
7430: 340000c0 cbz w0, 7448 <__loadlocale+0x2d8>
|
||
7434: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7438: aa1803e0 mov x0, x24
|
||
743c: 910f8021 add x1, x1, #0x3e0
|
||
7440: 94000844 bl 9550 <strcasecmp>
|
||
7444: 35fff820 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
7448: aa1b03e1 mov x1, x27
|
||
744c: aa1803e0 mov x0, x24
|
||
7450: 940008fc bl 9840 <strcpy>
|
||
7454: b000001b adrp x27, 8000 <__swhatbuf_r+0xa0>
|
||
7458: f0000002 adrp x2, a000 <__swbuf_r+0xb0>
|
||
745c: 9101c37b add x27, x27, #0x70
|
||
7460: 910c4042 add x2, x2, #0x310
|
||
7464: 528000dc mov w28, #0x6 // #6
|
||
7468: 71000aff cmp w23, #0x2
|
||
746c: 54001b00 b.eq 77cc <__loadlocale+0x65c> // b.none
|
||
7470: 71001aff cmp w23, #0x6
|
||
7474: 54000081 b.ne 7484 <__loadlocale+0x314> // b.any
|
||
7478: aa1803e1 mov x1, x24
|
||
747c: 91060ac0 add x0, x22, #0x182
|
||
7480: 940008f0 bl 9840 <strcpy>
|
||
7484: aa1303e1 mov x1, x19
|
||
7488: aa1403e0 mov x0, x20
|
||
748c: 940008ed bl 9840 <strcpy>
|
||
7490: aa0003f4 mov x20, x0
|
||
7494: aa1403e0 mov x0, x20
|
||
7498: a94153f3 ldp x19, x20, [sp, #16]
|
||
749c: a9425bf5 ldp x21, x22, [sp, #32]
|
||
74a0: a94363f7 ldp x23, x24, [sp, #48]
|
||
74a4: a9446bf9 ldp x25, x26, [sp, #64]
|
||
74a8: a94573fb ldp x27, x28, [sp, #80]
|
||
74ac: a8ca7bfd ldp x29, x30, [sp], #160
|
||
74b0: d65f03c0 ret
|
||
74b4: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
74b8: aa1803e0 mov x0, x24
|
||
74bc: 91120021 add x1, x1, #0x480
|
||
74c0: d2800062 mov x2, #0x3 // #3
|
||
74c4: 940009bf bl 9bc0 <strncasecmp>
|
||
74c8: 35fff400 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
74cc: 39420fe0 ldrb w0, [sp, #131]
|
||
74d0: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
74d4: 91122021 add x1, x1, #0x488
|
||
74d8: 7100b41f cmp w0, #0x2d
|
||
74dc: 910283e0 add x0, sp, #0xa0
|
||
74e0: 9a801400 cinc x0, x0, eq // eq = none
|
||
74e4: d1007400 sub x0, x0, #0x1d
|
||
74e8: 94000896 bl 9740 <strcmp>
|
||
74ec: 35fff2e0 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
74f0: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
74f4: aa1803e0 mov x0, x24
|
||
74f8: 91124021 add x1, x1, #0x490
|
||
74fc: d503201f nop
|
||
7500: 5280003c mov w28, #0x1 // #1
|
||
7504: 940008cf bl 9840 <strcpy>
|
||
7508: b000001b adrp x27, 8000 <__swhatbuf_r+0xa0>
|
||
750c: f0000002 adrp x2, a000 <__swbuf_r+0xb0>
|
||
7510: 9100837b add x27, x27, #0x20
|
||
7514: 910b4042 add x2, x2, #0x2d0
|
||
7518: 17ffffd4 b 7468 <__loadlocale+0x2f8>
|
||
751c: 9000003b adrp x27, b000 <pow10.0+0x80>
|
||
7520: 9110237b add x27, x27, #0x408
|
||
7524: aa1b03e1 mov x1, x27
|
||
7528: aa1803e0 mov x0, x24
|
||
752c: 94000809 bl 9550 <strcasecmp>
|
||
7530: 35fff0c0 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
7534: aa1b03e1 mov x1, x27
|
||
7538: aa1803e0 mov x0, x24
|
||
753c: 940008c1 bl 9840 <strcpy>
|
||
7540: b000001b adrp x27, 8000 <__swhatbuf_r+0xa0>
|
||
7544: f0000002 adrp x2, a000 <__swbuf_r+0xb0>
|
||
7548: 910d037b add x27, x27, #0x340
|
||
754c: 91100042 add x2, x2, #0x400
|
||
7550: 5280005c mov w28, #0x2 // #2
|
||
7554: 17ffffc5 b 7468 <__loadlocale+0x2f8>
|
||
7558: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
755c: aa1803e0 mov x0, x24
|
||
7560: 9111c021 add x1, x1, #0x470
|
||
7564: 940007fb bl 9550 <strcasecmp>
|
||
7568: 35ffef00 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
756c: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7570: aa1803e0 mov x0, x24
|
||
7574: 9111e021 add x1, x1, #0x478
|
||
7578: 17ffffe2 b 7500 <__loadlocale+0x390>
|
||
757c: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7580: aa1803e0 mov x0, x24
|
||
7584: 9110e021 add x1, x1, #0x438
|
||
7588: d2800082 mov x2, #0x4 // #4
|
||
758c: 9400098d bl 9bc0 <strncasecmp>
|
||
7590: 35ffedc0 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
7594: 394213e0 ldrb w0, [sp, #132]
|
||
7598: 394217e1 ldrb w1, [sp, #133]
|
||
759c: 7100b41f cmp w0, #0x2d
|
||
75a0: 1a800020 csel w0, w1, w0, eq // eq = none
|
||
75a4: 121a7800 and w0, w0, #0xffffffdf
|
||
75a8: 12001c00 and w0, w0, #0xff
|
||
75ac: 7101481f cmp w0, #0x52
|
||
75b0: 54001aa0 b.eq 7904 <__loadlocale+0x794> // b.none
|
||
75b4: 7101541f cmp w0, #0x55
|
||
75b8: 54ffec81 b.ne 7348 <__loadlocale+0x1d8> // b.any
|
||
75bc: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
75c0: aa1803e0 mov x0, x24
|
||
75c4: 91112021 add x1, x1, #0x448
|
||
75c8: 17ffffce b 7500 <__loadlocale+0x390>
|
||
75cc: 9000003b adrp x27, b000 <pow10.0+0x80>
|
||
75d0: 910fa37b add x27, x27, #0x3e8
|
||
75d4: aa1b03e1 mov x1, x27
|
||
75d8: aa1803e0 mov x0, x24
|
||
75dc: 940007dd bl 9550 <strcasecmp>
|
||
75e0: 35ffeb40 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
75e4: aa1b03e1 mov x1, x27
|
||
75e8: aa1803e0 mov x0, x24
|
||
75ec: 94000895 bl 9840 <strcpy>
|
||
75f0: b000001b adrp x27, 8000 <__swhatbuf_r+0xa0>
|
||
75f4: f0000002 adrp x2, a000 <__swbuf_r+0xb0>
|
||
75f8: 9115037b add x27, x27, #0x540
|
||
75fc: 91150042 add x2, x2, #0x540
|
||
7600: 5280011c mov w28, #0x8 // #8
|
||
7604: 17ffff99 b 7468 <__loadlocale+0x2f8>
|
||
7608: 9000003b adrp x27, b000 <pow10.0+0x80>
|
||
760c: 910e637b add x27, x27, #0x398
|
||
7610: aa1b03e1 mov x1, x27
|
||
7614: aa1803e0 mov x0, x24
|
||
7618: 940007ce bl 9550 <strcasecmp>
|
||
761c: 35ffe960 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
7620: aa1b03e1 mov x1, x27
|
||
7624: aa1803e0 mov x0, x24
|
||
7628: 17ffffb6 b 7500 <__loadlocale+0x390>
|
||
762c: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7630: aa1803e0 mov x0, x24
|
||
7634: 91114021 add x1, x1, #0x450
|
||
7638: d2800102 mov x2, #0x8 // #8
|
||
763c: 94000961 bl 9bc0 <strncasecmp>
|
||
7640: 35ffe840 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
7644: 394223e0 ldrb w0, [sp, #136]
|
||
7648: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
764c: 91118021 add x1, x1, #0x460
|
||
7650: 7100b41f cmp w0, #0x2d
|
||
7654: 910283e0 add x0, sp, #0xa0
|
||
7658: 9a801400 cinc x0, x0, eq // eq = none
|
||
765c: d1006000 sub x0, x0, #0x18
|
||
7660: 940007bc bl 9550 <strcasecmp>
|
||
7664: 35ffe720 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
7668: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
766c: aa1803e0 mov x0, x24
|
||
7670: 9111a021 add x1, x1, #0x468
|
||
7674: 17ffffa3 b 7500 <__loadlocale+0x390>
|
||
7678: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
767c: aa1803e0 mov x0, x24
|
||
7680: 910fc021 add x1, x1, #0x3f0
|
||
7684: d2800062 mov x2, #0x3 // #3
|
||
7688: 9400094e bl 9bc0 <strncasecmp>
|
||
768c: 35ffe5e0 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
7690: 39420fe0 ldrb w0, [sp, #131]
|
||
7694: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7698: 910fe021 add x1, x1, #0x3f8
|
||
769c: 7100b41f cmp w0, #0x2d
|
||
76a0: 910283e0 add x0, sp, #0xa0
|
||
76a4: 9a801400 cinc x0, x0, eq // eq = none
|
||
76a8: d1007400 sub x0, x0, #0x1d
|
||
76ac: 940007a9 bl 9550 <strcasecmp>
|
||
76b0: 35ffe4c0 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
76b4: aa1803e0 mov x0, x24
|
||
76b8: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
76bc: 91100021 add x1, x1, #0x400
|
||
76c0: 94000860 bl 9840 <strcpy>
|
||
76c4: b000001b adrp x27, 8000 <__swhatbuf_r+0xa0>
|
||
76c8: f0000002 adrp x2, a000 <__swbuf_r+0xb0>
|
||
76cc: 9110437b add x27, x27, #0x410
|
||
76d0: 91124042 add x2, x2, #0x490
|
||
76d4: 5280007c mov w28, #0x3 // #3
|
||
76d8: 17ffff64 b 7468 <__loadlocale+0x2f8>
|
||
76dc: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
76e0: aa1803e0 mov x0, x24
|
||
76e4: 91104021 add x1, x1, #0x410
|
||
76e8: d2800062 mov x2, #0x3 // #3
|
||
76ec: 94000935 bl 9bc0 <strncasecmp>
|
||
76f0: 35ffe2c0 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
76f4: 39420fe0 ldrb w0, [sp, #131]
|
||
76f8: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
76fc: d2800082 mov x2, #0x4 // #4
|
||
7700: 91106021 add x1, x1, #0x418
|
||
7704: 7100b41f cmp w0, #0x2d
|
||
7708: 910283e0 add x0, sp, #0xa0
|
||
770c: 9a80141b cinc x27, x0, eq // eq = none
|
||
7710: d100777b sub x27, x27, #0x1d
|
||
7714: aa1b03e0 mov x0, x27
|
||
7718: 9400092a bl 9bc0 <strncasecmp>
|
||
771c: 35ffe160 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
7720: 39401360 ldrb w0, [x27, #4]
|
||
7724: 9101e3e1 add x1, sp, #0x78
|
||
7728: 52800142 mov w2, #0xa // #10
|
||
772c: 7100b41f cmp w0, #0x2d
|
||
7730: 9a9b1760 cinc x0, x27, eq // eq = none
|
||
7734: 91001000 add x0, x0, #0x4
|
||
7738: 940009f2 bl 9f00 <strtol>
|
||
773c: aa0003e3 mov x3, x0
|
||
7740: d1000400 sub x0, x0, #0x1
|
||
7744: f90037e3 str x3, [sp, #104]
|
||
7748: f1003c1f cmp x0, #0xf
|
||
774c: fa4c9864 ccmp x3, #0xc, #0x4, ls // ls = plast
|
||
7750: 54ffdfc0 b.eq 7348 <__loadlocale+0x1d8> // b.none
|
||
7754: f9403fe0 ldr x0, [sp, #120]
|
||
7758: 39400000 ldrb w0, [x0]
|
||
775c: 35ffdf60 cbnz w0, 7348 <__loadlocale+0x1d8>
|
||
7760: aa1803e0 mov x0, x24
|
||
7764: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7768: 91108021 add x1, x1, #0x420
|
||
776c: 94000835 bl 9840 <strcpy>
|
||
7770: f94037e3 ldr x3, [sp, #104]
|
||
7774: 910227e4 add x4, sp, #0x89
|
||
7778: f100287f cmp x3, #0xa
|
||
777c: 5400008d b.le 778c <__loadlocale+0x61c>
|
||
7780: 91022be4 add x4, sp, #0x8a
|
||
7784: 52800620 mov w0, #0x31 // #49
|
||
7788: 390227e0 strb w0, [sp, #137]
|
||
778c: b203e7e1 mov x1, #0x6666666666666666 // #7378697629483820646
|
||
7790: b000001b adrp x27, 8000 <__swhatbuf_r+0xa0>
|
||
7794: f28ccce1 movk x1, #0x6667
|
||
7798: f0000002 adrp x2, a000 <__swbuf_r+0xb0>
|
||
779c: 9100837b add x27, x27, #0x20
|
||
77a0: 910b4042 add x2, x2, #0x2d0
|
||
77a4: 9b417c61 smulh x1, x3, x1
|
||
77a8: 5280003c mov w28, #0x1 // #1
|
||
77ac: 3900049f strb wzr, [x4, #1]
|
||
77b0: 9342fc21 asr x1, x1, #2
|
||
77b4: cb83fc21 sub x1, x1, x3, asr #63
|
||
77b8: 8b010821 add x1, x1, x1, lsl #2
|
||
77bc: cb010460 sub x0, x3, x1, lsl #1
|
||
77c0: 1100c000 add w0, w0, #0x30
|
||
77c4: 39000080 strb w0, [x4]
|
||
77c8: 17ffff28 b 7468 <__loadlocale+0x2f8>
|
||
77cc: aa1803e1 mov x1, x24
|
||
77d0: 91058ac0 add x0, x22, #0x162
|
||
77d4: f90037e2 str x2, [sp, #104]
|
||
77d8: 9400081a bl 9840 <strcpy>
|
||
77dc: f94037e2 ldr x2, [sp, #104]
|
||
77e0: a90e6ec2 stp x2, x27, [x22, #224]
|
||
77e4: aa1803e1 mov x1, x24
|
||
77e8: 390582dc strb w28, [x22, #352]
|
||
77ec: aa1603e0 mov x0, x22
|
||
77f0: 94000bb0 bl a6b0 <__set_ctype>
|
||
77f4: 35000139 cbnz w25, 7818 <__loadlocale+0x6a8>
|
||
77f8: 7100079f cmp w28, #0x1
|
||
77fc: 520002b5 eor w21, w21, #0x1
|
||
7800: 1a9fd7e0 cset w0, gt
|
||
7804: 6a0002bf tst w21, w0
|
||
7808: 54000080 b.eq 7818 <__loadlocale+0x6a8> // b.none
|
||
780c: 394203e0 ldrb w0, [sp, #128]
|
||
7810: 7101541f cmp w0, #0x55
|
||
7814: 1a9f07f9 cset w25, ne // ne = any
|
||
7818: 7100035f cmp w26, #0x0
|
||
781c: 5a9f0339 csinv w25, w25, wzr, eq // eq = none
|
||
7820: b900f2d9 str w25, [x22, #240]
|
||
7824: 17ffff18 b 7484 <__loadlocale+0x314>
|
||
7828: 910006b5 add x21, x21, #0x1
|
||
782c: 17fffee2 b 73b4 <__loadlocale+0x244>
|
||
7830: a90573fb stp x27, x28, [sp, #80]
|
||
7834: 910006bb add x27, x21, #0x1
|
||
7838: aa1b03e0 mov x0, x27
|
||
783c: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7840: 52800019 mov w25, #0x0 // #0
|
||
7844: 910ec021 add x1, x1, #0x3b0
|
||
7848: 5280003a mov w26, #0x1 // #1
|
||
784c: 940007bd bl 9740 <strcmp>
|
||
7850: 2a0003f5 mov w21, w0
|
||
7854: 35000060 cbnz w0, 7860 <__loadlocale+0x6f0>
|
||
7858: a94573fb ldp x27, x28, [sp, #80]
|
||
785c: 17fffe8c b 728c <__loadlocale+0x11c>
|
||
7860: aa1b03e0 mov x0, x27
|
||
7864: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7868: 5280001a mov w26, #0x0 // #0
|
||
786c: 910f0021 add x1, x1, #0x3c0
|
||
7870: 52800035 mov w21, #0x1 // #1
|
||
7874: 940007b3 bl 9740 <strcmp>
|
||
7878: 2a0003f9 mov w25, w0
|
||
787c: 34fffee0 cbz w0, 7858 <__loadlocale+0x6e8>
|
||
7880: aa1b03e0 mov x0, x27
|
||
7884: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7888: 910f4021 add x1, x1, #0x3d0
|
||
788c: 940007ad bl 9740 <strcmp>
|
||
7890: 7100001f cmp w0, #0x0
|
||
7894: 52800015 mov w21, #0x0 // #0
|
||
7898: 1a9f17f9 cset w25, eq // eq = none
|
||
789c: a94573fb ldp x27, x28, [sp, #80]
|
||
78a0: 17fffe7b b 728c <__loadlocale+0x11c>
|
||
78a4: d10d4800 sub x0, x0, #0x352
|
||
78a8: d280003c mov x28, #0x1 // #1
|
||
78ac: d28234a1 mov x1, #0x11a5 // #4517
|
||
78b0: f2a00021 movk x1, #0x1, lsl #16
|
||
78b4: 9ac02380 lsl x0, x28, x0
|
||
78b8: ea01001f tst x0, x1
|
||
78bc: 54ffe261 b.ne 7508 <__loadlocale+0x398> // b.any
|
||
78c0: a94573fb ldp x27, x28, [sp, #80]
|
||
78c4: 17fffea2 b 734c <__loadlocale+0x1dc>
|
||
78c8: f10da81f cmp x0, #0x36a
|
||
78cc: 54ffd3e1 b.ne 7348 <__loadlocale+0x1d8> // b.any
|
||
78d0: b000001b adrp x27, 8000 <__swhatbuf_r+0xa0>
|
||
78d4: f0000002 adrp x2, a000 <__swbuf_r+0xb0>
|
||
78d8: 9100837b add x27, x27, #0x20
|
||
78dc: 910b4042 add x2, x2, #0x2d0
|
||
78e0: 5280003c mov w28, #0x1 // #1
|
||
78e4: 17fffee1 b 7468 <__loadlocale+0x2f8>
|
||
78e8: f111941f cmp x0, #0x465
|
||
78ec: 54ffff20 b.eq 78d0 <__loadlocale+0x760> // b.none
|
||
78f0: d1138800 sub x0, x0, #0x4e2
|
||
78f4: f100201f cmp x0, #0x8
|
||
78f8: 54fffec9 b.ls 78d0 <__loadlocale+0x760> // b.plast
|
||
78fc: a94573fb ldp x27, x28, [sp, #80]
|
||
7900: 17fffe93 b 734c <__loadlocale+0x1dc>
|
||
7904: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7908: aa1803e0 mov x0, x24
|
||
790c: 91110021 add x1, x1, #0x440
|
||
7910: 17fffefc b 7500 <__loadlocale+0x390>
|
||
7914: b000001b adrp x27, 8000 <__swhatbuf_r+0xa0>
|
||
7918: f0000002 adrp x2, a000 <__swbuf_r+0xb0>
|
||
791c: 910d037b add x27, x27, #0x340
|
||
7920: 91100042 add x2, x2, #0x400
|
||
7924: 5280005c mov w28, #0x2 // #2
|
||
7928: 17fffed0 b 7468 <__loadlocale+0x2f8>
|
||
792c: d503201f nop
|
||
|
||
0000000000007930 <__get_locale_env>:
|
||
7930: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
7934: 910003fd mov x29, sp
|
||
7938: a90153f3 stp x19, x20, [sp, #16]
|
||
793c: 2a0103f4 mov w20, w1
|
||
7940: aa0003f3 mov x19, x0
|
||
7944: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7948: 91142021 add x1, x1, #0x508
|
||
794c: 94000c19 bl a9b0 <_getenv_r>
|
||
7950: b4000060 cbz x0, 795c <__get_locale_env+0x2c>
|
||
7954: 39400001 ldrb w1, [x0]
|
||
7958: 35000201 cbnz w1, 7998 <__get_locale_env+0x68>
|
||
795c: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7960: 911c8021 add x1, x1, #0x720
|
||
7964: aa1303e0 mov x0, x19
|
||
7968: f874d821 ldr x1, [x1, w20, sxtw #3]
|
||
796c: 94000c11 bl a9b0 <_getenv_r>
|
||
7970: b4000060 cbz x0, 797c <__get_locale_env+0x4c>
|
||
7974: 39400001 ldrb w1, [x0]
|
||
7978: 35000101 cbnz w1, 7998 <__get_locale_env+0x68>
|
||
797c: 90000021 adrp x1, b000 <pow10.0+0x80>
|
||
7980: aa1303e0 mov x0, x19
|
||
7984: 91144021 add x1, x1, #0x510
|
||
7988: 94000c0a bl a9b0 <_getenv_r>
|
||
798c: b50000c0 cbnz x0, 79a4 <__get_locale_env+0x74>
|
||
7990: d0000020 adrp x0, d000 <__malloc_av_+0x780>
|
||
7994: 91028000 add x0, x0, #0xa0
|
||
7998: a94153f3 ldp x19, x20, [sp, #16]
|
||
799c: a8c27bfd ldp x29, x30, [sp], #32
|
||
79a0: d65f03c0 ret
|
||
79a4: 39400001 ldrb w1, [x0]
|
||
79a8: 35ffff81 cbnz w1, 7998 <__get_locale_env+0x68>
|
||
79ac: d0000020 adrp x0, d000 <__malloc_av_+0x780>
|
||
79b0: 91028000 add x0, x0, #0xa0
|
||
79b4: 17fffff9 b 7998 <__get_locale_env+0x68>
|
||
79b8: d503201f nop
|
||
79bc: d503201f nop
|
||
|
||
00000000000079c0 <_setlocale_r.part.0>:
|
||
79c0: a9ba7bfd stp x29, x30, [sp, #-96]!
|
||
79c4: 910003fd mov x29, sp
|
||
79c8: a9025bf5 stp x21, x22, [sp, #32]
|
||
79cc: d0000035 adrp x21, d000 <__malloc_av_+0x780>
|
||
79d0: d0000036 adrp x22, d000 <__malloc_av_+0x780>
|
||
79d4: 911062b5 add x21, x21, #0x418
|
||
79d8: 910302d6 add x22, x22, #0xc0
|
||
79dc: a90153f3 stp x19, x20, [sp, #16]
|
||
79e0: 910082d4 add x20, x22, #0x20
|
||
79e4: a9046bf9 stp x25, x26, [sp, #64]
|
||
79e8: 910082b9 add x25, x21, #0x20
|
||
79ec: aa0003fa mov x26, x0
|
||
79f0: aa1903f3 mov x19, x25
|
||
79f4: a90363f7 stp x23, x24, [sp, #48]
|
||
79f8: aa0203f8 mov x24, x2
|
||
79fc: 910382b7 add x23, x21, #0xe0
|
||
7a00: a90573fb stp x27, x28, [sp, #80]
|
||
7a04: 2a0103fc mov w28, w1
|
||
7a08: aa1403fb mov x27, x20
|
||
7a0c: d503201f nop
|
||
7a10: aa1b03e1 mov x1, x27
|
||
7a14: aa1303e0 mov x0, x19
|
||
7a18: 91008273 add x19, x19, #0x20
|
||
7a1c: 94000789 bl 9840 <strcpy>
|
||
7a20: 9100837b add x27, x27, #0x20
|
||
7a24: eb17027f cmp x19, x23
|
||
7a28: 54ffff41 b.ne 7a10 <_setlocale_r.part.0+0x50> // b.any
|
||
7a2c: 39400300 ldrb w0, [x24]
|
||
7a30: 350005e0 cbnz w0, 7aec <_setlocale_r.part.0+0x12c>
|
||
7a34: 35000edc cbnz w28, 7c0c <_setlocale_r.part.0+0x24c>
|
||
7a38: aa1903f7 mov x23, x25
|
||
7a3c: 52800033 mov w19, #0x1 // #1
|
||
7a40: 2a1303e1 mov w1, w19
|
||
7a44: aa1a03e0 mov x0, x26
|
||
7a48: 97ffffba bl 7930 <__get_locale_env>
|
||
7a4c: aa0003f5 mov x21, x0
|
||
7a50: 11000673 add w19, w19, #0x1
|
||
7a54: 9400080b bl 9a80 <strlen>
|
||
7a58: aa0003e2 mov x2, x0
|
||
7a5c: aa1503e1 mov x1, x21
|
||
7a60: aa1703e0 mov x0, x23
|
||
7a64: f1007c5f cmp x2, #0x1f
|
||
7a68: 54000be8 b.hi 7be4 <_setlocale_r.part.0+0x224> // b.pmore
|
||
7a6c: 910082f7 add x23, x23, #0x20
|
||
7a70: 94000774 bl 9840 <strcpy>
|
||
7a74: 71001e7f cmp w19, #0x7
|
||
7a78: 54fffe41 b.ne 7a40 <_setlocale_r.part.0+0x80> // b.any
|
||
7a7c: d0000038 adrp x24, d000 <__malloc_av_+0x780>
|
||
7a80: 9113e318 add x24, x24, #0x4f8
|
||
7a84: 91008318 add x24, x24, #0x20
|
||
7a88: aa1903f7 mov x23, x25
|
||
7a8c: aa1803f5 mov x21, x24
|
||
7a90: 52800033 mov w19, #0x1 // #1
|
||
7a94: d503201f nop
|
||
7a98: aa1403e1 mov x1, x20
|
||
7a9c: aa1503e0 mov x0, x21
|
||
7aa0: 94000768 bl 9840 <strcpy>
|
||
7aa4: aa1703e2 mov x2, x23
|
||
7aa8: 2a1303e1 mov w1, w19
|
||
7aac: aa1603e0 mov x0, x22
|
||
7ab0: 97fffdb0 bl 7170 <__loadlocale>
|
||
7ab4: b4000c60 cbz x0, 7c40 <_setlocale_r.part.0+0x280>
|
||
7ab8: 11000673 add w19, w19, #0x1
|
||
7abc: 910082b5 add x21, x21, #0x20
|
||
7ac0: 91008294 add x20, x20, #0x20
|
||
7ac4: 910082f7 add x23, x23, #0x20
|
||
7ac8: 71001e7f cmp w19, #0x7
|
||
7acc: 54fffe61 b.ne 7a98 <_setlocale_r.part.0+0xd8> // b.any
|
||
7ad0: a94153f3 ldp x19, x20, [sp, #16]
|
||
7ad4: a9425bf5 ldp x21, x22, [sp, #32]
|
||
7ad8: a94363f7 ldp x23, x24, [sp, #48]
|
||
7adc: a9446bf9 ldp x25, x26, [sp, #64]
|
||
7ae0: a94573fb ldp x27, x28, [sp, #80]
|
||
7ae4: a8c67bfd ldp x29, x30, [sp], #96
|
||
7ae8: 17fffd72 b 70b0 <currentlocale>
|
||
7aec: 3500057c cbnz w28, 7b98 <_setlocale_r.part.0+0x1d8>
|
||
7af0: aa1803e0 mov x0, x24
|
||
7af4: 528005e1 mov w1, #0x2f // #47
|
||
7af8: 940006cf bl 9634 <strchr>
|
||
7afc: aa0003f3 mov x19, x0
|
||
7b00: b5000060 cbnz x0, 7b0c <_setlocale_r.part.0+0x14c>
|
||
7b04: 14000085 b 7d18 <_setlocale_r.part.0+0x358>
|
||
7b08: 91000673 add x19, x19, #0x1
|
||
7b0c: 39400660 ldrb w0, [x19, #1]
|
||
7b10: 7100bc1f cmp w0, #0x2f
|
||
7b14: 54ffffa0 b.eq 7b08 <_setlocale_r.part.0+0x148> // b.none
|
||
7b18: 34000660 cbz w0, 7be4 <_setlocale_r.part.0+0x224>
|
||
7b1c: aa1903fb mov x27, x25
|
||
7b20: 52800037 mov w23, #0x1 // #1
|
||
7b24: cb180262 sub x2, x19, x24
|
||
7b28: 71007c5f cmp w2, #0x1f
|
||
7b2c: 540005cc b.gt 7be4 <_setlocale_r.part.0+0x224>
|
||
7b30: 11000442 add w2, w2, #0x1
|
||
7b34: aa1803e1 mov x1, x24
|
||
7b38: aa1b03e0 mov x0, x27
|
||
7b3c: 110006f7 add w23, w23, #0x1
|
||
7b40: 93407c42 sxtw x2, w2
|
||
7b44: 940007af bl 9a00 <strlcpy>
|
||
7b48: 39400260 ldrb w0, [x19]
|
||
7b4c: 7100bc1f cmp w0, #0x2f
|
||
7b50: 540000a1 b.ne 7b64 <_setlocale_r.part.0+0x1a4> // b.any
|
||
7b54: d503201f nop
|
||
7b58: 38401e60 ldrb w0, [x19, #1]!
|
||
7b5c: 7100bc1f cmp w0, #0x2f
|
||
7b60: 54ffffc0 b.eq 7b58 <_setlocale_r.part.0+0x198> // b.none
|
||
7b64: 34000c00 cbz w0, 7ce4 <_setlocale_r.part.0+0x324>
|
||
7b68: aa1303e1 mov x1, x19
|
||
7b6c: d503201f nop
|
||
7b70: 38401c20 ldrb w0, [x1, #1]!
|
||
7b74: 7100bc1f cmp w0, #0x2f
|
||
7b78: 7a401804 ccmp w0, #0x0, #0x4, ne // ne = any
|
||
7b7c: 54ffffa1 b.ne 7b70 <_setlocale_r.part.0+0x1b0> // b.any
|
||
7b80: 9100837b add x27, x27, #0x20
|
||
7b84: 71001eff cmp w23, #0x7
|
||
7b88: 54fff7a0 b.eq 7a7c <_setlocale_r.part.0+0xbc> // b.none
|
||
7b8c: aa1303f8 mov x24, x19
|
||
7b90: aa0103f3 mov x19, x1
|
||
7b94: 17ffffe4 b 7b24 <_setlocale_r.part.0+0x164>
|
||
7b98: aa1803e0 mov x0, x24
|
||
7b9c: 940007b9 bl 9a80 <strlen>
|
||
7ba0: f1007c1f cmp x0, #0x1f
|
||
7ba4: 54000208 b.hi 7be4 <_setlocale_r.part.0+0x224> // b.pmore
|
||
7ba8: 937b7f80 sbfiz x0, x28, #5, #32
|
||
7bac: aa1803e1 mov x1, x24
|
||
7bb0: 8b0002b5 add x21, x21, x0
|
||
7bb4: aa1503e0 mov x0, x21
|
||
7bb8: 94000722 bl 9840 <strcpy>
|
||
7bbc: aa1503e2 mov x2, x21
|
||
7bc0: 2a1c03e1 mov w1, w28
|
||
7bc4: aa1603e0 mov x0, x22
|
||
7bc8: a94153f3 ldp x19, x20, [sp, #16]
|
||
7bcc: a9425bf5 ldp x21, x22, [sp, #32]
|
||
7bd0: a94363f7 ldp x23, x24, [sp, #48]
|
||
7bd4: a9446bf9 ldp x25, x26, [sp, #64]
|
||
7bd8: a94573fb ldp x27, x28, [sp, #80]
|
||
7bdc: a8c67bfd ldp x29, x30, [sp], #96
|
||
7be0: 17fffd64 b 7170 <__loadlocale>
|
||
7be4: 528002c0 mov w0, #0x16 // #22
|
||
7be8: b9000340 str w0, [x26]
|
||
7bec: d2800000 mov x0, #0x0 // #0
|
||
7bf0: a94153f3 ldp x19, x20, [sp, #16]
|
||
7bf4: a9425bf5 ldp x21, x22, [sp, #32]
|
||
7bf8: a94363f7 ldp x23, x24, [sp, #48]
|
||
7bfc: a9446bf9 ldp x25, x26, [sp, #64]
|
||
7c00: a94573fb ldp x27, x28, [sp, #80]
|
||
7c04: a8c67bfd ldp x29, x30, [sp], #96
|
||
7c08: d65f03c0 ret
|
||
7c0c: 2a1c03e1 mov w1, w28
|
||
7c10: aa1a03e0 mov x0, x26
|
||
7c14: 97ffff47 bl 7930 <__get_locale_env>
|
||
7c18: aa0003f3 mov x19, x0
|
||
7c1c: 94000799 bl 9a80 <strlen>
|
||
7c20: f1007c1f cmp x0, #0x1f
|
||
7c24: 54fffe08 b.hi 7be4 <_setlocale_r.part.0+0x224> // b.pmore
|
||
7c28: 937b7f80 sbfiz x0, x28, #5, #32
|
||
7c2c: aa1303e1 mov x1, x19
|
||
7c30: 8b0002b5 add x21, x21, x0
|
||
7c34: aa1503e0 mov x0, x21
|
||
7c38: 94000702 bl 9840 <strcpy>
|
||
7c3c: 17ffffe0 b 7bbc <_setlocale_r.part.0+0x1fc>
|
||
7c40: 90000020 adrp x0, b000 <pow10.0+0x80>
|
||
7c44: b9400357 ldr w23, [x26]
|
||
7c48: 910e4015 add x21, x0, #0x390
|
||
7c4c: 52800034 mov w20, #0x1 // #1
|
||
7c50: 6b14027f cmp w19, w20
|
||
7c54: 540000e1 b.ne 7c70 <_setlocale_r.part.0+0x2b0> // b.any
|
||
7c58: 1400001a b 7cc0 <_setlocale_r.part.0+0x300>
|
||
7c5c: 11000694 add w20, w20, #0x1
|
||
7c60: 91008339 add x25, x25, #0x20
|
||
7c64: 91008318 add x24, x24, #0x20
|
||
7c68: 6b14027f cmp w19, w20
|
||
7c6c: 540002a0 b.eq 7cc0 <_setlocale_r.part.0+0x300> // b.none
|
||
7c70: aa1803e1 mov x1, x24
|
||
7c74: aa1903e0 mov x0, x25
|
||
7c78: 940006f2 bl 9840 <strcpy>
|
||
7c7c: aa1903e2 mov x2, x25
|
||
7c80: 2a1403e1 mov w1, w20
|
||
7c84: aa1603e0 mov x0, x22
|
||
7c88: 97fffd3a bl 7170 <__loadlocale>
|
||
7c8c: b5fffe80 cbnz x0, 7c5c <_setlocale_r.part.0+0x29c>
|
||
7c90: aa1503e1 mov x1, x21
|
||
7c94: aa1903e0 mov x0, x25
|
||
7c98: 940006ea bl 9840 <strcpy>
|
||
7c9c: 91008318 add x24, x24, #0x20
|
||
7ca0: aa1903e2 mov x2, x25
|
||
7ca4: 2a1403e1 mov w1, w20
|
||
7ca8: aa1603e0 mov x0, x22
|
||
7cac: 11000694 add w20, w20, #0x1
|
||
7cb0: 97fffd30 bl 7170 <__loadlocale>
|
||
7cb4: 91008339 add x25, x25, #0x20
|
||
7cb8: 6b14027f cmp w19, w20
|
||
7cbc: 54fffda1 b.ne 7c70 <_setlocale_r.part.0+0x2b0> // b.any
|
||
7cc0: b9000357 str w23, [x26]
|
||
7cc4: d2800000 mov x0, #0x0 // #0
|
||
7cc8: a94153f3 ldp x19, x20, [sp, #16]
|
||
7ccc: a9425bf5 ldp x21, x22, [sp, #32]
|
||
7cd0: a94363f7 ldp x23, x24, [sp, #48]
|
||
7cd4: a9446bf9 ldp x25, x26, [sp, #64]
|
||
7cd8: a94573fb ldp x27, x28, [sp, #80]
|
||
7cdc: a8c67bfd ldp x29, x30, [sp], #96
|
||
7ce0: d65f03c0 ret
|
||
7ce4: 71001eff cmp w23, #0x7
|
||
7ce8: 54ffeca0 b.eq 7a7c <_setlocale_r.part.0+0xbc> // b.none
|
||
7cec: 937b7ee0 sbfiz x0, x23, #5, #32
|
||
7cf0: 8b0002b5 add x21, x21, x0
|
||
7cf4: d503201f nop
|
||
7cf8: d10082a1 sub x1, x21, #0x20
|
||
7cfc: aa1503e0 mov x0, x21
|
||
7d00: 110006f7 add w23, w23, #0x1
|
||
7d04: 940006cf bl 9840 <strcpy>
|
||
7d08: 910082b5 add x21, x21, #0x20
|
||
7d0c: 71001eff cmp w23, #0x7
|
||
7d10: 54ffff41 b.ne 7cf8 <_setlocale_r.part.0+0x338> // b.any
|
||
7d14: 17ffff5a b 7a7c <_setlocale_r.part.0+0xbc>
|
||
7d18: aa1803e0 mov x0, x24
|
||
7d1c: 94000759 bl 9a80 <strlen>
|
||
7d20: f1007c1f cmp x0, #0x1f
|
||
7d24: 54fff608 b.hi 7be4 <_setlocale_r.part.0+0x224> // b.pmore
|
||
7d28: aa1903f3 mov x19, x25
|
||
7d2c: d503201f nop
|
||
7d30: aa1303e0 mov x0, x19
|
||
7d34: aa1803e1 mov x1, x24
|
||
7d38: 91008273 add x19, x19, #0x20
|
||
7d3c: 940006c1 bl 9840 <strcpy>
|
||
7d40: eb1302ff cmp x23, x19
|
||
7d44: 54ffff61 b.ne 7d30 <_setlocale_r.part.0+0x370> // b.any
|
||
7d48: 17ffff4d b 7a7c <_setlocale_r.part.0+0xbc>
|
||
7d4c: d503201f nop
|
||
|
||
0000000000007d50 <_setlocale_r>:
|
||
7d50: aa0003e5 mov x5, x0
|
||
7d54: 7100183f cmp w1, #0x6
|
||
7d58: 54000068 b.hi 7d64 <_setlocale_r+0x14> // b.pmore
|
||
7d5c: b40000c2 cbz x2, 7d74 <_setlocale_r+0x24>
|
||
7d60: 17ffff18 b 79c0 <_setlocale_r.part.0>
|
||
7d64: 528002c1 mov w1, #0x16 // #22
|
||
7d68: d2800000 mov x0, #0x0 // #0
|
||
7d6c: b90000a1 str w1, [x5]
|
||
7d70: d65f03c0 ret
|
||
7d74: 340000c1 cbz w1, 7d8c <_setlocale_r+0x3c>
|
||
7d78: 937b7c23 sbfiz x3, x1, #5, #32
|
||
7d7c: d0000020 adrp x0, d000 <__malloc_av_+0x780>
|
||
7d80: 91030000 add x0, x0, #0xc0
|
||
7d84: 8b030000 add x0, x0, x3
|
||
7d88: d65f03c0 ret
|
||
7d8c: 17fffcc9 b 70b0 <currentlocale>
|
||
|
||
0000000000007d90 <__locale_mb_cur_max>:
|
||
7d90: d0000020 adrp x0, d000 <__malloc_av_+0x780>
|
||
7d94: 39488000 ldrb w0, [x0, #544]
|
||
7d98: d65f03c0 ret
|
||
7d9c: d503201f nop
|
||
|
||
0000000000007da0 <setlocale>:
|
||
7da0: b0000024 adrp x4, c000 <IpcTestNull+0x6e8>
|
||
7da4: 2a0003e3 mov w3, w0
|
||
7da8: aa0103e2 mov x2, x1
|
||
7dac: f9409880 ldr x0, [x4, #304]
|
||
7db0: 7100187f cmp w3, #0x6
|
||
7db4: 54000088 b.hi 7dc4 <setlocale+0x24> // b.pmore
|
||
7db8: b4000101 cbz x1, 7dd8 <setlocale+0x38>
|
||
7dbc: 2a0303e1 mov w1, w3
|
||
7dc0: 17ffff00 b 79c0 <_setlocale_r.part.0>
|
||
7dc4: 528002c1 mov w1, #0x16 // #22
|
||
7dc8: d2800003 mov x3, #0x0 // #0
|
||
7dcc: b9000001 str w1, [x0]
|
||
7dd0: aa0303e0 mov x0, x3
|
||
7dd4: d65f03c0 ret
|
||
7dd8: 340000e3 cbz w3, 7df4 <setlocale+0x54>
|
||
7ddc: 937b7c63 sbfiz x3, x3, #5, #32
|
||
7de0: d0000020 adrp x0, d000 <__malloc_av_+0x780>
|
||
7de4: 91030000 add x0, x0, #0xc0
|
||
7de8: 8b030003 add x3, x0, x3
|
||
7dec: aa0303e0 mov x0, x3
|
||
7df0: d65f03c0 ret
|
||
7df4: 17fffcaf b 70b0 <currentlocale>
|
||
7df8: d503201f nop
|
||
7dfc: d503201f nop
|
||
|
||
0000000000007e00 <__smakebuf_r>:
|
||
7e00: a9b57bfd stp x29, x30, [sp, #-176]!
|
||
7e04: 910003fd mov x29, sp
|
||
7e08: 79402022 ldrh w2, [x1, #16]
|
||
7e0c: a90153f3 stp x19, x20, [sp, #16]
|
||
7e10: aa0103f3 mov x19, x1
|
||
7e14: 36080122 tbz w2, #1, 7e38 <__smakebuf_r+0x38>
|
||
7e18: 9101dc20 add x0, x1, #0x77
|
||
7e1c: 52800021 mov w1, #0x1 // #1
|
||
7e20: f9000260 str x0, [x19]
|
||
7e24: f9000e60 str x0, [x19, #24]
|
||
7e28: b9002261 str w1, [x19, #32]
|
||
7e2c: a94153f3 ldp x19, x20, [sp, #16]
|
||
7e30: a8cb7bfd ldp x29, x30, [sp], #176
|
||
7e34: d65f03c0 ret
|
||
7e38: 79c02421 ldrsh w1, [x1, #18]
|
||
7e3c: aa0003f4 mov x20, x0
|
||
7e40: a9025bf5 stp x21, x22, [sp, #32]
|
||
7e44: f9001bf7 str x23, [sp, #48]
|
||
7e48: 37f80381 tbnz w1, #31, 7eb8 <__smakebuf_r+0xb8>
|
||
7e4c: 910123e2 add x2, sp, #0x48
|
||
7e50: 94000a84 bl a860 <_fstat_r>
|
||
7e54: 37f80300 tbnz w0, #31, 7eb4 <__smakebuf_r+0xb4>
|
||
7e58: b9404fe0 ldr w0, [sp, #76]
|
||
7e5c: d2808016 mov x22, #0x400 // #1024
|
||
7e60: 52810015 mov w21, #0x800 // #2048
|
||
7e64: aa1603e1 mov x1, x22
|
||
7e68: 12140c00 and w0, w0, #0xf000
|
||
7e6c: 7140081f cmp w0, #0x2, lsl #12
|
||
7e70: aa1403e0 mov x0, x20
|
||
7e74: 1a9f17f7 cset w23, eq // eq = none
|
||
7e78: 97ffec72 bl 3040 <_malloc_r>
|
||
7e7c: b5000320 cbnz x0, 7ee0 <__smakebuf_r+0xe0>
|
||
7e80: 79c02260 ldrsh w0, [x19, #16]
|
||
7e84: 374805c0 tbnz w0, #9, 7f3c <__smakebuf_r+0x13c>
|
||
7e88: 121e7400 and w0, w0, #0xfffffffc
|
||
7e8c: 9101de61 add x1, x19, #0x77
|
||
7e90: 321f0000 orr w0, w0, #0x2
|
||
7e94: 52800022 mov w2, #0x1 // #1
|
||
7e98: 79002260 strh w0, [x19, #16]
|
||
7e9c: a9425bf5 ldp x21, x22, [sp, #32]
|
||
7ea0: f9401bf7 ldr x23, [sp, #48]
|
||
7ea4: f9000261 str x1, [x19]
|
||
7ea8: f9000e61 str x1, [x19, #24]
|
||
7eac: b9002262 str w2, [x19, #32]
|
||
7eb0: 17ffffdf b 7e2c <__smakebuf_r+0x2c>
|
||
7eb4: 79402262 ldrh w2, [x19, #16]
|
||
7eb8: f279005f tst x2, #0x80
|
||
7ebc: d2808001 mov x1, #0x400 // #1024
|
||
7ec0: d2800816 mov x22, #0x40 // #64
|
||
7ec4: 9a8112d6 csel x22, x22, x1, ne // ne = any
|
||
7ec8: aa1603e1 mov x1, x22
|
||
7ecc: aa1403e0 mov x0, x20
|
||
7ed0: 52800017 mov w23, #0x0 // #0
|
||
7ed4: 52800015 mov w21, #0x0 // #0
|
||
7ed8: 97ffec5a bl 3040 <_malloc_r>
|
||
7edc: b4fffd20 cbz x0, 7e80 <__smakebuf_r+0x80>
|
||
7ee0: 79c02262 ldrsh w2, [x19, #16]
|
||
7ee4: f0ffffe1 adrp x1, 6000 <__sflush_r+0x200>
|
||
7ee8: 91048021 add x1, x1, #0x120
|
||
7eec: f9002e81 str x1, [x20, #88]
|
||
7ef0: 32190042 orr w2, w2, #0x80
|
||
7ef4: f9000260 str x0, [x19]
|
||
7ef8: 79002262 strh w2, [x19, #16]
|
||
7efc: f9000e60 str x0, [x19, #24]
|
||
7f00: b9002276 str w22, [x19, #32]
|
||
7f04: 35000117 cbnz w23, 7f24 <__smakebuf_r+0x124>
|
||
7f08: 2a150042 orr w2, w2, w21
|
||
7f0c: 79002262 strh w2, [x19, #16]
|
||
7f10: a94153f3 ldp x19, x20, [sp, #16]
|
||
7f14: a9425bf5 ldp x21, x22, [sp, #32]
|
||
7f18: f9401bf7 ldr x23, [sp, #48]
|
||
7f1c: a8cb7bfd ldp x29, x30, [sp], #176
|
||
7f20: d65f03c0 ret
|
||
7f24: 79c02661 ldrsh w1, [x19, #18]
|
||
7f28: aa1403e0 mov x0, x20
|
||
7f2c: 94000aa9 bl a9d0 <_isatty_r>
|
||
7f30: 350000c0 cbnz w0, 7f48 <__smakebuf_r+0x148>
|
||
7f34: 79c02262 ldrsh w2, [x19, #16]
|
||
7f38: 17fffff4 b 7f08 <__smakebuf_r+0x108>
|
||
7f3c: a9425bf5 ldp x21, x22, [sp, #32]
|
||
7f40: f9401bf7 ldr x23, [sp, #48]
|
||
7f44: 17ffffba b 7e2c <__smakebuf_r+0x2c>
|
||
7f48: 79402262 ldrh w2, [x19, #16]
|
||
7f4c: 121e7442 and w2, w2, #0xfffffffc
|
||
7f50: 32000042 orr w2, w2, #0x1
|
||
7f54: 13003c42 sxth w2, w2
|
||
7f58: 17ffffec b 7f08 <__smakebuf_r+0x108>
|
||
7f5c: d503201f nop
|
||
|
||
0000000000007f60 <__swhatbuf_r>:
|
||
7f60: a9b67bfd stp x29, x30, [sp, #-160]!
|
||
7f64: 910003fd mov x29, sp
|
||
7f68: a90153f3 stp x19, x20, [sp, #16]
|
||
7f6c: aa0103f3 mov x19, x1
|
||
7f70: 79c02421 ldrsh w1, [x1, #18]
|
||
7f74: f90013f5 str x21, [sp, #32]
|
||
7f78: aa0203f4 mov x20, x2
|
||
7f7c: aa0303f5 mov x21, x3
|
||
7f80: 37f80201 tbnz w1, #31, 7fc0 <__swhatbuf_r+0x60>
|
||
7f84: 9100e3e2 add x2, sp, #0x38
|
||
7f88: 94000a36 bl a860 <_fstat_r>
|
||
7f8c: 37f801a0 tbnz w0, #31, 7fc0 <__swhatbuf_r+0x60>
|
||
7f90: b9403fe1 ldr w1, [sp, #60]
|
||
7f94: d2808002 mov x2, #0x400 // #1024
|
||
7f98: 52810000 mov w0, #0x800 // #2048
|
||
7f9c: 12140c21 and w1, w1, #0xf000
|
||
7fa0: 7140083f cmp w1, #0x2, lsl #12
|
||
7fa4: 1a9f17e1 cset w1, eq // eq = none
|
||
7fa8: b90002a1 str w1, [x21]
|
||
7fac: f9000282 str x2, [x20]
|
||
7fb0: a94153f3 ldp x19, x20, [sp, #16]
|
||
7fb4: f94013f5 ldr x21, [sp, #32]
|
||
7fb8: a8ca7bfd ldp x29, x30, [sp], #160
|
||
7fbc: d65f03c0 ret
|
||
7fc0: 79c02260 ldrsh w0, [x19, #16]
|
||
7fc4: b90002bf str wzr, [x21]
|
||
7fc8: 36380100 tbz w0, #7, 7fe8 <__swhatbuf_r+0x88>
|
||
7fcc: d2800801 mov x1, #0x40 // #64
|
||
7fd0: f9000281 str x1, [x20]
|
||
7fd4: 52800000 mov w0, #0x0 // #0
|
||
7fd8: a94153f3 ldp x19, x20, [sp, #16]
|
||
7fdc: f94013f5 ldr x21, [sp, #32]
|
||
7fe0: a8ca7bfd ldp x29, x30, [sp], #160
|
||
7fe4: d65f03c0 ret
|
||
7fe8: d2808001 mov x1, #0x400 // #1024
|
||
7fec: f9000281 str x1, [x20]
|
||
7ff0: 52800000 mov w0, #0x0 // #0
|
||
7ff4: a94153f3 ldp x19, x20, [sp, #16]
|
||
7ff8: f94013f5 ldr x21, [sp, #32]
|
||
7ffc: a8ca7bfd ldp x29, x30, [sp], #160
|
||
8000: d65f03c0 ret
|
||
8004: d503201f nop
|
||
8008: d503201f nop
|
||
800c: d503201f nop
|
||
|
||
0000000000008010 <_mbtowc_r>:
|
||
8010: b0000025 adrp x5, d000 <__malloc_av_+0x780>
|
||
8014: f940d4a5 ldr x5, [x5, #424]
|
||
8018: aa0503f0 mov x16, x5
|
||
801c: d61f0200 br x16
|
||
|
||
0000000000008020 <__ascii_mbtowc>:
|
||
8020: d10043ff sub sp, sp, #0x10
|
||
8024: f100003f cmp x1, #0x0
|
||
8028: 910033e0 add x0, sp, #0xc
|
||
802c: 9a810001 csel x1, x0, x1, eq // eq = none
|
||
8030: b4000122 cbz x2, 8054 <__ascii_mbtowc+0x34>
|
||
8034: b4000163 cbz x3, 8060 <__ascii_mbtowc+0x40>
|
||
8038: 39400040 ldrb w0, [x2]
|
||
803c: b9000020 str w0, [x1]
|
||
8040: 39400040 ldrb w0, [x2]
|
||
8044: 7100001f cmp w0, #0x0
|
||
8048: 1a9f07e0 cset w0, ne // ne = any
|
||
804c: 910043ff add sp, sp, #0x10
|
||
8050: d65f03c0 ret
|
||
8054: 52800000 mov w0, #0x0 // #0
|
||
8058: 910043ff add sp, sp, #0x10
|
||
805c: d65f03c0 ret
|
||
8060: 12800020 mov w0, #0xfffffffe // #-2
|
||
8064: 17fffffa b 804c <__ascii_mbtowc+0x2c>
|
||
8068: d503201f nop
|
||
806c: d503201f nop
|
||
|
||
0000000000008070 <__utf8_mbtowc>:
|
||
8070: d10043ff sub sp, sp, #0x10
|
||
8074: f100003f cmp x1, #0x0
|
||
8078: 910033e5 add x5, sp, #0xc
|
||
807c: 9a8100a1 csel x1, x5, x1, eq // eq = none
|
||
8080: b4000a02 cbz x2, 81c0 <__utf8_mbtowc+0x150>
|
||
8084: b40012a3 cbz x3, 82d8 <__utf8_mbtowc+0x268>
|
||
8088: b9400086 ldr w6, [x4]
|
||
808c: aa0003e8 mov x8, x0
|
||
8090: 350003c6 cbnz w6, 8108 <__utf8_mbtowc+0x98>
|
||
8094: 39400040 ldrb w0, [x2]
|
||
8098: 52800025 mov w5, #0x1 // #1
|
||
809c: 340003c0 cbz w0, 8114 <__utf8_mbtowc+0xa4>
|
||
80a0: 7101fc1f cmp w0, #0x7f
|
||
80a4: 5400084d b.le 81ac <__utf8_mbtowc+0x13c>
|
||
80a8: 51030007 sub w7, w0, #0xc0
|
||
80ac: 71007cff cmp w7, #0x1f
|
||
80b0: 540003a8 b.hi 8124 <__utf8_mbtowc+0xb4> // b.pmore
|
||
80b4: 39001080 strb w0, [x4, #4]
|
||
80b8: 350000a6 cbnz w6, 80cc <__utf8_mbtowc+0x5c>
|
||
80bc: 52800026 mov w6, #0x1 // #1
|
||
80c0: b9000086 str w6, [x4]
|
||
80c4: f100047f cmp x3, #0x1
|
||
80c8: 54001080 b.eq 82d8 <__utf8_mbtowc+0x268> // b.none
|
||
80cc: 3865c842 ldrb w2, [x2, w5, sxtw]
|
||
80d0: 110004a5 add w5, w5, #0x1
|
||
80d4: 51020043 sub w3, w2, #0x80
|
||
80d8: 7100fc7f cmp w3, #0x3f
|
||
80dc: 54001068 b.hi 82e8 <__utf8_mbtowc+0x278> // b.pmore
|
||
80e0: 7103041f cmp w0, #0xc1
|
||
80e4: 5400102d b.le 82e8 <__utf8_mbtowc+0x278>
|
||
80e8: 531a1000 ubfiz w0, w0, #6, #5
|
||
80ec: 12001442 and w2, w2, #0x3f
|
||
80f0: b900009f str wzr, [x4]
|
||
80f4: 2a020002 orr w2, w0, w2
|
||
80f8: b9000022 str w2, [x1]
|
||
80fc: 2a0503e0 mov w0, w5
|
||
8100: 910043ff add sp, sp, #0x10
|
||
8104: d65f03c0 ret
|
||
8108: 39401080 ldrb w0, [x4, #4]
|
||
810c: 52800005 mov w5, #0x0 // #0
|
||
8110: 35fffc80 cbnz w0, 80a0 <__utf8_mbtowc+0x30>
|
||
8114: b900003f str wzr, [x1]
|
||
8118: b900009f str wzr, [x4]
|
||
811c: 910043ff add sp, sp, #0x10
|
||
8120: d65f03c0 ret
|
||
8124: 51038007 sub w7, w0, #0xe0
|
||
8128: 71003cff cmp w7, #0xf
|
||
812c: 54000508 b.hi 81cc <__utf8_mbtowc+0x15c> // b.pmore
|
||
8130: 39001080 strb w0, [x4, #4]
|
||
8134: 34000aa6 cbz w6, 8288 <__utf8_mbtowc+0x218>
|
||
8138: b100047f cmn x3, #0x1
|
||
813c: 9a830463 cinc x3, x3, ne // ne = any
|
||
8140: 710004df cmp w6, #0x1
|
||
8144: 54000aa0 b.eq 8298 <__utf8_mbtowc+0x228> // b.none
|
||
8148: 39401487 ldrb w7, [x4, #5]
|
||
814c: 7103801f cmp w0, #0xe0
|
||
8150: 528013e9 mov w9, #0x9f // #159
|
||
8154: 7a4900e0 ccmp w7, w9, #0x0, eq // eq = none
|
||
8158: 54000c8d b.le 82e8 <__utf8_mbtowc+0x278>
|
||
815c: 510200e9 sub w9, w7, #0x80
|
||
8160: 7100fd3f cmp w9, #0x3f
|
||
8164: 54000c28 b.hi 82e8 <__utf8_mbtowc+0x278> // b.pmore
|
||
8168: 39001487 strb w7, [x4, #5]
|
||
816c: 710004df cmp w6, #0x1
|
||
8170: 54000ac0 b.eq 82c8 <__utf8_mbtowc+0x258> // b.none
|
||
8174: 3865c842 ldrb w2, [x2, w5, sxtw]
|
||
8178: 110004a5 add w5, w5, #0x1
|
||
817c: 51020043 sub w3, w2, #0x80
|
||
8180: 7100fc7f cmp w3, #0x3f
|
||
8184: 54000b28 b.hi 82e8 <__utf8_mbtowc+0x278> // b.pmore
|
||
8188: 53140c00 ubfiz w0, w0, #12, #4
|
||
818c: 531a14e7 ubfiz w7, w7, #6, #6
|
||
8190: 2a070007 orr w7, w0, w7
|
||
8194: 12001442 and w2, w2, #0x3f
|
||
8198: b900009f str wzr, [x4]
|
||
819c: 2a0200e7 orr w7, w7, w2
|
||
81a0: 2a0503e0 mov w0, w5
|
||
81a4: b9000027 str w7, [x1]
|
||
81a8: 17ffffdd b 811c <__utf8_mbtowc+0xac>
|
||
81ac: b900009f str wzr, [x4]
|
||
81b0: b9000020 str w0, [x1]
|
||
81b4: 52800020 mov w0, #0x1 // #1
|
||
81b8: 910043ff add sp, sp, #0x10
|
||
81bc: d65f03c0 ret
|
||
81c0: 52800000 mov w0, #0x0 // #0
|
||
81c4: 910043ff add sp, sp, #0x10
|
||
81c8: d65f03c0 ret
|
||
81cc: 5103c007 sub w7, w0, #0xf0
|
||
81d0: 710010ff cmp w7, #0x4
|
||
81d4: 540008a8 b.hi 82e8 <__utf8_mbtowc+0x278> // b.pmore
|
||
81d8: 39001080 strb w0, [x4, #4]
|
||
81dc: 34000666 cbz w6, 82a8 <__utf8_mbtowc+0x238>
|
||
81e0: b100047f cmn x3, #0x1
|
||
81e4: 9a830463 cinc x3, x3, ne // ne = any
|
||
81e8: 710004df cmp w6, #0x1
|
||
81ec: 54000660 b.eq 82b8 <__utf8_mbtowc+0x248> // b.none
|
||
81f0: 39401487 ldrb w7, [x4, #5]
|
||
81f4: 7103c01f cmp w0, #0xf0
|
||
81f8: 54000740 b.eq 82e0 <__utf8_mbtowc+0x270> // b.none
|
||
81fc: 71023cff cmp w7, #0x8f
|
||
8200: 52801e89 mov w9, #0xf4 // #244
|
||
8204: 7a49c000 ccmp w0, w9, #0x0, gt
|
||
8208: 54000700 b.eq 82e8 <__utf8_mbtowc+0x278> // b.none
|
||
820c: 510200e9 sub w9, w7, #0x80
|
||
8210: 7100fd3f cmp w9, #0x3f
|
||
8214: 540006a8 b.hi 82e8 <__utf8_mbtowc+0x278> // b.pmore
|
||
8218: 39001487 strb w7, [x4, #5]
|
||
821c: 710004df cmp w6, #0x1
|
||
8220: 540006c0 b.eq 82f8 <__utf8_mbtowc+0x288> // b.none
|
||
8224: b9400086 ldr w6, [x4]
|
||
8228: b100047f cmn x3, #0x1
|
||
822c: 9a830463 cinc x3, x3, ne // ne = any
|
||
8230: 710008df cmp w6, #0x2
|
||
8234: 540006a0 b.eq 8308 <__utf8_mbtowc+0x298> // b.none
|
||
8238: 39401886 ldrb w6, [x4, #6]
|
||
823c: 510200c3 sub w3, w6, #0x80
|
||
8240: 7100fc7f cmp w3, #0x3f
|
||
8244: 54000528 b.hi 82e8 <__utf8_mbtowc+0x278> // b.pmore
|
||
8248: 3865c842 ldrb w2, [x2, w5, sxtw]
|
||
824c: 110004a5 add w5, w5, #0x1
|
||
8250: 51020043 sub w3, w2, #0x80
|
||
8254: 7100fc7f cmp w3, #0x3f
|
||
8258: 54000488 b.hi 82e8 <__utf8_mbtowc+0x278> // b.pmore
|
||
825c: 530e0800 ubfiz w0, w0, #18, #3
|
||
8260: 531414e7 ubfiz w7, w7, #12, #6
|
||
8264: 531a14c6 ubfiz w6, w6, #6, #6
|
||
8268: 12001442 and w2, w2, #0x3f
|
||
826c: 2a070007 orr w7, w0, w7
|
||
8270: 2a0200c6 orr w6, w6, w2
|
||
8274: 2a0600e6 orr w6, w7, w6
|
||
8278: b9000026 str w6, [x1]
|
||
827c: 2a0503e0 mov w0, w5
|
||
8280: b900009f str wzr, [x4]
|
||
8284: 17ffffa6 b 811c <__utf8_mbtowc+0xac>
|
||
8288: 52800026 mov w6, #0x1 // #1
|
||
828c: b9000086 str w6, [x4]
|
||
8290: f100047f cmp x3, #0x1
|
||
8294: 54000220 b.eq 82d8 <__utf8_mbtowc+0x268> // b.none
|
||
8298: 3865c847 ldrb w7, [x2, w5, sxtw]
|
||
829c: 52800026 mov w6, #0x1 // #1
|
||
82a0: 0b0600a5 add w5, w5, w6
|
||
82a4: 17ffffaa b 814c <__utf8_mbtowc+0xdc>
|
||
82a8: 52800026 mov w6, #0x1 // #1
|
||
82ac: b9000086 str w6, [x4]
|
||
82b0: f100047f cmp x3, #0x1
|
||
82b4: 54000120 b.eq 82d8 <__utf8_mbtowc+0x268> // b.none
|
||
82b8: 3865c847 ldrb w7, [x2, w5, sxtw]
|
||
82bc: 52800026 mov w6, #0x1 // #1
|
||
82c0: 0b0600a5 add w5, w5, w6
|
||
82c4: 17ffffcc b 81f4 <__utf8_mbtowc+0x184>
|
||
82c8: 52800046 mov w6, #0x2 // #2
|
||
82cc: b9000086 str w6, [x4]
|
||
82d0: f100087f cmp x3, #0x2
|
||
82d4: 54fff501 b.ne 8174 <__utf8_mbtowc+0x104> // b.any
|
||
82d8: 12800020 mov w0, #0xfffffffe // #-2
|
||
82dc: 17ffff90 b 811c <__utf8_mbtowc+0xac>
|
||
82e0: 71023cff cmp w7, #0x8f
|
||
82e4: 54fff94c b.gt 820c <__utf8_mbtowc+0x19c>
|
||
82e8: 52801141 mov w1, #0x8a // #138
|
||
82ec: 12800000 mov w0, #0xffffffff // #-1
|
||
82f0: b9000101 str w1, [x8]
|
||
82f4: 17ffff8a b 811c <__utf8_mbtowc+0xac>
|
||
82f8: 52800046 mov w6, #0x2 // #2
|
||
82fc: b9000086 str w6, [x4]
|
||
8300: f100087f cmp x3, #0x2
|
||
8304: 54fffea0 b.eq 82d8 <__utf8_mbtowc+0x268> // b.none
|
||
8308: 3865c846 ldrb w6, [x2, w5, sxtw]
|
||
830c: 110004a5 add w5, w5, #0x1
|
||
8310: 510200c9 sub w9, w6, #0x80
|
||
8314: 7100fd3f cmp w9, #0x3f
|
||
8318: 54fffe88 b.hi 82e8 <__utf8_mbtowc+0x278> // b.pmore
|
||
831c: 52800069 mov w9, #0x3 // #3
|
||
8320: b9000089 str w9, [x4]
|
||
8324: 39001886 strb w6, [x4, #6]
|
||
8328: f1000c7f cmp x3, #0x3
|
||
832c: 54fff8e1 b.ne 8248 <__utf8_mbtowc+0x1d8> // b.any
|
||
8330: 12800020 mov w0, #0xfffffffe // #-2
|
||
8334: 17ffff7a b 811c <__utf8_mbtowc+0xac>
|
||
8338: d503201f nop
|
||
833c: d503201f nop
|
||
|
||
0000000000008340 <__sjis_mbtowc>:
|
||
8340: d10043ff sub sp, sp, #0x10
|
||
8344: f100003f cmp x1, #0x0
|
||
8348: 910033e5 add x5, sp, #0xc
|
||
834c: 9a8100a1 csel x1, x5, x1, eq // eq = none
|
||
8350: b40004c2 cbz x2, 83e8 <__sjis_mbtowc+0xa8>
|
||
8354: b4000503 cbz x3, 83f4 <__sjis_mbtowc+0xb4>
|
||
8358: aa0003e6 mov x6, x0
|
||
835c: b9400080 ldr w0, [x4]
|
||
8360: 39400045 ldrb w5, [x2]
|
||
8364: 35000320 cbnz w0, 83c8 <__sjis_mbtowc+0x88>
|
||
8368: 510204a7 sub w7, w5, #0x81
|
||
836c: 510380a0 sub w0, w5, #0xe0
|
||
8370: 710078ff cmp w7, #0x1e
|
||
8374: 7a4f8800 ccmp w0, #0xf, #0x0, hi // hi = pmore
|
||
8378: 540002c8 b.hi 83d0 <__sjis_mbtowc+0x90> // b.pmore
|
||
837c: 52800020 mov w0, #0x1 // #1
|
||
8380: b9000080 str w0, [x4]
|
||
8384: 39001085 strb w5, [x4, #4]
|
||
8388: f100047f cmp x3, #0x1
|
||
838c: 54000340 b.eq 83f4 <__sjis_mbtowc+0xb4> // b.none
|
||
8390: 39400445 ldrb w5, [x2, #1]
|
||
8394: 52800040 mov w0, #0x2 // #2
|
||
8398: 510100a3 sub w3, w5, #0x40
|
||
839c: 510200a2 sub w2, w5, #0x80
|
||
83a0: 7100f87f cmp w3, #0x3e
|
||
83a4: 52800f83 mov w3, #0x7c // #124
|
||
83a8: 7a438040 ccmp w2, w3, #0x0, hi // hi = pmore
|
||
83ac: 54000288 b.hi 83fc <__sjis_mbtowc+0xbc> // b.pmore
|
||
83b0: 39401082 ldrb w2, [x4, #4]
|
||
83b4: 0b0220a5 add w5, w5, w2, lsl #8
|
||
83b8: b9000025 str w5, [x1]
|
||
83bc: b900009f str wzr, [x4]
|
||
83c0: 910043ff add sp, sp, #0x10
|
||
83c4: d65f03c0 ret
|
||
83c8: 7100041f cmp w0, #0x1
|
||
83cc: 54fffe60 b.eq 8398 <__sjis_mbtowc+0x58> // b.none
|
||
83d0: b9000025 str w5, [x1]
|
||
83d4: 39400040 ldrb w0, [x2]
|
||
83d8: 7100001f cmp w0, #0x0
|
||
83dc: 1a9f07e0 cset w0, ne // ne = any
|
||
83e0: 910043ff add sp, sp, #0x10
|
||
83e4: d65f03c0 ret
|
||
83e8: 52800000 mov w0, #0x0 // #0
|
||
83ec: 910043ff add sp, sp, #0x10
|
||
83f0: d65f03c0 ret
|
||
83f4: 12800020 mov w0, #0xfffffffe // #-2
|
||
83f8: 17fffffa b 83e0 <__sjis_mbtowc+0xa0>
|
||
83fc: 52801141 mov w1, #0x8a // #138
|
||
8400: 12800000 mov w0, #0xffffffff // #-1
|
||
8404: b90000c1 str w1, [x6]
|
||
8408: 17fffff6 b 83e0 <__sjis_mbtowc+0xa0>
|
||
840c: d503201f nop
|
||
|
||
0000000000008410 <__eucjp_mbtowc>:
|
||
8410: d10083ff sub sp, sp, #0x20
|
||
8414: f100003f cmp x1, #0x0
|
||
8418: a90007e0 stp x0, x1, [sp]
|
||
841c: 910073e0 add x0, sp, #0x1c
|
||
8420: 9a810001 csel x1, x0, x1, eq // eq = none
|
||
8424: f94003e6 ldr x6, [sp]
|
||
8428: b4000702 cbz x2, 8508 <__eucjp_mbtowc+0xf8>
|
||
842c: b4000783 cbz x3, 851c <__eucjp_mbtowc+0x10c>
|
||
8430: b9400080 ldr w0, [x4]
|
||
8434: 39400045 ldrb w5, [x2]
|
||
8438: 350004a0 cbnz w0, 84cc <__eucjp_mbtowc+0xbc>
|
||
843c: 510284a7 sub w7, w5, #0xa1
|
||
8440: 510238a0 sub w0, w5, #0x8e
|
||
8444: 710174ff cmp w7, #0x5d
|
||
8448: 7a418800 ccmp w0, #0x1, #0x0, hi // hi = pmore
|
||
844c: 54000488 b.hi 84dc <__eucjp_mbtowc+0xcc> // b.pmore
|
||
8450: 52800020 mov w0, #0x1 // #1
|
||
8454: b9000080 str w0, [x4]
|
||
8458: 39001085 strb w5, [x4, #4]
|
||
845c: f100047f cmp x3, #0x1
|
||
8460: 540005e0 b.eq 851c <__eucjp_mbtowc+0x10c> // b.none
|
||
8464: 39400445 ldrb w5, [x2, #1]
|
||
8468: 52800040 mov w0, #0x2 // #2
|
||
846c: 510284a7 sub w7, w5, #0xa1
|
||
8470: 710174ff cmp w7, #0x5d
|
||
8474: 54000588 b.hi 8524 <__eucjp_mbtowc+0x114> // b.pmore
|
||
8478: 39401087 ldrb w7, [x4, #4]
|
||
847c: 71023cff cmp w7, #0x8f
|
||
8480: 540003a1 b.ne 84f4 <__eucjp_mbtowc+0xe4> // b.any
|
||
8484: 52800048 mov w8, #0x2 // #2
|
||
8488: 93407c07 sxtw x7, w0
|
||
848c: b9000088 str w8, [x4]
|
||
8490: 39001485 strb w5, [x4, #5]
|
||
8494: eb0300ff cmp x7, x3
|
||
8498: 54000422 b.cs 851c <__eucjp_mbtowc+0x10c> // b.hs, b.nlast
|
||
849c: 38676845 ldrb w5, [x2, x7]
|
||
84a0: 11000400 add w0, w0, #0x1
|
||
84a4: 510284a2 sub w2, w5, #0xa1
|
||
84a8: 7101745f cmp w2, #0x5d
|
||
84ac: 540003c8 b.hi 8524 <__eucjp_mbtowc+0x114> // b.pmore
|
||
84b0: 39401482 ldrb w2, [x4, #5]
|
||
84b4: 120018a5 and w5, w5, #0x7f
|
||
84b8: 0b0220a5 add w5, w5, w2, lsl #8
|
||
84bc: b9000025 str w5, [x1]
|
||
84c0: b900009f str wzr, [x4]
|
||
84c4: 910083ff add sp, sp, #0x20
|
||
84c8: d65f03c0 ret
|
||
84cc: 7100041f cmp w0, #0x1
|
||
84d0: 54fffce0 b.eq 846c <__eucjp_mbtowc+0x5c> // b.none
|
||
84d4: 7100081f cmp w0, #0x2
|
||
84d8: 540001e0 b.eq 8514 <__eucjp_mbtowc+0x104> // b.none
|
||
84dc: b9000025 str w5, [x1]
|
||
84e0: 39400040 ldrb w0, [x2]
|
||
84e4: 7100001f cmp w0, #0x0
|
||
84e8: 1a9f07e0 cset w0, ne // ne = any
|
||
84ec: 910083ff add sp, sp, #0x20
|
||
84f0: d65f03c0 ret
|
||
84f4: 0b0720a5 add w5, w5, w7, lsl #8
|
||
84f8: b9000025 str w5, [x1]
|
||
84fc: b900009f str wzr, [x4]
|
||
8500: 910083ff add sp, sp, #0x20
|
||
8504: d65f03c0 ret
|
||
8508: 52800000 mov w0, #0x0 // #0
|
||
850c: 910083ff add sp, sp, #0x20
|
||
8510: d65f03c0 ret
|
||
8514: 52800020 mov w0, #0x1 // #1
|
||
8518: 17ffffe3 b 84a4 <__eucjp_mbtowc+0x94>
|
||
851c: 12800020 mov w0, #0xfffffffe // #-2
|
||
8520: 17fffff3 b 84ec <__eucjp_mbtowc+0xdc>
|
||
8524: 52801141 mov w1, #0x8a // #138
|
||
8528: 12800000 mov w0, #0xffffffff // #-1
|
||
852c: b90000c1 str w1, [x6]
|
||
8530: 17ffffef b 84ec <__eucjp_mbtowc+0xdc>
|
||
8534: d503201f nop
|
||
8538: d503201f nop
|
||
853c: d503201f nop
|
||
|
||
0000000000008540 <__jis_mbtowc>:
|
||
8540: d10043ff sub sp, sp, #0x10
|
||
8544: f100003f cmp x1, #0x0
|
||
8548: 910033e5 add x5, sp, #0xc
|
||
854c: 9a8100a1 csel x1, x5, x1, eq // eq = none
|
||
8550: b4000da2 cbz x2, 8704 <__jis_mbtowc+0x1c4>
|
||
8554: b4000e43 cbz x3, 871c <__jis_mbtowc+0x1dc>
|
||
8558: 39400085 ldrb w5, [x4]
|
||
855c: f000000c adrp x12, b000 <pow10.0+0x80>
|
||
8560: f000000b adrp x11, b000 <pow10.0+0x80>
|
||
8564: aa0003ed mov x13, x0
|
||
8568: 911d618c add x12, x12, #0x758
|
||
856c: 911e816b add x11, x11, #0x7a0
|
||
8570: aa0203ef mov x15, x2
|
||
8574: 5280000a mov w10, #0x0 // #0
|
||
8578: d2800009 mov x9, #0x0 // #0
|
||
857c: 38696847 ldrb w7, [x2, x9]
|
||
8580: 8b09004e add x14, x2, x9
|
||
8584: 7100a0ff cmp w7, #0x28
|
||
8588: 54000c60 b.eq 8714 <__jis_mbtowc+0x1d4> // b.none
|
||
858c: 540005a8 b.hi 8640 <__jis_mbtowc+0x100> // b.pmore
|
||
8590: 52800006 mov w6, #0x0 // #0
|
||
8594: 71006cff cmp w7, #0x1b
|
||
8598: 54000080 b.eq 85a8 <__jis_mbtowc+0x68> // b.none
|
||
859c: 52800026 mov w6, #0x1 // #1
|
||
85a0: 710090ff cmp w7, #0x24
|
||
85a4: 540008c1 b.ne 86bc <__jis_mbtowc+0x17c> // b.any
|
||
85a8: 937d7ca0 sbfiz x0, x5, #3, #32
|
||
85ac: 8b25c005 add x5, x0, w5, sxtw
|
||
85b0: 8b050180 add x0, x12, x5
|
||
85b4: 8b050165 add x5, x11, x5
|
||
85b8: 3866c808 ldrb w8, [x0, w6, sxtw]
|
||
85bc: 3866c8a5 ldrb w5, [x5, w6, sxtw]
|
||
85c0: 71000d1f cmp w8, #0x3
|
||
85c4: 540006a0 b.eq 8698 <__jis_mbtowc+0x158> // b.none
|
||
85c8: 540002a8 b.hi 861c <__jis_mbtowc+0xdc> // b.pmore
|
||
85cc: 7100051f cmp w8, #0x1
|
||
85d0: 54000840 b.eq 86d8 <__jis_mbtowc+0x198> // b.none
|
||
85d4: 7100091f cmp w8, #0x2
|
||
85d8: 54000141 b.ne 8600 <__jis_mbtowc+0xc0> // b.any
|
||
85dc: 52800020 mov w0, #0x1 // #1
|
||
85e0: b9000080 str w0, [x4]
|
||
85e4: 39401082 ldrb w2, [x4, #4]
|
||
85e8: 0b000140 add w0, w10, w0
|
||
85ec: 394001c3 ldrb w3, [x14]
|
||
85f0: 0b022062 add w2, w3, w2, lsl #8
|
||
85f4: b9000022 str w2, [x1]
|
||
85f8: 910043ff add sp, sp, #0x10
|
||
85fc: d65f03c0 ret
|
||
8600: 35000788 cbnz w8, 86f0 <__jis_mbtowc+0x1b0>
|
||
8604: b900009f str wzr, [x4]
|
||
8608: 11000540 add w0, w10, #0x1
|
||
860c: 394001e2 ldrb w2, [x15]
|
||
8610: b9000022 str w2, [x1]
|
||
8614: 910043ff add sp, sp, #0x10
|
||
8618: d65f03c0 ret
|
||
861c: 7100111f cmp w8, #0x4
|
||
8620: 54000400 b.eq 86a0 <__jis_mbtowc+0x160> // b.none
|
||
8624: 7100151f cmp w8, #0x5
|
||
8628: 54000641 b.ne 86f0 <__jis_mbtowc+0x1b0> // b.any
|
||
862c: b900009f str wzr, [x4]
|
||
8630: 52800000 mov w0, #0x0 // #0
|
||
8634: b900003f str wzr, [x1]
|
||
8638: 910043ff add sp, sp, #0x10
|
||
863c: d65f03c0 ret
|
||
8640: 52800086 mov w6, #0x4 // #4
|
||
8644: 710108ff cmp w7, #0x42
|
||
8648: 54fffb00 b.eq 85a8 <__jis_mbtowc+0x68> // b.none
|
||
864c: 528000a6 mov w6, #0x5 // #5
|
||
8650: 710128ff cmp w7, #0x4a
|
||
8654: 54fffaa0 b.eq 85a8 <__jis_mbtowc+0x68> // b.none
|
||
8658: 52800066 mov w6, #0x3 // #3
|
||
865c: 710100ff cmp w7, #0x40
|
||
8660: 54fffa40 b.eq 85a8 <__jis_mbtowc+0x68> // b.none
|
||
8664: 510084e0 sub w0, w7, #0x21
|
||
8668: 7101741f cmp w0, #0x5d
|
||
866c: 1a9f97e6 cset w6, hi // hi = pmore
|
||
8670: 11001cc6 add w6, w6, #0x7
|
||
8674: d503201f nop
|
||
8678: 937d7ca0 sbfiz x0, x5, #3, #32
|
||
867c: 8b25c005 add x5, x0, w5, sxtw
|
||
8680: 8b050180 add x0, x12, x5
|
||
8684: 8b050165 add x5, x11, x5
|
||
8688: 3866c808 ldrb w8, [x0, w6, sxtw]
|
||
868c: 3866c8a5 ldrb w5, [x5, w6, sxtw]
|
||
8690: 71000d1f cmp w8, #0x3
|
||
8694: 54fff9a1 b.ne 85c8 <__jis_mbtowc+0x88> // b.any
|
||
8698: 91000529 add x9, x9, #0x1
|
||
869c: 8b09004f add x15, x2, x9
|
||
86a0: 11000549 add w9, w10, #0x1
|
||
86a4: aa0903ea mov x10, x9
|
||
86a8: eb03013f cmp x9, x3
|
||
86ac: 54fff683 b.cc 857c <__jis_mbtowc+0x3c> // b.lo, b.ul, b.last
|
||
86b0: 12800020 mov w0, #0xfffffffe // #-2
|
||
86b4: b9000085 str w5, [x4]
|
||
86b8: 17ffffd0 b 85f8 <__jis_mbtowc+0xb8>
|
||
86bc: 528000c6 mov w6, #0x6 // #6
|
||
86c0: 34fff747 cbz w7, 85a8 <__jis_mbtowc+0x68>
|
||
86c4: 510084e0 sub w0, w7, #0x21
|
||
86c8: 7101741f cmp w0, #0x5d
|
||
86cc: 1a9f97e6 cset w6, hi // hi = pmore
|
||
86d0: 11001cc6 add w6, w6, #0x7
|
||
86d4: 17ffffe9 b 8678 <__jis_mbtowc+0x138>
|
||
86d8: 11000549 add w9, w10, #0x1
|
||
86dc: 39001087 strb w7, [x4, #4]
|
||
86e0: aa0903ea mov x10, x9
|
||
86e4: eb03013f cmp x9, x3
|
||
86e8: 54fff4a3 b.cc 857c <__jis_mbtowc+0x3c> // b.lo, b.ul, b.last
|
||
86ec: 17fffff1 b 86b0 <__jis_mbtowc+0x170>
|
||
86f0: 52801141 mov w1, #0x8a // #138
|
||
86f4: b90001a1 str w1, [x13]
|
||
86f8: 12800000 mov w0, #0xffffffff // #-1
|
||
86fc: 910043ff add sp, sp, #0x10
|
||
8700: d65f03c0 ret
|
||
8704: b900009f str wzr, [x4]
|
||
8708: 52800020 mov w0, #0x1 // #1
|
||
870c: 910043ff add sp, sp, #0x10
|
||
8710: d65f03c0 ret
|
||
8714: 52800046 mov w6, #0x2 // #2
|
||
8718: 17ffffa4 b 85a8 <__jis_mbtowc+0x68>
|
||
871c: 12800020 mov w0, #0xfffffffe // #-2
|
||
8720: 17ffffb6 b 85f8 <__jis_mbtowc+0xb8>
|
||
|
||
0000000000008724 <memchr>:
|
||
8724: b4000682 cbz x2, 87f4 <memchr+0xd0>
|
||
8728: 52808025 mov w5, #0x401 // #1025
|
||
872c: 72a80205 movk w5, #0x4010, lsl #16
|
||
8730: 4e010c20 dup v0.16b, w1
|
||
8734: 927be803 and x3, x0, #0xffffffffffffffe0
|
||
8738: 4e040ca5 dup v5.4s, w5
|
||
873c: f2401009 ands x9, x0, #0x1f
|
||
8740: 9240104a and x10, x2, #0x1f
|
||
8744: 54000200 b.eq 8784 <memchr+0x60> // b.none
|
||
8748: 4cdfa061 ld1 {v1.16b, v2.16b}, [x3], #32
|
||
874c: d1008124 sub x4, x9, #0x20
|
||
8750: ab040042 adds x2, x2, x4
|
||
8754: 6e208c23 cmeq v3.16b, v1.16b, v0.16b
|
||
8758: 6e208c44 cmeq v4.16b, v2.16b, v0.16b
|
||
875c: 4e251c63 and v3.16b, v3.16b, v5.16b
|
||
8760: 4e251c84 and v4.16b, v4.16b, v5.16b
|
||
8764: 4e24bc66 addp v6.16b, v3.16b, v4.16b
|
||
8768: 4e26bcc6 addp v6.16b, v6.16b, v6.16b
|
||
876c: 4e083cc6 mov x6, v6.d[0]
|
||
8770: d37ff924 lsl x4, x9, #1
|
||
8774: 9ac424c6 lsr x6, x6, x4
|
||
8778: 9ac420c6 lsl x6, x6, x4
|
||
877c: 54000229 b.ls 87c0 <memchr+0x9c> // b.plast
|
||
8780: b50002c6 cbnz x6, 87d8 <memchr+0xb4>
|
||
8784: 4cdfa061 ld1 {v1.16b, v2.16b}, [x3], #32
|
||
8788: f1008042 subs x2, x2, #0x20
|
||
878c: 6e208c23 cmeq v3.16b, v1.16b, v0.16b
|
||
8790: 6e208c44 cmeq v4.16b, v2.16b, v0.16b
|
||
8794: 540000a9 b.ls 87a8 <memchr+0x84> // b.plast
|
||
8798: 4ea41c66 orr v6.16b, v3.16b, v4.16b
|
||
879c: 4ee6bcc6 addp v6.2d, v6.2d, v6.2d
|
||
87a0: 4e083cc6 mov x6, v6.d[0]
|
||
87a4: b4ffff06 cbz x6, 8784 <memchr+0x60>
|
||
87a8: 4e251c63 and v3.16b, v3.16b, v5.16b
|
||
87ac: 4e251c84 and v4.16b, v4.16b, v5.16b
|
||
87b0: 4e24bc66 addp v6.16b, v3.16b, v4.16b
|
||
87b4: 4e26bcc6 addp v6.16b, v6.16b, v6.16b
|
||
87b8: 4e083cc6 mov x6, v6.d[0]
|
||
87bc: 540000e8 b.hi 87d8 <memchr+0xb4> // b.pmore
|
||
87c0: 8b090144 add x4, x10, x9
|
||
87c4: 92401084 and x4, x4, #0x1f
|
||
87c8: d1008084 sub x4, x4, #0x20
|
||
87cc: cb0407e4 neg x4, x4, lsl #1
|
||
87d0: 9ac420c6 lsl x6, x6, x4
|
||
87d4: 9ac424c6 lsr x6, x6, x4
|
||
87d8: dac000c6 rbit x6, x6
|
||
87dc: d1008063 sub x3, x3, #0x20
|
||
87e0: f10000df cmp x6, #0x0
|
||
87e4: dac010c6 clz x6, x6
|
||
87e8: 8b460460 add x0, x3, x6, lsr #1
|
||
87ec: 9a8003e0 csel x0, xzr, x0, eq // eq = none
|
||
87f0: d65f03c0 ret
|
||
87f4: d2800000 mov x0, #0x0 // #0
|
||
87f8: d65f03c0 ret
|
||
87fc: d503201f nop
|
||
|
||
0000000000008800 <_realloc_r>:
|
||
8800: a9ba7bfd stp x29, x30, [sp, #-96]!
|
||
8804: 910003fd mov x29, sp
|
||
8808: a9025bf5 stp x21, x22, [sp, #32]
|
||
880c: aa0203f5 mov x21, x2
|
||
8810: b40010e1 cbz x1, 8a2c <_realloc_r+0x22c>
|
||
8814: a90363f7 stp x23, x24, [sp, #48]
|
||
8818: d1004038 sub x24, x1, #0x10
|
||
881c: aa0003f7 mov x23, x0
|
||
8820: a90153f3 stp x19, x20, [sp, #16]
|
||
8824: aa0103f3 mov x19, x1
|
||
8828: 91005eb4 add x20, x21, #0x17
|
||
882c: a9046bf9 stp x25, x26, [sp, #64]
|
||
8830: 97ffed1c bl 3ca0 <__malloc_lock>
|
||
8834: aa1803f9 mov x25, x24
|
||
8838: f9400700 ldr x0, [x24, #8]
|
||
883c: 927ef416 and x22, x0, #0xfffffffffffffffc
|
||
8840: f100ba9f cmp x20, #0x2e
|
||
8844: 54000908 b.hi 8964 <_realloc_r+0x164> // b.pmore
|
||
8848: 52800001 mov w1, #0x0 // #0
|
||
884c: 7100003f cmp w1, #0x0
|
||
8850: d2800414 mov x20, #0x20 // #32
|
||
8854: fa550280 ccmp x20, x21, #0x0, eq // eq = none
|
||
8858: 54000943 b.cc 8980 <_realloc_r+0x180> // b.lo, b.ul, b.last
|
||
885c: eb1402df cmp x22, x20
|
||
8860: 54000b0a b.ge 89c0 <_realloc_r+0x1c0> // b.tcont
|
||
8864: 90000021 adrp x1, c000 <IpcTestNull+0x6e8>
|
||
8868: a90573fb stp x27, x28, [sp, #80]
|
||
886c: 9122003c add x28, x1, #0x880
|
||
8870: 8b160302 add x2, x24, x22
|
||
8874: f9400b83 ldr x3, [x28, #16]
|
||
8878: f9400441 ldr x1, [x2, #8]
|
||
887c: eb02007f cmp x3, x2
|
||
8880: 54000f60 b.eq 8a6c <_realloc_r+0x26c> // b.none
|
||
8884: 927ff823 and x3, x1, #0xfffffffffffffffe
|
||
8888: 8b030043 add x3, x2, x3
|
||
888c: f9400463 ldr x3, [x3, #8]
|
||
8890: 37000c23 tbnz w3, #0, 8a14 <_realloc_r+0x214>
|
||
8894: 927ef421 and x1, x1, #0xfffffffffffffffc
|
||
8898: 8b0102c3 add x3, x22, x1
|
||
889c: eb03029f cmp x20, x3
|
||
88a0: 5400084d b.le 89a8 <_realloc_r+0x1a8>
|
||
88a4: 37000180 tbnz w0, #0, 88d4 <_realloc_r+0xd4>
|
||
88a8: f85f027b ldur x27, [x19, #-16]
|
||
88ac: cb1b031b sub x27, x24, x27
|
||
88b0: f9400760 ldr x0, [x27, #8]
|
||
88b4: 927ef400 and x0, x0, #0xfffffffffffffffc
|
||
88b8: 8b010001 add x1, x0, x1
|
||
88bc: 8b160023 add x3, x1, x22
|
||
88c0: eb03029f cmp x20, x3
|
||
88c4: 540019ad b.le 8bf8 <_realloc_r+0x3f8>
|
||
88c8: 8b0002c3 add x3, x22, x0
|
||
88cc: eb03029f cmp x20, x3
|
||
88d0: 5400152d b.le 8b74 <_realloc_r+0x374>
|
||
88d4: aa1503e1 mov x1, x21
|
||
88d8: aa1703e0 mov x0, x23
|
||
88dc: 97ffe9d9 bl 3040 <_malloc_r>
|
||
88e0: aa0003f5 mov x21, x0
|
||
88e4: b40002c0 cbz x0, 893c <_realloc_r+0x13c>
|
||
88e8: f9400701 ldr x1, [x24, #8]
|
||
88ec: d1004002 sub x2, x0, #0x10
|
||
88f0: 927ff821 and x1, x1, #0xfffffffffffffffe
|
||
88f4: 8b010318 add x24, x24, x1
|
||
88f8: eb02031f cmp x24, x2
|
||
88fc: 54001200 b.eq 8b3c <_realloc_r+0x33c> // b.none
|
||
8900: d10022c2 sub x2, x22, #0x8
|
||
8904: f101205f cmp x2, #0x48
|
||
8908: 54001728 b.hi 8bec <_realloc_r+0x3ec> // b.pmore
|
||
890c: f1009c5f cmp x2, #0x27
|
||
8910: 54001208 b.hi 8b50 <_realloc_r+0x350> // b.pmore
|
||
8914: aa1303e1 mov x1, x19
|
||
8918: f9400022 ldr x2, [x1]
|
||
891c: f9000002 str x2, [x0]
|
||
8920: f9400422 ldr x2, [x1, #8]
|
||
8924: f9000402 str x2, [x0, #8]
|
||
8928: f9400821 ldr x1, [x1, #16]
|
||
892c: f9000801 str x1, [x0, #16]
|
||
8930: aa1303e1 mov x1, x19
|
||
8934: aa1703e0 mov x0, x23
|
||
8938: 97fff796 bl 6790 <_free_r>
|
||
893c: aa1703e0 mov x0, x23
|
||
8940: 97ffecdc bl 3cb0 <__malloc_unlock>
|
||
8944: aa1503e0 mov x0, x21
|
||
8948: a94153f3 ldp x19, x20, [sp, #16]
|
||
894c: a9425bf5 ldp x21, x22, [sp, #32]
|
||
8950: a94363f7 ldp x23, x24, [sp, #48]
|
||
8954: a9446bf9 ldp x25, x26, [sp, #64]
|
||
8958: a94573fb ldp x27, x28, [sp, #80]
|
||
895c: a8c67bfd ldp x29, x30, [sp], #96
|
||
8960: d65f03c0 ret
|
||
8964: 927cee94 and x20, x20, #0xfffffffffffffff0
|
||
8968: b2407be1 mov x1, #0x7fffffff // #2147483647
|
||
896c: eb01029f cmp x20, x1
|
||
8970: 1a9f97e1 cset w1, hi // hi = pmore
|
||
8974: 7100003f cmp w1, #0x0
|
||
8978: fa550280 ccmp x20, x21, #0x0, eq // eq = none
|
||
897c: 54fff702 b.cs 885c <_realloc_r+0x5c> // b.hs, b.nlast
|
||
8980: 52800180 mov w0, #0xc // #12
|
||
8984: b90002e0 str w0, [x23]
|
||
8988: d2800015 mov x21, #0x0 // #0
|
||
898c: aa1503e0 mov x0, x21
|
||
8990: a94153f3 ldp x19, x20, [sp, #16]
|
||
8994: a9425bf5 ldp x21, x22, [sp, #32]
|
||
8998: a94363f7 ldp x23, x24, [sp, #48]
|
||
899c: a9446bf9 ldp x25, x26, [sp, #64]
|
||
89a0: a8c67bfd ldp x29, x30, [sp], #96
|
||
89a4: d65f03c0 ret
|
||
89a8: a9410041 ldp x1, x0, [x2, #16]
|
||
89ac: aa0303f6 mov x22, x3
|
||
89b0: a94573fb ldp x27, x28, [sp, #80]
|
||
89b4: f9000c20 str x0, [x1, #24]
|
||
89b8: f9000801 str x1, [x0, #16]
|
||
89bc: d503201f nop
|
||
89c0: f9400721 ldr x1, [x25, #8]
|
||
89c4: cb1402c0 sub x0, x22, x20
|
||
89c8: 8b160322 add x2, x25, x22
|
||
89cc: 92400021 and x1, x1, #0x1
|
||
89d0: f1007c1f cmp x0, #0x1f
|
||
89d4: 54000348 b.hi 8a3c <_realloc_r+0x23c> // b.pmore
|
||
89d8: aa0102c1 orr x1, x22, x1
|
||
89dc: f9000721 str x1, [x25, #8]
|
||
89e0: f9400440 ldr x0, [x2, #8]
|
||
89e4: b2400000 orr x0, x0, #0x1
|
||
89e8: f9000440 str x0, [x2, #8]
|
||
89ec: aa1703e0 mov x0, x23
|
||
89f0: aa1303f5 mov x21, x19
|
||
89f4: 97ffecaf bl 3cb0 <__malloc_unlock>
|
||
89f8: aa1503e0 mov x0, x21
|
||
89fc: a94153f3 ldp x19, x20, [sp, #16]
|
||
8a00: a9425bf5 ldp x21, x22, [sp, #32]
|
||
8a04: a94363f7 ldp x23, x24, [sp, #48]
|
||
8a08: a9446bf9 ldp x25, x26, [sp, #64]
|
||
8a0c: a8c67bfd ldp x29, x30, [sp], #96
|
||
8a10: d65f03c0 ret
|
||
8a14: 3707f600 tbnz w0, #0, 88d4 <_realloc_r+0xd4>
|
||
8a18: f85f027b ldur x27, [x19, #-16]
|
||
8a1c: cb1b031b sub x27, x24, x27
|
||
8a20: f9400760 ldr x0, [x27, #8]
|
||
8a24: 927ef400 and x0, x0, #0xfffffffffffffffc
|
||
8a28: 17ffffa8 b 88c8 <_realloc_r+0xc8>
|
||
8a2c: a9425bf5 ldp x21, x22, [sp, #32]
|
||
8a30: aa0203e1 mov x1, x2
|
||
8a34: a8c67bfd ldp x29, x30, [sp], #96
|
||
8a38: 17ffe982 b 3040 <_malloc_r>
|
||
8a3c: 8b140324 add x4, x25, x20
|
||
8a40: aa010281 orr x1, x20, x1
|
||
8a44: f9000721 str x1, [x25, #8]
|
||
8a48: b2400003 orr x3, x0, #0x1
|
||
8a4c: 91004081 add x1, x4, #0x10
|
||
8a50: aa1703e0 mov x0, x23
|
||
8a54: f9000483 str x3, [x4, #8]
|
||
8a58: f9400443 ldr x3, [x2, #8]
|
||
8a5c: b2400063 orr x3, x3, #0x1
|
||
8a60: f9000443 str x3, [x2, #8]
|
||
8a64: 97fff74b bl 6790 <_free_r>
|
||
8a68: 17ffffe1 b 89ec <_realloc_r+0x1ec>
|
||
8a6c: 927ef421 and x1, x1, #0xfffffffffffffffc
|
||
8a70: 91008283 add x3, x20, #0x20
|
||
8a74: 8b0102c2 add x2, x22, x1
|
||
8a78: eb03005f cmp x2, x3
|
||
8a7c: 54000eaa b.ge 8c50 <_realloc_r+0x450> // b.tcont
|
||
8a80: 3707f2a0 tbnz w0, #0, 88d4 <_realloc_r+0xd4>
|
||
8a84: f85f027b ldur x27, [x19, #-16]
|
||
8a88: cb1b031b sub x27, x24, x27
|
||
8a8c: f9400760 ldr x0, [x27, #8]
|
||
8a90: 927ef400 and x0, x0, #0xfffffffffffffffc
|
||
8a94: 8b010001 add x1, x0, x1
|
||
8a98: 8b16003a add x26, x1, x22
|
||
8a9c: eb1a007f cmp x3, x26
|
||
8aa0: 54fff14c b.gt 88c8 <_realloc_r+0xc8>
|
||
8aa4: aa1b03f5 mov x21, x27
|
||
8aa8: d10022c2 sub x2, x22, #0x8
|
||
8aac: f9400f60 ldr x0, [x27, #24]
|
||
8ab0: f8410ea1 ldr x1, [x21, #16]!
|
||
8ab4: f9000c20 str x0, [x1, #24]
|
||
8ab8: f9000801 str x1, [x0, #16]
|
||
8abc: f101205f cmp x2, #0x48
|
||
8ac0: 54001128 b.hi 8ce4 <_realloc_r+0x4e4> // b.pmore
|
||
8ac4: aa1503e0 mov x0, x21
|
||
8ac8: f1009c5f cmp x2, #0x27
|
||
8acc: 54000129 b.ls 8af0 <_realloc_r+0x2f0> // b.plast
|
||
8ad0: f9400260 ldr x0, [x19]
|
||
8ad4: f9000b60 str x0, [x27, #16]
|
||
8ad8: f9400660 ldr x0, [x19, #8]
|
||
8adc: f9000f60 str x0, [x27, #24]
|
||
8ae0: f100dc5f cmp x2, #0x37
|
||
8ae4: 54001088 b.hi 8cf4 <_realloc_r+0x4f4> // b.pmore
|
||
8ae8: 91004273 add x19, x19, #0x10
|
||
8aec: 91008360 add x0, x27, #0x20
|
||
8af0: f9400261 ldr x1, [x19]
|
||
8af4: f9000001 str x1, [x0]
|
||
8af8: f9400661 ldr x1, [x19, #8]
|
||
8afc: f9000401 str x1, [x0, #8]
|
||
8b00: f9400a61 ldr x1, [x19, #16]
|
||
8b04: f9000801 str x1, [x0, #16]
|
||
8b08: 8b140362 add x2, x27, x20
|
||
8b0c: cb140341 sub x1, x26, x20
|
||
8b10: f9000b82 str x2, [x28, #16]
|
||
8b14: b2400021 orr x1, x1, #0x1
|
||
8b18: aa1703e0 mov x0, x23
|
||
8b1c: f9000441 str x1, [x2, #8]
|
||
8b20: f9400761 ldr x1, [x27, #8]
|
||
8b24: 92400021 and x1, x1, #0x1
|
||
8b28: aa140034 orr x20, x1, x20
|
||
8b2c: f9000774 str x20, [x27, #8]
|
||
8b30: 97ffec60 bl 3cb0 <__malloc_unlock>
|
||
8b34: a94573fb ldp x27, x28, [sp, #80]
|
||
8b38: 17ffffb0 b 89f8 <_realloc_r+0x1f8>
|
||
8b3c: f9400700 ldr x0, [x24, #8]
|
||
8b40: a94573fb ldp x27, x28, [sp, #80]
|
||
8b44: 927ef400 and x0, x0, #0xfffffffffffffffc
|
||
8b48: 8b0002d6 add x22, x22, x0
|
||
8b4c: 17ffff9d b 89c0 <_realloc_r+0x1c0>
|
||
8b50: f9400260 ldr x0, [x19]
|
||
8b54: f90002a0 str x0, [x21]
|
||
8b58: f9400660 ldr x0, [x19, #8]
|
||
8b5c: f90006a0 str x0, [x21, #8]
|
||
8b60: f100dc5f cmp x2, #0x37
|
||
8b64: 54000648 b.hi 8c2c <_realloc_r+0x42c> // b.pmore
|
||
8b68: 91004261 add x1, x19, #0x10
|
||
8b6c: 910042a0 add x0, x21, #0x10
|
||
8b70: 17ffff6a b 8918 <_realloc_r+0x118>
|
||
8b74: aa1b03e0 mov x0, x27
|
||
8b78: d10022c2 sub x2, x22, #0x8
|
||
8b7c: f8410c04 ldr x4, [x0, #16]!
|
||
8b80: f9400f61 ldr x1, [x27, #24]
|
||
8b84: f9000c81 str x1, [x4, #24]
|
||
8b88: f9000824 str x4, [x1, #16]
|
||
8b8c: f101205f cmp x2, #0x48
|
||
8b90: 54000408 b.hi 8c10 <_realloc_r+0x410> // b.pmore
|
||
8b94: aa0003e1 mov x1, x0
|
||
8b98: f1009c5f cmp x2, #0x27
|
||
8b9c: 54000129 b.ls 8bc0 <_realloc_r+0x3c0> // b.plast
|
||
8ba0: f9400261 ldr x1, [x19]
|
||
8ba4: f9000b61 str x1, [x27, #16]
|
||
8ba8: f9400661 ldr x1, [x19, #8]
|
||
8bac: f9000f61 str x1, [x27, #24]
|
||
8bb0: f100dc5f cmp x2, #0x37
|
||
8bb4: 540006a8 b.hi 8c88 <_realloc_r+0x488> // b.pmore
|
||
8bb8: 91004273 add x19, x19, #0x10
|
||
8bbc: 91008361 add x1, x27, #0x20
|
||
8bc0: f9400262 ldr x2, [x19]
|
||
8bc4: aa1b03f9 mov x25, x27
|
||
8bc8: a94573fb ldp x27, x28, [sp, #80]
|
||
8bcc: f9000022 str x2, [x1]
|
||
8bd0: aa0303f6 mov x22, x3
|
||
8bd4: f9400662 ldr x2, [x19, #8]
|
||
8bd8: f9000422 str x2, [x1, #8]
|
||
8bdc: f9400a62 ldr x2, [x19, #16]
|
||
8be0: aa0003f3 mov x19, x0
|
||
8be4: f9000822 str x2, [x1, #16]
|
||
8be8: 17ffff76 b 89c0 <_realloc_r+0x1c0>
|
||
8bec: aa1303e1 mov x1, x19
|
||
8bf0: 97ffeb84 bl 3a00 <memmove>
|
||
8bf4: 17ffff4f b 8930 <_realloc_r+0x130>
|
||
8bf8: a9410444 ldp x4, x1, [x2, #16]
|
||
8bfc: f9000c81 str x1, [x4, #24]
|
||
8c00: aa1b03e0 mov x0, x27
|
||
8c04: d10022c2 sub x2, x22, #0x8
|
||
8c08: f9000824 str x4, [x1, #16]
|
||
8c0c: 17ffffdc b 8b7c <_realloc_r+0x37c>
|
||
8c10: aa1303e1 mov x1, x19
|
||
8c14: aa0303f6 mov x22, x3
|
||
8c18: aa1b03f9 mov x25, x27
|
||
8c1c: aa0003f3 mov x19, x0
|
||
8c20: 97ffeb78 bl 3a00 <memmove>
|
||
8c24: a94573fb ldp x27, x28, [sp, #80]
|
||
8c28: 17ffff66 b 89c0 <_realloc_r+0x1c0>
|
||
8c2c: f9400a60 ldr x0, [x19, #16]
|
||
8c30: f9000aa0 str x0, [x21, #16]
|
||
8c34: f9400e60 ldr x0, [x19, #24]
|
||
8c38: f9000ea0 str x0, [x21, #24]
|
||
8c3c: f101205f cmp x2, #0x48
|
||
8c40: 54000360 b.eq 8cac <_realloc_r+0x4ac> // b.none
|
||
8c44: 91008261 add x1, x19, #0x20
|
||
8c48: 910082a0 add x0, x21, #0x20
|
||
8c4c: 17ffff33 b 8918 <_realloc_r+0x118>
|
||
8c50: 8b140303 add x3, x24, x20
|
||
8c54: cb140041 sub x1, x2, x20
|
||
8c58: f9000b83 str x3, [x28, #16]
|
||
8c5c: b2400021 orr x1, x1, #0x1
|
||
8c60: aa1703e0 mov x0, x23
|
||
8c64: aa1303f5 mov x21, x19
|
||
8c68: f9000461 str x1, [x3, #8]
|
||
8c6c: f9400701 ldr x1, [x24, #8]
|
||
8c70: 92400021 and x1, x1, #0x1
|
||
8c74: aa140034 orr x20, x1, x20
|
||
8c78: f9000714 str x20, [x24, #8]
|
||
8c7c: 97ffec0d bl 3cb0 <__malloc_unlock>
|
||
8c80: a94573fb ldp x27, x28, [sp, #80]
|
||
8c84: 17ffff5d b 89f8 <_realloc_r+0x1f8>
|
||
8c88: f9400a61 ldr x1, [x19, #16]
|
||
8c8c: f9001361 str x1, [x27, #32]
|
||
8c90: f9400e61 ldr x1, [x19, #24]
|
||
8c94: f9001761 str x1, [x27, #40]
|
||
8c98: f101205f cmp x2, #0x48
|
||
8c9c: 54000160 b.eq 8cc8 <_realloc_r+0x4c8> // b.none
|
||
8ca0: 91008273 add x19, x19, #0x20
|
||
8ca4: 9100c361 add x1, x27, #0x30
|
||
8ca8: 17ffffc6 b 8bc0 <_realloc_r+0x3c0>
|
||
8cac: f9401260 ldr x0, [x19, #32]
|
||
8cb0: f90012a0 str x0, [x21, #32]
|
||
8cb4: 9100c261 add x1, x19, #0x30
|
||
8cb8: 9100c2a0 add x0, x21, #0x30
|
||
8cbc: f9401662 ldr x2, [x19, #40]
|
||
8cc0: f90016a2 str x2, [x21, #40]
|
||
8cc4: 17ffff15 b 8918 <_realloc_r+0x118>
|
||
8cc8: f9401261 ldr x1, [x19, #32]
|
||
8ccc: f9001b61 str x1, [x27, #48]
|
||
8cd0: 9100c273 add x19, x19, #0x30
|
||
8cd4: 91010361 add x1, x27, #0x40
|
||
8cd8: f85f8262 ldur x2, [x19, #-8]
|
||
8cdc: f9001f62 str x2, [x27, #56]
|
||
8ce0: 17ffffb8 b 8bc0 <_realloc_r+0x3c0>
|
||
8ce4: aa1303e1 mov x1, x19
|
||
8ce8: aa1503e0 mov x0, x21
|
||
8cec: 97ffeb45 bl 3a00 <memmove>
|
||
8cf0: 17ffff86 b 8b08 <_realloc_r+0x308>
|
||
8cf4: f9400a60 ldr x0, [x19, #16]
|
||
8cf8: f9001360 str x0, [x27, #32]
|
||
8cfc: f9400e60 ldr x0, [x19, #24]
|
||
8d00: f9001760 str x0, [x27, #40]
|
||
8d04: f101205f cmp x2, #0x48
|
||
8d08: 54000080 b.eq 8d18 <_realloc_r+0x518> // b.none
|
||
8d0c: 91008273 add x19, x19, #0x20
|
||
8d10: 9100c360 add x0, x27, #0x30
|
||
8d14: 17ffff77 b 8af0 <_realloc_r+0x2f0>
|
||
8d18: f9401260 ldr x0, [x19, #32]
|
||
8d1c: f9001b60 str x0, [x27, #48]
|
||
8d20: 9100c273 add x19, x19, #0x30
|
||
8d24: 91010360 add x0, x27, #0x40
|
||
8d28: f85f8261 ldur x1, [x19, #-8]
|
||
8d2c: f9001f61 str x1, [x27, #56]
|
||
8d30: 17ffff70 b 8af0 <_realloc_r+0x2f0>
|
||
8d34: d503201f nop
|
||
8d38: d503201f nop
|
||
8d3c: d503201f nop
|
||
|
||
0000000000008d40 <cleanup_glue>:
|
||
8d40: a9bc7bfd stp x29, x30, [sp, #-64]!
|
||
8d44: 910003fd mov x29, sp
|
||
8d48: a9025bf5 stp x21, x22, [sp, #32]
|
||
8d4c: f9400035 ldr x21, [x1]
|
||
8d50: a90153f3 stp x19, x20, [sp, #16]
|
||
8d54: aa0103f3 mov x19, x1
|
||
8d58: aa0003f4 mov x20, x0
|
||
8d5c: b4000275 cbz x21, 8da8 <cleanup_glue+0x68>
|
||
8d60: f94002b6 ldr x22, [x21]
|
||
8d64: b40001d6 cbz x22, 8d9c <cleanup_glue+0x5c>
|
||
8d68: f9001bf7 str x23, [sp, #48]
|
||
8d6c: f94002d7 ldr x23, [x22]
|
||
8d70: b40000f7 cbz x23, 8d8c <cleanup_glue+0x4c>
|
||
8d74: f94002e1 ldr x1, [x23]
|
||
8d78: b4000041 cbz x1, 8d80 <cleanup_glue+0x40>
|
||
8d7c: 97fffff1 bl 8d40 <cleanup_glue>
|
||
8d80: aa1703e1 mov x1, x23
|
||
8d84: aa1403e0 mov x0, x20
|
||
8d88: 97fff682 bl 6790 <_free_r>
|
||
8d8c: aa1603e1 mov x1, x22
|
||
8d90: aa1403e0 mov x0, x20
|
||
8d94: 97fff67f bl 6790 <_free_r>
|
||
8d98: f9401bf7 ldr x23, [sp, #48]
|
||
8d9c: aa1503e1 mov x1, x21
|
||
8da0: aa1403e0 mov x0, x20
|
||
8da4: 97fff67b bl 6790 <_free_r>
|
||
8da8: aa1303e1 mov x1, x19
|
||
8dac: aa1403e0 mov x0, x20
|
||
8db0: a94153f3 ldp x19, x20, [sp, #16]
|
||
8db4: a9425bf5 ldp x21, x22, [sp, #32]
|
||
8db8: a8c47bfd ldp x29, x30, [sp], #64
|
||
8dbc: 17fff675 b 6790 <_free_r>
|
||
|
||
0000000000008dc0 <_reclaim_reent>:
|
||
8dc0: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
8dc4: 90000021 adrp x1, c000 <IpcTestNull+0x6e8>
|
||
8dc8: 910003fd mov x29, sp
|
||
8dcc: a90153f3 stp x19, x20, [sp, #16]
|
||
8dd0: aa0003f4 mov x20, x0
|
||
8dd4: f9409820 ldr x0, [x1, #304]
|
||
8dd8: eb14001f cmp x0, x20
|
||
8ddc: 54000500 b.eq 8e7c <_reclaim_reent+0xbc> // b.none
|
||
8de0: f9403e81 ldr x1, [x20, #120]
|
||
8de4: f90013f5 str x21, [sp, #32]
|
||
8de8: b40001e1 cbz x1, 8e24 <_reclaim_reent+0x64>
|
||
8dec: d2800015 mov x21, #0x0 // #0
|
||
8df0: f8756833 ldr x19, [x1, x21]
|
||
8df4: b40000f3 cbz x19, 8e10 <_reclaim_reent+0x50>
|
||
8df8: aa1303e1 mov x1, x19
|
||
8dfc: aa1403e0 mov x0, x20
|
||
8e00: f9400273 ldr x19, [x19]
|
||
8e04: 97fff663 bl 6790 <_free_r>
|
||
8e08: b5ffff93 cbnz x19, 8df8 <_reclaim_reent+0x38>
|
||
8e0c: f9403e81 ldr x1, [x20, #120]
|
||
8e10: 910022b5 add x21, x21, #0x8
|
||
8e14: f10802bf cmp x21, #0x200
|
||
8e18: 54fffec1 b.ne 8df0 <_reclaim_reent+0x30> // b.any
|
||
8e1c: aa1403e0 mov x0, x20
|
||
8e20: 97fff65c bl 6790 <_free_r>
|
||
8e24: f9403281 ldr x1, [x20, #96]
|
||
8e28: b4000061 cbz x1, 8e34 <_reclaim_reent+0x74>
|
||
8e2c: aa1403e0 mov x0, x20
|
||
8e30: 97fff658 bl 6790 <_free_r>
|
||
8e34: f940fe93 ldr x19, [x20, #504]
|
||
8e38: b4000153 cbz x19, 8e60 <_reclaim_reent+0xa0>
|
||
8e3c: 91080295 add x21, x20, #0x200
|
||
8e40: eb15027f cmp x19, x21
|
||
8e44: 540000e0 b.eq 8e60 <_reclaim_reent+0xa0> // b.none
|
||
8e48: aa1303e1 mov x1, x19
|
||
8e4c: aa1403e0 mov x0, x20
|
||
8e50: f9400273 ldr x19, [x19]
|
||
8e54: 97fff64f bl 6790 <_free_r>
|
||
8e58: eb1302bf cmp x21, x19
|
||
8e5c: 54ffff61 b.ne 8e48 <_reclaim_reent+0x88> // b.any
|
||
8e60: f9404681 ldr x1, [x20, #136]
|
||
8e64: b4000061 cbz x1, 8e70 <_reclaim_reent+0xb0>
|
||
8e68: aa1403e0 mov x0, x20
|
||
8e6c: 97fff649 bl 6790 <_free_r>
|
||
8e70: b9405280 ldr w0, [x20, #80]
|
||
8e74: 350000a0 cbnz w0, 8e88 <_reclaim_reent+0xc8>
|
||
8e78: f94013f5 ldr x21, [sp, #32]
|
||
8e7c: a94153f3 ldp x19, x20, [sp, #16]
|
||
8e80: a8c37bfd ldp x29, x30, [sp], #48
|
||
8e84: d65f03c0 ret
|
||
8e88: f9402e81 ldr x1, [x20, #88]
|
||
8e8c: aa1403e0 mov x0, x20
|
||
8e90: d63f0020 blr x1
|
||
8e94: f9429293 ldr x19, [x20, #1312]
|
||
8e98: b4ffff13 cbz x19, 8e78 <_reclaim_reent+0xb8>
|
||
8e9c: f9400261 ldr x1, [x19]
|
||
8ea0: b4000061 cbz x1, 8eac <_reclaim_reent+0xec>
|
||
8ea4: aa1403e0 mov x0, x20
|
||
8ea8: 97ffffa6 bl 8d40 <cleanup_glue>
|
||
8eac: aa1303e1 mov x1, x19
|
||
8eb0: aa1403e0 mov x0, x20
|
||
8eb4: a94153f3 ldp x19, x20, [sp, #16]
|
||
8eb8: f94013f5 ldr x21, [sp, #32]
|
||
8ebc: a8c37bfd ldp x29, x30, [sp], #48
|
||
8ec0: 17fff634 b 6790 <_free_r>
|
||
8ec4: d503201f nop
|
||
8ec8: d503201f nop
|
||
8ecc: d503201f nop
|
||
|
||
0000000000008ed0 <_init_signal_r>:
|
||
8ed0: f9428c01 ldr x1, [x0, #1304]
|
||
8ed4: b4000061 cbz x1, 8ee0 <_init_signal_r+0x10>
|
||
8ed8: 52800000 mov w0, #0x0 // #0
|
||
8edc: d65f03c0 ret
|
||
8ee0: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
8ee4: d2802001 mov x1, #0x100 // #256
|
||
8ee8: 910003fd mov x29, sp
|
||
8eec: f9000bf3 str x19, [sp, #16]
|
||
8ef0: aa0003f3 mov x19, x0
|
||
8ef4: 97ffe853 bl 3040 <_malloc_r>
|
||
8ef8: f9028e60 str x0, [x19, #1304]
|
||
8efc: b4000140 cbz x0, 8f24 <_init_signal_r+0x54>
|
||
8f00: 91040001 add x1, x0, #0x100
|
||
8f04: d503201f nop
|
||
8f08: f800841f str xzr, [x0], #8
|
||
8f0c: eb01001f cmp x0, x1
|
||
8f10: 54ffffc1 b.ne 8f08 <_init_signal_r+0x38> // b.any
|
||
8f14: 52800000 mov w0, #0x0 // #0
|
||
8f18: f9400bf3 ldr x19, [sp, #16]
|
||
8f1c: a8c27bfd ldp x29, x30, [sp], #32
|
||
8f20: d65f03c0 ret
|
||
8f24: 12800000 mov w0, #0xffffffff // #-1
|
||
8f28: 17fffffc b 8f18 <_init_signal_r+0x48>
|
||
8f2c: d503201f nop
|
||
|
||
0000000000008f30 <_signal_r>:
|
||
8f30: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
8f34: 910003fd mov x29, sp
|
||
8f38: a90153f3 stp x19, x20, [sp, #16]
|
||
8f3c: 93407c33 sxtw x19, w1
|
||
8f40: aa0003f4 mov x20, x0
|
||
8f44: 71007e7f cmp w19, #0x1f
|
||
8f48: 54000108 b.hi 8f68 <_signal_r+0x38> // b.pmore
|
||
8f4c: f9428c04 ldr x4, [x0, #1304]
|
||
8f50: b4000184 cbz x4, 8f80 <_signal_r+0x50>
|
||
8f54: f8737880 ldr x0, [x4, x19, lsl #3]
|
||
8f58: f8337882 str x2, [x4, x19, lsl #3]
|
||
8f5c: a94153f3 ldp x19, x20, [sp, #16]
|
||
8f60: a8c37bfd ldp x29, x30, [sp], #48
|
||
8f64: d65f03c0 ret
|
||
8f68: 528002c1 mov w1, #0x16 // #22
|
||
8f6c: b9000281 str w1, [x20]
|
||
8f70: 92800000 mov x0, #0xffffffffffffffff // #-1
|
||
8f74: a94153f3 ldp x19, x20, [sp, #16]
|
||
8f78: a8c37bfd ldp x29, x30, [sp], #48
|
||
8f7c: d65f03c0 ret
|
||
8f80: d2802001 mov x1, #0x100 // #256
|
||
8f84: f90017e2 str x2, [sp, #40]
|
||
8f88: 97ffe82e bl 3040 <_malloc_r>
|
||
8f8c: f9028e80 str x0, [x20, #1304]
|
||
8f90: aa0003e4 mov x4, x0
|
||
8f94: b4000120 cbz x0, 8fb8 <_signal_r+0x88>
|
||
8f98: f94017e2 ldr x2, [sp, #40]
|
||
8f9c: aa0003e3 mov x3, x0
|
||
8fa0: 91040001 add x1, x0, #0x100
|
||
8fa4: d503201f nop
|
||
8fa8: f800847f str xzr, [x3], #8
|
||
8fac: eb03003f cmp x1, x3
|
||
8fb0: 54ffffc1 b.ne 8fa8 <_signal_r+0x78> // b.any
|
||
8fb4: 17ffffe8 b 8f54 <_signal_r+0x24>
|
||
8fb8: 92800000 mov x0, #0xffffffffffffffff // #-1
|
||
8fbc: 17ffffe8 b 8f5c <_signal_r+0x2c>
|
||
|
||
0000000000008fc0 <_raise_r>:
|
||
8fc0: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
8fc4: 910003fd mov x29, sp
|
||
8fc8: a90153f3 stp x19, x20, [sp, #16]
|
||
8fcc: aa0003f4 mov x20, x0
|
||
8fd0: 71007c3f cmp w1, #0x1f
|
||
8fd4: 54000488 b.hi 9064 <_raise_r+0xa4> // b.pmore
|
||
8fd8: f9428c00 ldr x0, [x0, #1304]
|
||
8fdc: 2a0103f3 mov w19, w1
|
||
8fe0: b40001e0 cbz x0, 901c <_raise_r+0x5c>
|
||
8fe4: 93407c22 sxtw x2, w1
|
||
8fe8: f8627801 ldr x1, [x0, x2, lsl #3]
|
||
8fec: b4000181 cbz x1, 901c <_raise_r+0x5c>
|
||
8ff0: f100043f cmp x1, #0x1
|
||
8ff4: 54000300 b.eq 9054 <_raise_r+0x94> // b.none
|
||
8ff8: b100043f cmn x1, #0x1
|
||
8ffc: 54000200 b.eq 903c <_raise_r+0x7c> // b.none
|
||
9000: f822781f str xzr, [x0, x2, lsl #3]
|
||
9004: 2a1303e0 mov w0, w19
|
||
9008: d63f0020 blr x1
|
||
900c: 52800000 mov w0, #0x0 // #0
|
||
9010: a94153f3 ldp x19, x20, [sp, #16]
|
||
9014: a8c27bfd ldp x29, x30, [sp], #32
|
||
9018: d65f03c0 ret
|
||
901c: aa1403e0 mov x0, x20
|
||
9020: 940000fc bl 9410 <_getpid_r>
|
||
9024: 2a1303e2 mov w2, w19
|
||
9028: 2a0003e1 mov w1, w0
|
||
902c: aa1403e0 mov x0, x20
|
||
9030: a94153f3 ldp x19, x20, [sp, #16]
|
||
9034: a8c27bfd ldp x29, x30, [sp], #32
|
||
9038: 140000e2 b 93c0 <_kill_r>
|
||
903c: 528002c1 mov w1, #0x16 // #22
|
||
9040: b9000281 str w1, [x20]
|
||
9044: 52800020 mov w0, #0x1 // #1
|
||
9048: a94153f3 ldp x19, x20, [sp, #16]
|
||
904c: a8c27bfd ldp x29, x30, [sp], #32
|
||
9050: d65f03c0 ret
|
||
9054: 52800000 mov w0, #0x0 // #0
|
||
9058: a94153f3 ldp x19, x20, [sp, #16]
|
||
905c: a8c27bfd ldp x29, x30, [sp], #32
|
||
9060: d65f03c0 ret
|
||
9064: 528002c1 mov w1, #0x16 // #22
|
||
9068: 12800000 mov w0, #0xffffffff // #-1
|
||
906c: b9000281 str w1, [x20]
|
||
9070: 17ffffe8 b 9010 <_raise_r+0x50>
|
||
9074: d503201f nop
|
||
9078: d503201f nop
|
||
907c: d503201f nop
|
||
|
||
0000000000009080 <__sigtramp_r>:
|
||
9080: 71007c3f cmp w1, #0x1f
|
||
9084: 540005a8 b.hi 9138 <__sigtramp_r+0xb8> // b.pmore
|
||
9088: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
908c: 910003fd mov x29, sp
|
||
9090: f9428c03 ldr x3, [x0, #1304]
|
||
9094: a90153f3 stp x19, x20, [sp, #16]
|
||
9098: 2a0103f3 mov w19, w1
|
||
909c: aa0003f4 mov x20, x0
|
||
90a0: b4000263 cbz x3, 90ec <__sigtramp_r+0x6c>
|
||
90a4: f873d861 ldr x1, [x3, w19, sxtw #3]
|
||
90a8: 8b33cc63 add x3, x3, w19, sxtw #3
|
||
90ac: b4000181 cbz x1, 90dc <__sigtramp_r+0x5c>
|
||
90b0: b100043f cmn x1, #0x1
|
||
90b4: 540003a0 b.eq 9128 <__sigtramp_r+0xa8> // b.none
|
||
90b8: f100043f cmp x1, #0x1
|
||
90bc: 540002e0 b.eq 9118 <__sigtramp_r+0x98> // b.none
|
||
90c0: f900007f str xzr, [x3]
|
||
90c4: 2a1303e0 mov w0, w19
|
||
90c8: d63f0020 blr x1
|
||
90cc: 52800000 mov w0, #0x0 // #0
|
||
90d0: a94153f3 ldp x19, x20, [sp, #16]
|
||
90d4: a8c27bfd ldp x29, x30, [sp], #32
|
||
90d8: d65f03c0 ret
|
||
90dc: 52800020 mov w0, #0x1 // #1
|
||
90e0: a94153f3 ldp x19, x20, [sp, #16]
|
||
90e4: a8c27bfd ldp x29, x30, [sp], #32
|
||
90e8: d65f03c0 ret
|
||
90ec: d2802001 mov x1, #0x100 // #256
|
||
90f0: 97ffe7d4 bl 3040 <_malloc_r>
|
||
90f4: f9028e80 str x0, [x20, #1304]
|
||
90f8: aa0003e3 mov x3, x0
|
||
90fc: b40001a0 cbz x0, 9130 <__sigtramp_r+0xb0>
|
||
9100: aa0003e2 mov x2, x0
|
||
9104: 91040000 add x0, x0, #0x100
|
||
9108: f800845f str xzr, [x2], #8
|
||
910c: eb00005f cmp x2, x0
|
||
9110: 54ffffc1 b.ne 9108 <__sigtramp_r+0x88> // b.any
|
||
9114: 17ffffe4 b 90a4 <__sigtramp_r+0x24>
|
||
9118: 52800060 mov w0, #0x3 // #3
|
||
911c: a94153f3 ldp x19, x20, [sp, #16]
|
||
9120: a8c27bfd ldp x29, x30, [sp], #32
|
||
9124: d65f03c0 ret
|
||
9128: 52800040 mov w0, #0x2 // #2
|
||
912c: 17ffffe9 b 90d0 <__sigtramp_r+0x50>
|
||
9130: 12800000 mov w0, #0xffffffff // #-1
|
||
9134: 17ffffe7 b 90d0 <__sigtramp_r+0x50>
|
||
9138: 12800000 mov w0, #0xffffffff // #-1
|
||
913c: d65f03c0 ret
|
||
|
||
0000000000009140 <raise>:
|
||
9140: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
9144: f0000001 adrp x1, c000 <IpcTestNull+0x6e8>
|
||
9148: 910003fd mov x29, sp
|
||
914c: a90153f3 stp x19, x20, [sp, #16]
|
||
9150: f9409834 ldr x20, [x1, #304]
|
||
9154: 71007c1f cmp w0, #0x1f
|
||
9158: 54000468 b.hi 91e4 <raise+0xa4> // b.pmore
|
||
915c: f9428e82 ldr x2, [x20, #1304]
|
||
9160: 2a0003f3 mov w19, w0
|
||
9164: b40001c2 cbz x2, 919c <raise+0x5c>
|
||
9168: 93407c03 sxtw x3, w0
|
||
916c: f8637841 ldr x1, [x2, x3, lsl #3]
|
||
9170: b4000161 cbz x1, 919c <raise+0x5c>
|
||
9174: f100043f cmp x1, #0x1
|
||
9178: 540002e0 b.eq 91d4 <raise+0x94> // b.none
|
||
917c: b100043f cmn x1, #0x1
|
||
9180: 540001e0 b.eq 91bc <raise+0x7c> // b.none
|
||
9184: f823785f str xzr, [x2, x3, lsl #3]
|
||
9188: d63f0020 blr x1
|
||
918c: 52800000 mov w0, #0x0 // #0
|
||
9190: a94153f3 ldp x19, x20, [sp, #16]
|
||
9194: a8c27bfd ldp x29, x30, [sp], #32
|
||
9198: d65f03c0 ret
|
||
919c: aa1403e0 mov x0, x20
|
||
91a0: 9400009c bl 9410 <_getpid_r>
|
||
91a4: 2a1303e2 mov w2, w19
|
||
91a8: 2a0003e1 mov w1, w0
|
||
91ac: aa1403e0 mov x0, x20
|
||
91b0: a94153f3 ldp x19, x20, [sp, #16]
|
||
91b4: a8c27bfd ldp x29, x30, [sp], #32
|
||
91b8: 14000082 b 93c0 <_kill_r>
|
||
91bc: 528002c1 mov w1, #0x16 // #22
|
||
91c0: b9000281 str w1, [x20]
|
||
91c4: 52800020 mov w0, #0x1 // #1
|
||
91c8: a94153f3 ldp x19, x20, [sp, #16]
|
||
91cc: a8c27bfd ldp x29, x30, [sp], #32
|
||
91d0: d65f03c0 ret
|
||
91d4: 52800000 mov w0, #0x0 // #0
|
||
91d8: a94153f3 ldp x19, x20, [sp, #16]
|
||
91dc: a8c27bfd ldp x29, x30, [sp], #32
|
||
91e0: d65f03c0 ret
|
||
91e4: 528002c1 mov w1, #0x16 // #22
|
||
91e8: 12800000 mov w0, #0xffffffff // #-1
|
||
91ec: b9000281 str w1, [x20]
|
||
91f0: 17ffffe8 b 9190 <raise+0x50>
|
||
91f4: d503201f nop
|
||
91f8: d503201f nop
|
||
91fc: d503201f nop
|
||
|
||
0000000000009200 <signal>:
|
||
9200: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
9204: f0000002 adrp x2, c000 <IpcTestNull+0x6e8>
|
||
9208: 910003fd mov x29, sp
|
||
920c: a90153f3 stp x19, x20, [sp, #16]
|
||
9210: 93407c13 sxtw x19, w0
|
||
9214: f90013f5 str x21, [sp, #32]
|
||
9218: f9409855 ldr x21, [x2, #304]
|
||
921c: 71007e7f cmp w19, #0x1f
|
||
9220: 54000148 b.hi 9248 <signal+0x48> // b.pmore
|
||
9224: aa0103f4 mov x20, x1
|
||
9228: f9428ea1 ldr x1, [x21, #1304]
|
||
922c: b40001c1 cbz x1, 9264 <signal+0x64>
|
||
9230: f8737820 ldr x0, [x1, x19, lsl #3]
|
||
9234: f8337834 str x20, [x1, x19, lsl #3]
|
||
9238: a94153f3 ldp x19, x20, [sp, #16]
|
||
923c: f94013f5 ldr x21, [sp, #32]
|
||
9240: a8c37bfd ldp x29, x30, [sp], #48
|
||
9244: d65f03c0 ret
|
||
9248: 528002c1 mov w1, #0x16 // #22
|
||
924c: b90002a1 str w1, [x21]
|
||
9250: 92800000 mov x0, #0xffffffffffffffff // #-1
|
||
9254: a94153f3 ldp x19, x20, [sp, #16]
|
||
9258: f94013f5 ldr x21, [sp, #32]
|
||
925c: a8c37bfd ldp x29, x30, [sp], #48
|
||
9260: d65f03c0 ret
|
||
9264: d2802001 mov x1, #0x100 // #256
|
||
9268: aa1503e0 mov x0, x21
|
||
926c: 97ffe775 bl 3040 <_malloc_r>
|
||
9270: f9028ea0 str x0, [x21, #1304]
|
||
9274: aa0003e1 mov x1, x0
|
||
9278: b4000100 cbz x0, 9298 <signal+0x98>
|
||
927c: aa0003e2 mov x2, x0
|
||
9280: 91040003 add x3, x0, #0x100
|
||
9284: d503201f nop
|
||
9288: f800845f str xzr, [x2], #8
|
||
928c: eb02007f cmp x3, x2
|
||
9290: 54ffffc1 b.ne 9288 <signal+0x88> // b.any
|
||
9294: 17ffffe7 b 9230 <signal+0x30>
|
||
9298: 92800000 mov x0, #0xffffffffffffffff // #-1
|
||
929c: 17ffffe7 b 9238 <signal+0x38>
|
||
|
||
00000000000092a0 <_init_signal>:
|
||
92a0: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
92a4: f0000000 adrp x0, c000 <IpcTestNull+0x6e8>
|
||
92a8: 910003fd mov x29, sp
|
||
92ac: f9000bf3 str x19, [sp, #16]
|
||
92b0: f9409813 ldr x19, [x0, #304]
|
||
92b4: f9428e60 ldr x0, [x19, #1304]
|
||
92b8: b40000a0 cbz x0, 92cc <_init_signal+0x2c>
|
||
92bc: 52800000 mov w0, #0x0 // #0
|
||
92c0: f9400bf3 ldr x19, [sp, #16]
|
||
92c4: a8c27bfd ldp x29, x30, [sp], #32
|
||
92c8: d65f03c0 ret
|
||
92cc: aa1303e0 mov x0, x19
|
||
92d0: d2802001 mov x1, #0x100 // #256
|
||
92d4: 97ffe75b bl 3040 <_malloc_r>
|
||
92d8: f9028e60 str x0, [x19, #1304]
|
||
92dc: b40000e0 cbz x0, 92f8 <_init_signal+0x58>
|
||
92e0: 91040001 add x1, x0, #0x100
|
||
92e4: d503201f nop
|
||
92e8: f800841f str xzr, [x0], #8
|
||
92ec: eb01001f cmp x0, x1
|
||
92f0: 54ffffc1 b.ne 92e8 <_init_signal+0x48> // b.any
|
||
92f4: 17fffff2 b 92bc <_init_signal+0x1c>
|
||
92f8: 12800000 mov w0, #0xffffffff // #-1
|
||
92fc: 17fffff1 b 92c0 <_init_signal+0x20>
|
||
|
||
0000000000009300 <__sigtramp>:
|
||
9300: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
9304: f0000001 adrp x1, c000 <IpcTestNull+0x6e8>
|
||
9308: 910003fd mov x29, sp
|
||
930c: a90153f3 stp x19, x20, [sp, #16]
|
||
9310: f9409834 ldr x20, [x1, #304]
|
||
9314: 71007c1f cmp w0, #0x1f
|
||
9318: 54000508 b.hi 93b8 <__sigtramp+0xb8> // b.pmore
|
||
931c: f9428e82 ldr x2, [x20, #1304]
|
||
9320: 2a0003f3 mov w19, w0
|
||
9324: b4000262 cbz x2, 9370 <__sigtramp+0x70>
|
||
9328: f873d841 ldr x1, [x2, w19, sxtw #3]
|
||
932c: 8b33cc42 add x2, x2, w19, sxtw #3
|
||
9330: b4000181 cbz x1, 9360 <__sigtramp+0x60>
|
||
9334: b100043f cmn x1, #0x1
|
||
9338: 540003c0 b.eq 93b0 <__sigtramp+0xb0> // b.none
|
||
933c: f100043f cmp x1, #0x1
|
||
9340: 54000300 b.eq 93a0 <__sigtramp+0xa0> // b.none
|
||
9344: f900005f str xzr, [x2]
|
||
9348: 2a1303e0 mov w0, w19
|
||
934c: d63f0020 blr x1
|
||
9350: 52800000 mov w0, #0x0 // #0
|
||
9354: a94153f3 ldp x19, x20, [sp, #16]
|
||
9358: a8c27bfd ldp x29, x30, [sp], #32
|
||
935c: d65f03c0 ret
|
||
9360: 52800020 mov w0, #0x1 // #1
|
||
9364: a94153f3 ldp x19, x20, [sp, #16]
|
||
9368: a8c27bfd ldp x29, x30, [sp], #32
|
||
936c: d65f03c0 ret
|
||
9370: aa1403e0 mov x0, x20
|
||
9374: d2802001 mov x1, #0x100 // #256
|
||
9378: 97ffe732 bl 3040 <_malloc_r>
|
||
937c: f9028e80 str x0, [x20, #1304]
|
||
9380: aa0003e2 mov x2, x0
|
||
9384: b40001a0 cbz x0, 93b8 <__sigtramp+0xb8>
|
||
9388: aa0003e1 mov x1, x0
|
||
938c: 91040000 add x0, x0, #0x100
|
||
9390: f800843f str xzr, [x1], #8
|
||
9394: eb00003f cmp x1, x0
|
||
9398: 54ffffc1 b.ne 9390 <__sigtramp+0x90> // b.any
|
||
939c: 17ffffe3 b 9328 <__sigtramp+0x28>
|
||
93a0: 52800060 mov w0, #0x3 // #3
|
||
93a4: a94153f3 ldp x19, x20, [sp, #16]
|
||
93a8: a8c27bfd ldp x29, x30, [sp], #32
|
||
93ac: d65f03c0 ret
|
||
93b0: 52800040 mov w0, #0x2 // #2
|
||
93b4: 17ffffe8 b 9354 <__sigtramp+0x54>
|
||
93b8: 12800000 mov w0, #0xffffffff // #-1
|
||
93bc: 17ffffe6 b 9354 <__sigtramp+0x54>
|
||
|
||
00000000000093c0 <_kill_r>:
|
||
93c0: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
93c4: 910003fd mov x29, sp
|
||
93c8: a90153f3 stp x19, x20, [sp, #16]
|
||
93cc: 90000034 adrp x20, d000 <__malloc_av_+0x780>
|
||
93d0: aa0003f3 mov x19, x0
|
||
93d4: b905da9f str wzr, [x20, #1496]
|
||
93d8: 2a0103e0 mov w0, w1
|
||
93dc: 2a0203e1 mov w1, w2
|
||
93e0: 97ffe668 bl 2d80 <_kill>
|
||
93e4: 3100041f cmn w0, #0x1
|
||
93e8: 54000080 b.eq 93f8 <_kill_r+0x38> // b.none
|
||
93ec: a94153f3 ldp x19, x20, [sp, #16]
|
||
93f0: a8c27bfd ldp x29, x30, [sp], #32
|
||
93f4: d65f03c0 ret
|
||
93f8: b945da81 ldr w1, [x20, #1496]
|
||
93fc: 34ffff81 cbz w1, 93ec <_kill_r+0x2c>
|
||
9400: b9000261 str w1, [x19]
|
||
9404: a94153f3 ldp x19, x20, [sp, #16]
|
||
9408: a8c27bfd ldp x29, x30, [sp], #32
|
||
940c: d65f03c0 ret
|
||
|
||
0000000000009410 <_getpid_r>:
|
||
9410: 17ffe660 b 2d90 <_getpid>
|
||
9414: d503201f nop
|
||
9418: d503201f nop
|
||
941c: d503201f nop
|
||
|
||
0000000000009420 <__sread>:
|
||
9420: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
9424: 93407c63 sxtw x3, w3
|
||
9428: 910003fd mov x29, sp
|
||
942c: f9000bf3 str x19, [sp, #16]
|
||
9430: aa0103f3 mov x19, x1
|
||
9434: 79c02421 ldrsh w1, [x1, #18]
|
||
9438: 94000592 bl aa80 <_read_r>
|
||
943c: b7f800e0 tbnz x0, #63, 9458 <__sread+0x38>
|
||
9440: f9404a61 ldr x1, [x19, #144]
|
||
9444: 8b000021 add x1, x1, x0
|
||
9448: f9004a61 str x1, [x19, #144]
|
||
944c: f9400bf3 ldr x19, [sp, #16]
|
||
9450: a8c27bfd ldp x29, x30, [sp], #32
|
||
9454: d65f03c0 ret
|
||
9458: 79402261 ldrh w1, [x19, #16]
|
||
945c: 12137821 and w1, w1, #0xffffefff
|
||
9460: 79002261 strh w1, [x19, #16]
|
||
9464: f9400bf3 ldr x19, [sp, #16]
|
||
9468: a8c27bfd ldp x29, x30, [sp], #32
|
||
946c: d65f03c0 ret
|
||
|
||
0000000000009470 <__seofread>:
|
||
9470: 52800000 mov w0, #0x0 // #0
|
||
9474: d65f03c0 ret
|
||
9478: d503201f nop
|
||
947c: d503201f nop
|
||
|
||
0000000000009480 <__swrite>:
|
||
9480: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
9484: 910003fd mov x29, sp
|
||
9488: 79c02024 ldrsh w4, [x1, #16]
|
||
948c: a90153f3 stp x19, x20, [sp, #16]
|
||
9490: aa0103f3 mov x19, x1
|
||
9494: aa0003f4 mov x20, x0
|
||
9498: a9025bf5 stp x21, x22, [sp, #32]
|
||
949c: aa0203f5 mov x21, x2
|
||
94a0: 2a0303f6 mov w22, w3
|
||
94a4: 37400184 tbnz w4, #8, 94d4 <__swrite+0x54>
|
||
94a8: 79c02661 ldrsh w1, [x19, #18]
|
||
94ac: 12137884 and w4, w4, #0xffffefff
|
||
94b0: 79002264 strh w4, [x19, #16]
|
||
94b4: 93407ec3 sxtw x3, w22
|
||
94b8: aa1503e2 mov x2, x21
|
||
94bc: aa1403e0 mov x0, x20
|
||
94c0: 94000450 bl a600 <_write_r>
|
||
94c4: a94153f3 ldp x19, x20, [sp, #16]
|
||
94c8: a9425bf5 ldp x21, x22, [sp, #32]
|
||
94cc: a8c37bfd ldp x29, x30, [sp], #48
|
||
94d0: d65f03c0 ret
|
||
94d4: 79c02421 ldrsh w1, [x1, #18]
|
||
94d8: 52800043 mov w3, #0x2 // #2
|
||
94dc: d2800002 mov x2, #0x0 // #0
|
||
94e0: 94000550 bl aa20 <_lseek_r>
|
||
94e4: 79c02264 ldrsh w4, [x19, #16]
|
||
94e8: 17fffff0 b 94a8 <__swrite+0x28>
|
||
94ec: d503201f nop
|
||
|
||
00000000000094f0 <__sseek>:
|
||
94f0: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
94f4: 910003fd mov x29, sp
|
||
94f8: f9000bf3 str x19, [sp, #16]
|
||
94fc: aa0103f3 mov x19, x1
|
||
9500: 79c02421 ldrsh w1, [x1, #18]
|
||
9504: 94000547 bl aa20 <_lseek_r>
|
||
9508: 79402261 ldrh w1, [x19, #16]
|
||
950c: b100041f cmn x0, #0x1
|
||
9510: 540000e0 b.eq 952c <__sseek+0x3c> // b.none
|
||
9514: 32140021 orr w1, w1, #0x1000
|
||
9518: 79002261 strh w1, [x19, #16]
|
||
951c: f9004a60 str x0, [x19, #144]
|
||
9520: f9400bf3 ldr x19, [sp, #16]
|
||
9524: a8c27bfd ldp x29, x30, [sp], #32
|
||
9528: d65f03c0 ret
|
||
952c: 12137821 and w1, w1, #0xffffefff
|
||
9530: 79002261 strh w1, [x19, #16]
|
||
9534: f9400bf3 ldr x19, [sp, #16]
|
||
9538: a8c27bfd ldp x29, x30, [sp], #32
|
||
953c: d65f03c0 ret
|
||
|
||
0000000000009540 <__sclose>:
|
||
9540: 79c02421 ldrsh w1, [x1, #18]
|
||
9544: 14000447 b a660 <_close_r>
|
||
9548: d503201f nop
|
||
954c: d503201f nop
|
||
|
||
0000000000009550 <strcasecmp>:
|
||
9550: d0000006 adrp x6, b000 <pow10.0+0x80>
|
||
9554: aa0003e8 mov x8, x0
|
||
9558: 911fa4c6 add x6, x6, #0x7e9
|
||
955c: d2800003 mov x3, #0x0 // #0
|
||
9560: 38636902 ldrb w2, [x8, x3]
|
||
9564: 38636820 ldrb w0, [x1, x3]
|
||
9568: 91000463 add x3, x3, #0x1
|
||
956c: 92401c45 and x5, x2, #0xff
|
||
9570: 11008047 add w7, w2, #0x20
|
||
9574: 92401c04 and x4, x0, #0xff
|
||
9578: 386568c5 ldrb w5, [x6, x5]
|
||
957c: 386468c4 ldrb w4, [x6, x4]
|
||
9580: 120004a5 and w5, w5, #0x3
|
||
9584: 710004bf cmp w5, #0x1
|
||
9588: 12000484 and w4, w4, #0x3
|
||
958c: 1a8200e2 csel w2, w7, w2, eq // eq = none
|
||
9590: 7100049f cmp w4, #0x1
|
||
9594: 540000a0 b.eq 95a8 <strcasecmp+0x58> // b.none
|
||
9598: 6b000042 subs w2, w2, w0
|
||
959c: 540000e1 b.ne 95b8 <strcasecmp+0x68> // b.any
|
||
95a0: 35fffe00 cbnz w0, 9560 <strcasecmp+0x10>
|
||
95a4: d65f03c0 ret
|
||
95a8: 11008000 add w0, w0, #0x20
|
||
95ac: 6b000040 subs w0, w2, w0
|
||
95b0: 54fffd80 b.eq 9560 <strcasecmp+0x10> // b.none
|
||
95b4: d65f03c0 ret
|
||
95b8: 2a0203e0 mov w0, w2
|
||
95bc: d65f03c0 ret
|
||
|
||
00000000000095c0 <strcat>:
|
||
95c0: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
95c4: 910003fd mov x29, sp
|
||
95c8: f9000bf3 str x19, [sp, #16]
|
||
95cc: aa0003f3 mov x19, x0
|
||
95d0: f240081f tst x0, #0x7
|
||
95d4: 540001c1 b.ne 960c <strcat+0x4c> // b.any
|
||
95d8: f9400002 ldr x2, [x0]
|
||
95dc: b207dbe4 mov x4, #0xfefefefefefefefe // #-72340172838076674
|
||
95e0: f29fdfe4 movk x4, #0xfeff
|
||
95e4: 8b040043 add x3, x2, x4
|
||
95e8: 8a220062 bic x2, x3, x2
|
||
95ec: f201c05f tst x2, #0x8080808080808080
|
||
95f0: 540000e1 b.ne 960c <strcat+0x4c> // b.any
|
||
95f4: d503201f nop
|
||
95f8: f8408c02 ldr x2, [x0, #8]!
|
||
95fc: 8b040043 add x3, x2, x4
|
||
9600: 8a220062 bic x2, x3, x2
|
||
9604: f201c05f tst x2, #0x8080808080808080
|
||
9608: 54ffff80 b.eq 95f8 <strcat+0x38> // b.none
|
||
960c: 39400002 ldrb w2, [x0]
|
||
9610: 34000082 cbz w2, 9620 <strcat+0x60>
|
||
9614: d503201f nop
|
||
9618: 38401c02 ldrb w2, [x0, #1]!
|
||
961c: 35ffffe2 cbnz w2, 9618 <strcat+0x58>
|
||
9620: 94000088 bl 9840 <strcpy>
|
||
9624: aa1303e0 mov x0, x19
|
||
9628: f9400bf3 ldr x19, [sp, #16]
|
||
962c: a8c27bfd ldp x29, x30, [sp], #32
|
||
9630: d65f03c0 ret
|
||
|
||
0000000000009634 <strchr>:
|
||
9634: 52808024 mov w4, #0x401 // #1025
|
||
9638: 72a80204 movk w4, #0x4010, lsl #16
|
||
963c: 4e010c20 dup v0.16b, w1
|
||
9640: 927be802 and x2, x0, #0xffffffffffffffe0
|
||
9644: 4e040c90 dup v16.4s, w4
|
||
9648: f2401003 ands x3, x0, #0x1f
|
||
964c: 4eb08607 add v7.4s, v16.4s, v16.4s
|
||
9650: 540002a0 b.eq 96a4 <strchr+0x70> // b.none
|
||
9654: 4cdfa041 ld1 {v1.16b, v2.16b}, [x2], #32
|
||
9658: cb0303e3 neg x3, x3
|
||
965c: 4e209823 cmeq v3.16b, v1.16b, #0
|
||
9660: 6e208c25 cmeq v5.16b, v1.16b, v0.16b
|
||
9664: 4e209844 cmeq v4.16b, v2.16b, #0
|
||
9668: 6e208c46 cmeq v6.16b, v2.16b, v0.16b
|
||
966c: 4e271c63 and v3.16b, v3.16b, v7.16b
|
||
9670: 4e271c84 and v4.16b, v4.16b, v7.16b
|
||
9674: 4e301ca5 and v5.16b, v5.16b, v16.16b
|
||
9678: 4e301cc6 and v6.16b, v6.16b, v16.16b
|
||
967c: 4ea51c71 orr v17.16b, v3.16b, v5.16b
|
||
9680: 4ea61c92 orr v18.16b, v4.16b, v6.16b
|
||
9684: d37ff863 lsl x3, x3, #1
|
||
9688: 4e32be31 addp v17.16b, v17.16b, v18.16b
|
||
968c: 92800005 mov x5, #0xffffffffffffffff // #-1
|
||
9690: 4e32be31 addp v17.16b, v17.16b, v18.16b
|
||
9694: 9ac324a3 lsr x3, x5, x3
|
||
9698: 4e083e25 mov x5, v17.d[0]
|
||
969c: 8a2300a3 bic x3, x5, x3
|
||
96a0: b50002a3 cbnz x3, 96f4 <strchr+0xc0>
|
||
96a4: 4cdfa041 ld1 {v1.16b, v2.16b}, [x2], #32
|
||
96a8: 4e209823 cmeq v3.16b, v1.16b, #0
|
||
96ac: 6e208c25 cmeq v5.16b, v1.16b, v0.16b
|
||
96b0: 4e209844 cmeq v4.16b, v2.16b, #0
|
||
96b4: 6e208c46 cmeq v6.16b, v2.16b, v0.16b
|
||
96b8: 4ea51c71 orr v17.16b, v3.16b, v5.16b
|
||
96bc: 4ea61c92 orr v18.16b, v4.16b, v6.16b
|
||
96c0: 4eb21e31 orr v17.16b, v17.16b, v18.16b
|
||
96c4: 4ef1be31 addp v17.2d, v17.2d, v17.2d
|
||
96c8: 4e083e23 mov x3, v17.d[0]
|
||
96cc: b4fffec3 cbz x3, 96a4 <strchr+0x70>
|
||
96d0: 4e271c63 and v3.16b, v3.16b, v7.16b
|
||
96d4: 4e271c84 and v4.16b, v4.16b, v7.16b
|
||
96d8: 4e301ca5 and v5.16b, v5.16b, v16.16b
|
||
96dc: 4e301cc6 and v6.16b, v6.16b, v16.16b
|
||
96e0: 4ea51c71 orr v17.16b, v3.16b, v5.16b
|
||
96e4: 4ea61c92 orr v18.16b, v4.16b, v6.16b
|
||
96e8: 4e32be31 addp v17.16b, v17.16b, v18.16b
|
||
96ec: 4e32be31 addp v17.16b, v17.16b, v18.16b
|
||
96f0: 4e083e23 mov x3, v17.d[0]
|
||
96f4: dac00063 rbit x3, x3
|
||
96f8: d1008042 sub x2, x2, #0x20
|
||
96fc: dac01063 clz x3, x3
|
||
9700: f240007f tst x3, #0x1
|
||
9704: 8b430440 add x0, x2, x3, lsr #1
|
||
9708: 9a9f0000 csel x0, x0, xzr, eq // eq = none
|
||
970c: d65f03c0 ret
|
||
9710: d503201f nop
|
||
9714: d503201f nop
|
||
9718: d503201f nop
|
||
971c: d503201f nop
|
||
9720: d503201f nop
|
||
9724: d503201f nop
|
||
9728: d503201f nop
|
||
972c: d503201f nop
|
||
9730: d503201f nop
|
||
9734: d503201f nop
|
||
9738: d503201f nop
|
||
973c: d503201f nop
|
||
|
||
0000000000009740 <strcmp>:
|
||
9740: ca010007 eor x7, x0, x1
|
||
9744: b200c3ea mov x10, #0x101010101010101 // #72340172838076673
|
||
9748: f24008ff tst x7, #0x7
|
||
974c: 540003e1 b.ne 97c8 <strcmp+0x88> // b.any
|
||
9750: f2400807 ands x7, x0, #0x7
|
||
9754: 54000241 b.ne 979c <strcmp+0x5c> // b.any
|
||
9758: f8408402 ldr x2, [x0], #8
|
||
975c: f8408423 ldr x3, [x1], #8
|
||
9760: cb0a0047 sub x7, x2, x10
|
||
9764: b200d848 orr x8, x2, #0x7f7f7f7f7f7f7f7f
|
||
9768: ca030045 eor x5, x2, x3
|
||
976c: 8a2800e4 bic x4, x7, x8
|
||
9770: aa0400a6 orr x6, x5, x4
|
||
9774: b4ffff26 cbz x6, 9758 <strcmp+0x18>
|
||
9778: dac00cc6 rev x6, x6
|
||
977c: dac00c42 rev x2, x2
|
||
9780: dac010cb clz x11, x6
|
||
9784: dac00c63 rev x3, x3
|
||
9788: 9acb2042 lsl x2, x2, x11
|
||
978c: 9acb2063 lsl x3, x3, x11
|
||
9790: d378fc42 lsr x2, x2, #56
|
||
9794: cb43e040 sub x0, x2, x3, lsr #56
|
||
9798: d65f03c0 ret
|
||
979c: 927df000 and x0, x0, #0xfffffffffffffff8
|
||
97a0: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
97a4: d37df0e7 lsl x7, x7, #3
|
||
97a8: f8408402 ldr x2, [x0], #8
|
||
97ac: cb0703e7 neg x7, x7
|
||
97b0: f8408423 ldr x3, [x1], #8
|
||
97b4: 92800008 mov x8, #0xffffffffffffffff // #-1
|
||
97b8: 9ac72508 lsr x8, x8, x7
|
||
97bc: aa080042 orr x2, x2, x8
|
||
97c0: aa080063 orr x3, x3, x8
|
||
97c4: 17ffffe7 b 9760 <strcmp+0x20>
|
||
97c8: f240081f tst x0, #0x7
|
||
97cc: 54000100 b.eq 97ec <strcmp+0xac> // b.none
|
||
97d0: 38401402 ldrb w2, [x0], #1
|
||
97d4: 38401423 ldrb w3, [x1], #1
|
||
97d8: 7100045f cmp w2, #0x1
|
||
97dc: 7a432040 ccmp w2, w3, #0x0, cs // cs = hs, nlast
|
||
97e0: 540001e1 b.ne 981c <strcmp+0xdc> // b.any
|
||
97e4: f240081f tst x0, #0x7
|
||
97e8: 54ffff41 b.ne 97d0 <strcmp+0x90> // b.any
|
||
97ec: 927d2027 and x7, x1, #0xff8
|
||
97f0: d27d20e7 eor x7, x7, #0xff8
|
||
97f4: b4fffee7 cbz x7, 97d0 <strcmp+0x90>
|
||
97f8: f8408402 ldr x2, [x0], #8
|
||
97fc: f8408423 ldr x3, [x1], #8
|
||
9800: cb0a0047 sub x7, x2, x10
|
||
9804: b200d848 orr x8, x2, #0x7f7f7f7f7f7f7f7f
|
||
9808: ca030045 eor x5, x2, x3
|
||
980c: 8a2800e4 bic x4, x7, x8
|
||
9810: aa0400a6 orr x6, x5, x4
|
||
9814: b4fffec6 cbz x6, 97ec <strcmp+0xac>
|
||
9818: 17ffffd8 b 9778 <strcmp+0x38>
|
||
981c: cb030040 sub x0, x2, x3
|
||
9820: d65f03c0 ret
|
||
9824: d503201f nop
|
||
9828: d503201f nop
|
||
982c: d503201f nop
|
||
9830: d503201f nop
|
||
9834: d503201f nop
|
||
9838: d503201f nop
|
||
983c: d503201f nop
|
||
|
||
0000000000009840 <strcpy>:
|
||
9840: 92402c29 and x9, x1, #0xfff
|
||
9844: b200c3ec mov x12, #0x101010101010101 // #72340172838076673
|
||
9848: 92400c31 and x17, x1, #0xf
|
||
984c: f13fc13f cmp x9, #0xff0
|
||
9850: cb1103e8 neg x8, x17
|
||
9854: 540008cc b.gt 996c <strcpy+0x12c>
|
||
9858: a9401424 ldp x4, x5, [x1]
|
||
985c: cb0c0088 sub x8, x4, x12
|
||
9860: b200d889 orr x9, x4, #0x7f7f7f7f7f7f7f7f
|
||
9864: ea290106 bics x6, x8, x9
|
||
9868: 540001c1 b.ne 98a0 <strcpy+0x60> // b.any
|
||
986c: cb0c00aa sub x10, x5, x12
|
||
9870: b200d8ab orr x11, x5, #0x7f7f7f7f7f7f7f7f
|
||
9874: ea2b0147 bics x7, x10, x11
|
||
9878: 54000440 b.eq 9900 <strcpy+0xc0> // b.none
|
||
987c: dac00ce7 rev x7, x7
|
||
9880: dac010ef clz x15, x7
|
||
9884: d2800709 mov x9, #0x38 // #56
|
||
9888: 8b4f0c03 add x3, x0, x15, lsr #3
|
||
988c: cb0f012f sub x15, x9, x15
|
||
9890: 9acf20a5 lsl x5, x5, x15
|
||
9894: f8001065 stur x5, [x3, #1]
|
||
9898: f9000004 str x4, [x0]
|
||
989c: d65f03c0 ret
|
||
98a0: dac00cc6 rev x6, x6
|
||
98a4: dac010cf clz x15, x6
|
||
98a8: 8b4f0c03 add x3, x0, x15, lsr #3
|
||
98ac: f10061e9 subs x9, x15, #0x18
|
||
98b0: 540000ab b.lt 98c4 <strcpy+0x84> // b.tstop
|
||
98b4: 9ac92485 lsr x5, x4, x9
|
||
98b8: b81fd065 stur w5, [x3, #-3]
|
||
98bc: b9000004 str w4, [x0]
|
||
98c0: d65f03c0 ret
|
||
98c4: b400004f cbz x15, 98cc <strcpy+0x8c>
|
||
98c8: 79000004 strh w4, [x0]
|
||
98cc: 3900007f strb wzr, [x3]
|
||
98d0: d65f03c0 ret
|
||
98d4: d503201f nop
|
||
98d8: d503201f nop
|
||
98dc: d503201f nop
|
||
98e0: d503201f nop
|
||
98e4: d503201f nop
|
||
98e8: d503201f nop
|
||
98ec: d503201f nop
|
||
98f0: d503201f nop
|
||
98f4: d503201f nop
|
||
98f8: d503201f nop
|
||
98fc: d503201f nop
|
||
9900: d1004231 sub x17, x17, #0x10
|
||
9904: a9001404 stp x4, x5, [x0]
|
||
9908: cb110022 sub x2, x1, x17
|
||
990c: cb110003 sub x3, x0, x17
|
||
9910: 14000002 b 9918 <strcpy+0xd8>
|
||
9914: a8811464 stp x4, x5, [x3], #16
|
||
9918: a8c11444 ldp x4, x5, [x2], #16
|
||
991c: cb0c0088 sub x8, x4, x12
|
||
9920: b200d889 orr x9, x4, #0x7f7f7f7f7f7f7f7f
|
||
9924: cb0c00aa sub x10, x5, x12
|
||
9928: b200d8ab orr x11, x5, #0x7f7f7f7f7f7f7f7f
|
||
992c: 8a290106 bic x6, x8, x9
|
||
9930: ea2b0147 bics x7, x10, x11
|
||
9934: fa4008c0 ccmp x6, #0x0, #0x0, eq // eq = none
|
||
9938: 54fffee0 b.eq 9914 <strcpy+0xd4> // b.none
|
||
993c: f10000df cmp x6, #0x0
|
||
9940: 9a8710c6 csel x6, x6, x7, ne // ne = any
|
||
9944: dac00cc6 rev x6, x6
|
||
9948: dac010cf clz x15, x6
|
||
994c: 910121e8 add x8, x15, #0x48
|
||
9950: 910021ef add x15, x15, #0x8
|
||
9954: 9a8811ef csel x15, x15, x8, ne // ne = any
|
||
9958: 8b4f0c42 add x2, x2, x15, lsr #3
|
||
995c: 8b4f0c63 add x3, x3, x15, lsr #3
|
||
9960: a97e1444 ldp x4, x5, [x2, #-32]
|
||
9964: a93f1464 stp x4, x5, [x3, #-16]
|
||
9968: d65f03c0 ret
|
||
996c: 927cec22 and x2, x1, #0xfffffffffffffff0
|
||
9970: a9401444 ldp x4, x5, [x2]
|
||
9974: d37df108 lsl x8, x8, #3
|
||
9978: f2400a3f tst x17, #0x7
|
||
997c: da9f03e9 csetm x9, ne // ne = any
|
||
9980: 9ac82529 lsr x9, x9, x8
|
||
9984: aa090084 orr x4, x4, x9
|
||
9988: aa0900ae orr x14, x5, x9
|
||
998c: f100223f cmp x17, #0x8
|
||
9990: da9fb084 csinv x4, x4, xzr, lt // lt = tstop
|
||
9994: 9a8eb0a5 csel x5, x5, x14, lt // lt = tstop
|
||
9998: cb0c0088 sub x8, x4, x12
|
||
999c: b200d889 orr x9, x4, #0x7f7f7f7f7f7f7f7f
|
||
99a0: cb0c00aa sub x10, x5, x12
|
||
99a4: b200d8ab orr x11, x5, #0x7f7f7f7f7f7f7f7f
|
||
99a8: 8a290106 bic x6, x8, x9
|
||
99ac: ea2b0147 bics x7, x10, x11
|
||
99b0: fa4008c0 ccmp x6, #0x0, #0x0, eq // eq = none
|
||
99b4: 54fff520 b.eq 9858 <strcpy+0x18> // b.none
|
||
99b8: d37df228 lsl x8, x17, #3
|
||
99bc: cb110fe9 neg x9, x17, lsl #3
|
||
99c0: 9ac8248d lsr x13, x4, x8
|
||
99c4: 9ac920ab lsl x11, x5, x9
|
||
99c8: 9ac824a5 lsr x5, x5, x8
|
||
99cc: aa0d016b orr x11, x11, x13
|
||
99d0: f100223f cmp x17, #0x8
|
||
99d4: 9a85b164 csel x4, x11, x5, lt // lt = tstop
|
||
99d8: cb0c0088 sub x8, x4, x12
|
||
99dc: b200d889 orr x9, x4, #0x7f7f7f7f7f7f7f7f
|
||
99e0: cb0c00aa sub x10, x5, x12
|
||
99e4: b200d8ab orr x11, x5, #0x7f7f7f7f7f7f7f7f
|
||
99e8: 8a290106 bic x6, x8, x9
|
||
99ec: b5fff5a6 cbnz x6, 98a0 <strcpy+0x60>
|
||
99f0: 8a2b0147 bic x7, x10, x11
|
||
99f4: 17ffffa2 b 987c <strcpy+0x3c>
|
||
99f8: d503201f nop
|
||
99fc: d503201f nop
|
||
|
||
0000000000009a00 <strlcpy>:
|
||
9a00: aa0003e4 mov x4, x0
|
||
9a04: aa0103e3 mov x3, x1
|
||
9a08: b4000202 cbz x2, 9a48 <strlcpy+0x48>
|
||
9a0c: f100045f cmp x2, #0x1
|
||
9a10: 54000180 b.eq 9a40 <strlcpy+0x40> // b.none
|
||
9a14: 8b020002 add x2, x0, x2
|
||
9a18: 14000003 b 9a24 <strlcpy+0x24>
|
||
9a1c: ab02001f cmn x0, x2
|
||
9a20: 54000100 b.eq 9a40 <strlcpy+0x40> // b.none
|
||
9a24: 38401465 ldrb w5, [x3], #1
|
||
9a28: 38001485 strb w5, [x4], #1
|
||
9a2c: aa2403e0 mvn x0, x4
|
||
9a30: 35ffff65 cbnz w5, 9a1c <strlcpy+0x1c>
|
||
9a34: cb010060 sub x0, x3, x1
|
||
9a38: d1000400 sub x0, x0, #0x1
|
||
9a3c: d65f03c0 ret
|
||
9a40: 3900009f strb wzr, [x4]
|
||
9a44: d503201f nop
|
||
9a48: 38401462 ldrb w2, [x3], #1
|
||
9a4c: 34ffff42 cbz w2, 9a34 <strlcpy+0x34>
|
||
9a50: 38401462 ldrb w2, [x3], #1
|
||
9a54: 35ffffa2 cbnz w2, 9a48 <strlcpy+0x48>
|
||
9a58: 17fffff7 b 9a34 <strlcpy+0x34>
|
||
9a5c: d503201f nop
|
||
9a60: d503201f nop
|
||
9a64: d503201f nop
|
||
9a68: d503201f nop
|
||
9a6c: d503201f nop
|
||
9a70: d503201f nop
|
||
9a74: d503201f nop
|
||
9a78: d503201f nop
|
||
9a7c: d503201f nop
|
||
|
||
0000000000009a80 <strlen>:
|
||
9a80: 92402c04 and x4, x0, #0xfff
|
||
9a84: b200c3e8 mov x8, #0x101010101010101 // #72340172838076673
|
||
9a88: f13fc09f cmp x4, #0xff0
|
||
9a8c: 5400082c b.gt 9b90 <strlen+0x110>
|
||
9a90: a9400c02 ldp x2, x3, [x0]
|
||
9a94: cb080044 sub x4, x2, x8
|
||
9a98: b200d845 orr x5, x2, #0x7f7f7f7f7f7f7f7f
|
||
9a9c: cb080066 sub x6, x3, x8
|
||
9aa0: b200d867 orr x7, x3, #0x7f7f7f7f7f7f7f7f
|
||
9aa4: ea250084 bics x4, x4, x5
|
||
9aa8: 8a2700c5 bic x5, x6, x7
|
||
9aac: fa4008a0 ccmp x5, #0x0, #0x0, eq // eq = none
|
||
9ab0: 54000100 b.eq 9ad0 <strlen+0x50> // b.none
|
||
9ab4: 9a853084 csel x4, x4, x5, cc // cc = lo, ul, last
|
||
9ab8: d2800100 mov x0, #0x8 // #8
|
||
9abc: dac00c84 rev x4, x4
|
||
9ac0: dac01084 clz x4, x4
|
||
9ac4: 9a8033e0 csel x0, xzr, x0, cc // cc = lo, ul, last
|
||
9ac8: 8b440c00 add x0, x0, x4, lsr #3
|
||
9acc: d65f03c0 ret
|
||
9ad0: 927cec01 and x1, x0, #0xfffffffffffffff0
|
||
9ad4: d1004021 sub x1, x1, #0x10
|
||
9ad8: a9c20c22 ldp x2, x3, [x1, #32]!
|
||
9adc: cb080044 sub x4, x2, x8
|
||
9ae0: cb080066 sub x6, x3, x8
|
||
9ae4: aa060085 orr x5, x4, x6
|
||
9ae8: ea081cbf tst x5, x8, lsl #7
|
||
9aec: 54000101 b.ne 9b0c <strlen+0x8c> // b.any
|
||
9af0: a9410c22 ldp x2, x3, [x1, #16]
|
||
9af4: cb080044 sub x4, x2, x8
|
||
9af8: cb080066 sub x6, x3, x8
|
||
9afc: aa060085 orr x5, x4, x6
|
||
9b00: ea081cbf tst x5, x8, lsl #7
|
||
9b04: 54fffea0 b.eq 9ad8 <strlen+0x58> // b.none
|
||
9b08: 91004021 add x1, x1, #0x10
|
||
9b0c: b200d845 orr x5, x2, #0x7f7f7f7f7f7f7f7f
|
||
9b10: b200d867 orr x7, x3, #0x7f7f7f7f7f7f7f7f
|
||
9b14: ea250084 bics x4, x4, x5
|
||
9b18: 8a2700c5 bic x5, x6, x7
|
||
9b1c: fa4008a0 ccmp x5, #0x0, #0x0, eq // eq = none
|
||
9b20: 54000120 b.eq 9b44 <strlen+0xc4> // b.none
|
||
9b24: 9a853084 csel x4, x4, x5, cc // cc = lo, ul, last
|
||
9b28: cb000020 sub x0, x1, x0
|
||
9b2c: dac00c84 rev x4, x4
|
||
9b30: 91002005 add x5, x0, #0x8
|
||
9b34: dac01084 clz x4, x4
|
||
9b38: 9a853000 csel x0, x0, x5, cc // cc = lo, ul, last
|
||
9b3c: 8b440c00 add x0, x0, x4, lsr #3
|
||
9b40: d65f03c0 ret
|
||
9b44: a9c10c22 ldp x2, x3, [x1, #16]!
|
||
9b48: cb080044 sub x4, x2, x8
|
||
9b4c: b200d845 orr x5, x2, #0x7f7f7f7f7f7f7f7f
|
||
9b50: cb080066 sub x6, x3, x8
|
||
9b54: b200d867 orr x7, x3, #0x7f7f7f7f7f7f7f7f
|
||
9b58: ea250084 bics x4, x4, x5
|
||
9b5c: 8a2700c5 bic x5, x6, x7
|
||
9b60: fa4008a0 ccmp x5, #0x0, #0x0, eq // eq = none
|
||
9b64: 54fffe01 b.ne 9b24 <strlen+0xa4> // b.any
|
||
9b68: a9c10c22 ldp x2, x3, [x1, #16]!
|
||
9b6c: cb080044 sub x4, x2, x8
|
||
9b70: b200d845 orr x5, x2, #0x7f7f7f7f7f7f7f7f
|
||
9b74: cb080066 sub x6, x3, x8
|
||
9b78: b200d867 orr x7, x3, #0x7f7f7f7f7f7f7f7f
|
||
9b7c: ea250084 bics x4, x4, x5
|
||
9b80: 8a2700c5 bic x5, x6, x7
|
||
9b84: fa4008a0 ccmp x5, #0x0, #0x0, eq // eq = none
|
||
9b88: 54fffde0 b.eq 9b44 <strlen+0xc4> // b.none
|
||
9b8c: 17ffffe6 b 9b24 <strlen+0xa4>
|
||
9b90: 927cec01 and x1, x0, #0xfffffffffffffff0
|
||
9b94: a9400c22 ldp x2, x3, [x1]
|
||
9b98: d37df004 lsl x4, x0, #3
|
||
9b9c: 92800007 mov x7, #0xffffffffffffffff // #-1
|
||
9ba0: 9ac420e4 lsl x4, x7, x4
|
||
9ba4: b201c084 orr x4, x4, #0x8080808080808080
|
||
9ba8: aa240042 orn x2, x2, x4
|
||
9bac: aa240065 orn x5, x3, x4
|
||
9bb0: f27d001f tst x0, #0x8
|
||
9bb4: 9a870042 csel x2, x2, x7, eq // eq = none
|
||
9bb8: 9a850063 csel x3, x3, x5, eq // eq = none
|
||
9bbc: 17ffffc8 b 9adc <strlen+0x5c>
|
||
|
||
0000000000009bc0 <strncasecmp>:
|
||
9bc0: aa0003e9 mov x9, x0
|
||
9bc4: b4000382 cbz x2, 9c34 <strncasecmp+0x74>
|
||
9bc8: d0000007 adrp x7, b000 <pow10.0+0x80>
|
||
9bcc: d2800004 mov x4, #0x0 // #0
|
||
9bd0: 911fa4e7 add x7, x7, #0x7e9
|
||
9bd4: 14000006 b 9bec <strncasecmp+0x2c>
|
||
9bd8: 6b000063 subs w3, w3, w0
|
||
9bdc: 54000301 b.ne 9c3c <strncasecmp+0x7c> // b.any
|
||
9be0: 34000280 cbz w0, 9c30 <strncasecmp+0x70>
|
||
9be4: eb04005f cmp x2, x4
|
||
9be8: 54000260 b.eq 9c34 <strncasecmp+0x74> // b.none
|
||
9bec: 38646923 ldrb w3, [x9, x4]
|
||
9bf0: 38646820 ldrb w0, [x1, x4]
|
||
9bf4: 91000484 add x4, x4, #0x1
|
||
9bf8: 92401c66 and x6, x3, #0xff
|
||
9bfc: 11008068 add w8, w3, #0x20
|
||
9c00: 92401c05 and x5, x0, #0xff
|
||
9c04: 386668e6 ldrb w6, [x7, x6]
|
||
9c08: 386568e5 ldrb w5, [x7, x5]
|
||
9c0c: 120004c6 and w6, w6, #0x3
|
||
9c10: 710004df cmp w6, #0x1
|
||
9c14: 120004a5 and w5, w5, #0x3
|
||
9c18: 1a830103 csel w3, w8, w3, eq // eq = none
|
||
9c1c: 710004bf cmp w5, #0x1
|
||
9c20: 54fffdc1 b.ne 9bd8 <strncasecmp+0x18> // b.any
|
||
9c24: 11008000 add w0, w0, #0x20
|
||
9c28: 6b000060 subs w0, w3, w0
|
||
9c2c: 54fffdc0 b.eq 9be4 <strncasecmp+0x24> // b.none
|
||
9c30: d65f03c0 ret
|
||
9c34: 52800000 mov w0, #0x0 // #0
|
||
9c38: d65f03c0 ret
|
||
9c3c: 2a0303e0 mov w0, w3
|
||
9c40: d65f03c0 ret
|
||
9c44: d503201f nop
|
||
9c48: d503201f nop
|
||
9c4c: d503201f nop
|
||
|
||
0000000000009c50 <strncpy>:
|
||
9c50: aa000023 orr x3, x1, x0
|
||
9c54: f240087f tst x3, #0x7
|
||
9c58: aa0003e3 mov x3, x0
|
||
9c5c: fa470840 ccmp x2, #0x7, #0x0, eq // eq = none
|
||
9c60: 540002c8 b.hi 9cb8 <strncpy+0x68> // b.pmore
|
||
9c64: d1000445 sub x5, x2, #0x1
|
||
9c68: d2800027 mov x7, #0x1 // #1
|
||
9c6c: 8b050025 add x5, x1, x5
|
||
9c70: 14000007 b 9c8c <strncpy+0x3c>
|
||
9c74: 386468a4 ldrb w4, [x5, x4]
|
||
9c78: d1000446 sub x6, x2, #0x1
|
||
9c7c: 38001424 strb w4, [x1], #1
|
||
9c80: 340000e4 cbz w4, 9c9c <strncpy+0x4c>
|
||
9c84: aa0103e3 mov x3, x1
|
||
9c88: aa0603e2 mov x2, x6
|
||
9c8c: cb0200e4 sub x4, x7, x2
|
||
9c90: aa0303e1 mov x1, x3
|
||
9c94: b5ffff02 cbnz x2, 9c74 <strncpy+0x24>
|
||
9c98: d65f03c0 ret
|
||
9c9c: 8b020062 add x2, x3, x2
|
||
9ca0: b4ffffc6 cbz x6, 9c98 <strncpy+0x48>
|
||
9ca4: d503201f nop
|
||
9ca8: 3800143f strb wzr, [x1], #1
|
||
9cac: eb02003f cmp x1, x2
|
||
9cb0: 54ffffc1 b.ne 9ca8 <strncpy+0x58> // b.any
|
||
9cb4: d65f03c0 ret
|
||
9cb8: b207dbe6 mov x6, #0xfefefefefefefefe // #-72340172838076674
|
||
9cbc: f29fdfe6 movk x6, #0xfeff
|
||
9cc0: f9400025 ldr x5, [x1]
|
||
9cc4: 8b0600a4 add x4, x5, x6
|
||
9cc8: 8a250084 bic x4, x4, x5
|
||
9ccc: f201c09f tst x4, #0x8080808080808080
|
||
9cd0: 54fffca1 b.ne 9c64 <strncpy+0x14> // b.any
|
||
9cd4: d1002042 sub x2, x2, #0x8
|
||
9cd8: f8008465 str x5, [x3], #8
|
||
9cdc: 91002021 add x1, x1, #0x8
|
||
9ce0: f1001c5f cmp x2, #0x7
|
||
9ce4: 54fffee8 b.hi 9cc0 <strncpy+0x70> // b.pmore
|
||
9ce8: 17ffffdf b 9c64 <strncpy+0x14>
|
||
9cec: d503201f nop
|
||
|
||
0000000000009cf0 <_strtol_l.part.0>:
|
||
9cf0: d0000007 adrp x7, b000 <pow10.0+0x80>
|
||
9cf4: aa0003ec mov x12, x0
|
||
9cf8: aa0103e6 mov x6, x1
|
||
9cfc: 911fa4e7 add x7, x7, #0x7e9
|
||
9d00: aa0603e8 mov x8, x6
|
||
9d04: 384014c4 ldrb w4, [x6], #1
|
||
9d08: 92401c85 and x5, x4, #0xff
|
||
9d0c: 386568e5 ldrb w5, [x7, x5]
|
||
9d10: 371fff85 tbnz w5, #3, 9d00 <_strtol_l.part.0+0x10>
|
||
9d14: 2a0403e5 mov w5, w4
|
||
9d18: 7100b49f cmp w4, #0x2d
|
||
9d1c: 54000880 b.eq 9e2c <_strtol_l.part.0+0x13c> // b.none
|
||
9d20: 92f0000b mov x11, #0x7fffffffffffffff // #9223372036854775807
|
||
9d24: 5280000d mov w13, #0x0 // #0
|
||
9d28: 7100ac9f cmp w4, #0x2b
|
||
9d2c: 540006a0 b.eq 9e00 <_strtol_l.part.0+0x110> // b.none
|
||
9d30: 721b787f tst w3, #0xffffffef
|
||
9d34: 54000121 b.ne 9d58 <_strtol_l.part.0+0x68> // b.any
|
||
9d38: 7100c0bf cmp w5, #0x30
|
||
9d3c: 54000820 b.eq 9e40 <_strtol_l.part.0+0x150> // b.none
|
||
9d40: 350000c3 cbnz w3, 9d58 <_strtol_l.part.0+0x68>
|
||
9d44: d280014a mov x10, #0xa // #10
|
||
9d48: 2a0a03e3 mov w3, w10
|
||
9d4c: 14000004 b 9d5c <_strtol_l.part.0+0x6c>
|
||
9d50: 34000903 cbz w3, 9e70 <_strtol_l.part.0+0x180>
|
||
9d54: d503201f nop
|
||
9d58: 93407c6a sxtw x10, w3
|
||
9d5c: 9aca0968 udiv x8, x11, x10
|
||
9d60: 52800007 mov w7, #0x0 // #0
|
||
9d64: d2800000 mov x0, #0x0 // #0
|
||
9d68: 1b0aad09 msub w9, w8, w10, w11
|
||
9d6c: d503201f nop
|
||
9d70: 5100c0a4 sub w4, w5, #0x30
|
||
9d74: 7100249f cmp w4, #0x9
|
||
9d78: 540000a9 b.ls 9d8c <_strtol_l.part.0+0x9c> // b.plast
|
||
9d7c: 510104a4 sub w4, w5, #0x41
|
||
9d80: 7100649f cmp w4, #0x19
|
||
9d84: 54000208 b.hi 9dc4 <_strtol_l.part.0+0xd4> // b.pmore
|
||
9d88: 5100dca4 sub w4, w5, #0x37
|
||
9d8c: 6b04007f cmp w3, w4
|
||
9d90: 5400028d b.le 9de0 <_strtol_l.part.0+0xf0>
|
||
9d94: 710000ff cmp w7, #0x0
|
||
9d98: 12800007 mov w7, #0xffffffff // #-1
|
||
9d9c: fa40a100 ccmp x8, x0, #0x0, ge // ge = tcont
|
||
9da0: 540000e3 b.cc 9dbc <_strtol_l.part.0+0xcc> // b.lo, b.ul, b.last
|
||
9da4: eb00011f cmp x8, x0
|
||
9da8: 7a440120 ccmp w9, w4, #0x0, eq // eq = none
|
||
9dac: 5400008b b.lt 9dbc <_strtol_l.part.0+0xcc> // b.tstop
|
||
9db0: 93407c84 sxtw x4, w4
|
||
9db4: 52800027 mov w7, #0x1 // #1
|
||
9db8: 9b0a1000 madd x0, x0, x10, x4
|
||
9dbc: 384014c5 ldrb w5, [x6], #1
|
||
9dc0: 17ffffec b 9d70 <_strtol_l.part.0+0x80>
|
||
9dc4: 510184a4 sub w4, w5, #0x61
|
||
9dc8: 7100649f cmp w4, #0x19
|
||
9dcc: 540000a8 b.hi 9de0 <_strtol_l.part.0+0xf0> // b.pmore
|
||
9dd0: 51015ca4 sub w4, w5, #0x57
|
||
9dd4: 6b04007f cmp w3, w4
|
||
9dd8: 54fffdec b.gt 9d94 <_strtol_l.part.0+0xa4>
|
||
9ddc: d503201f nop
|
||
9de0: 310004ff cmn w7, #0x1
|
||
9de4: 54000140 b.eq 9e0c <_strtol_l.part.0+0x11c> // b.none
|
||
9de8: 710001bf cmp w13, #0x0
|
||
9dec: da800400 cneg x0, x0, ne // ne = any
|
||
9df0: b4000062 cbz x2, 9dfc <_strtol_l.part.0+0x10c>
|
||
9df4: 350003a7 cbnz w7, 9e68 <_strtol_l.part.0+0x178>
|
||
9df8: f9000041 str x1, [x2]
|
||
9dfc: d65f03c0 ret
|
||
9e00: 394000c5 ldrb w5, [x6]
|
||
9e04: 91000906 add x6, x8, #0x2
|
||
9e08: 17ffffca b 9d30 <_strtol_l.part.0+0x40>
|
||
9e0c: 52800440 mov w0, #0x22 // #34
|
||
9e10: b9000180 str w0, [x12]
|
||
9e14: aa0b03e0 mov x0, x11
|
||
9e18: b4ffff22 cbz x2, 9dfc <_strtol_l.part.0+0x10c>
|
||
9e1c: d10004c1 sub x1, x6, #0x1
|
||
9e20: aa0b03e0 mov x0, x11
|
||
9e24: f9000041 str x1, [x2]
|
||
9e28: 17fffff5 b 9dfc <_strtol_l.part.0+0x10c>
|
||
9e2c: 394000c5 ldrb w5, [x6]
|
||
9e30: d2f0000b mov x11, #0x8000000000000000 // #-9223372036854775808
|
||
9e34: 91000906 add x6, x8, #0x2
|
||
9e38: 5280002d mov w13, #0x1 // #1
|
||
9e3c: 17ffffbd b 9d30 <_strtol_l.part.0+0x40>
|
||
9e40: 394000c0 ldrb w0, [x6]
|
||
9e44: 121a7800 and w0, w0, #0xffffffdf
|
||
9e48: 12001c00 and w0, w0, #0xff
|
||
9e4c: 7101601f cmp w0, #0x58
|
||
9e50: 54fff801 b.ne 9d50 <_strtol_l.part.0+0x60> // b.any
|
||
9e54: 394004c5 ldrb w5, [x6, #1]
|
||
9e58: d280020a mov x10, #0x10 // #16
|
||
9e5c: 910008c6 add x6, x6, #0x2
|
||
9e60: 2a0a03e3 mov w3, w10
|
||
9e64: 17ffffbe b 9d5c <_strtol_l.part.0+0x6c>
|
||
9e68: aa0003eb mov x11, x0
|
||
9e6c: 17ffffec b 9e1c <_strtol_l.part.0+0x12c>
|
||
9e70: d280010a mov x10, #0x8 // #8
|
||
9e74: 2a0a03e3 mov w3, w10
|
||
9e78: 17ffffb9 b 9d5c <_strtol_l.part.0+0x6c>
|
||
9e7c: d503201f nop
|
||
|
||
0000000000009e80 <_strtol_r>:
|
||
9e80: 7100907f cmp w3, #0x24
|
||
9e84: 7a419864 ccmp w3, #0x1, #0x4, ls // ls = plast
|
||
9e88: 54000040 b.eq 9e90 <_strtol_r+0x10> // b.none
|
||
9e8c: 17ffff99 b 9cf0 <_strtol_l.part.0>
|
||
9e90: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
9e94: 910003fd mov x29, sp
|
||
9e98: 9400020a bl a6c0 <__errno>
|
||
9e9c: 528002c1 mov w1, #0x16 // #22
|
||
9ea0: b9000001 str w1, [x0]
|
||
9ea4: d2800000 mov x0, #0x0 // #0
|
||
9ea8: a8c17bfd ldp x29, x30, [sp], #16
|
||
9eac: d65f03c0 ret
|
||
|
||
0000000000009eb0 <strtol_l>:
|
||
9eb0: 7100905f cmp w2, #0x24
|
||
9eb4: 7a419844 ccmp w2, #0x1, #0x4, ls // ls = plast
|
||
9eb8: 540000e0 b.eq 9ed4 <strtol_l+0x24> // b.none
|
||
9ebc: f0000004 adrp x4, c000 <IpcTestNull+0x6e8>
|
||
9ec0: 2a0203e3 mov w3, w2
|
||
9ec4: aa0103e2 mov x2, x1
|
||
9ec8: aa0003e1 mov x1, x0
|
||
9ecc: f9409880 ldr x0, [x4, #304]
|
||
9ed0: 17ffff88 b 9cf0 <_strtol_l.part.0>
|
||
9ed4: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
9ed8: 910003fd mov x29, sp
|
||
9edc: 940001f9 bl a6c0 <__errno>
|
||
9ee0: 528002c1 mov w1, #0x16 // #22
|
||
9ee4: b9000001 str w1, [x0]
|
||
9ee8: d2800000 mov x0, #0x0 // #0
|
||
9eec: a8c17bfd ldp x29, x30, [sp], #16
|
||
9ef0: d65f03c0 ret
|
||
9ef4: d503201f nop
|
||
9ef8: d503201f nop
|
||
9efc: d503201f nop
|
||
|
||
0000000000009f00 <strtol>:
|
||
9f00: 7100905f cmp w2, #0x24
|
||
9f04: 7a419844 ccmp w2, #0x1, #0x4, ls // ls = plast
|
||
9f08: 540000e0 b.eq 9f24 <strtol+0x24> // b.none
|
||
9f0c: f0000004 adrp x4, c000 <IpcTestNull+0x6e8>
|
||
9f10: 2a0203e3 mov w3, w2
|
||
9f14: aa0103e2 mov x2, x1
|
||
9f18: aa0003e1 mov x1, x0
|
||
9f1c: f9409880 ldr x0, [x4, #304]
|
||
9f20: 17ffff74 b 9cf0 <_strtol_l.part.0>
|
||
9f24: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
9f28: 910003fd mov x29, sp
|
||
9f2c: 940001e5 bl a6c0 <__errno>
|
||
9f30: 528002c1 mov w1, #0x16 // #22
|
||
9f34: b9000001 str w1, [x0]
|
||
9f38: d2800000 mov x0, #0x0 // #0
|
||
9f3c: a8c17bfd ldp x29, x30, [sp], #16
|
||
9f40: d65f03c0 ret
|
||
9f44: d503201f nop
|
||
9f48: d503201f nop
|
||
9f4c: d503201f nop
|
||
|
||
0000000000009f50 <__swbuf_r>:
|
||
9f50: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
9f54: 910003fd mov x29, sp
|
||
9f58: a90153f3 stp x19, x20, [sp, #16]
|
||
9f5c: 2a0103f4 mov w20, w1
|
||
9f60: aa0203f3 mov x19, x2
|
||
9f64: a9025bf5 stp x21, x22, [sp, #32]
|
||
9f68: aa0003f5 mov x21, x0
|
||
9f6c: b4000060 cbz x0, 9f78 <__swbuf_r+0x28>
|
||
9f70: b9405001 ldr w1, [x0, #80]
|
||
9f74: 340007e1 cbz w1, a070 <__swbuf_r+0x120>
|
||
9f78: 79c02260 ldrsh w0, [x19, #16]
|
||
9f7c: b9402a61 ldr w1, [x19, #40]
|
||
9f80: b9000e61 str w1, [x19, #12]
|
||
9f84: 12003c02 and w2, w0, #0xffff
|
||
9f88: 361803e0 tbz w0, #3, a004 <__swbuf_r+0xb4>
|
||
9f8c: f9400e61 ldr x1, [x19, #24]
|
||
9f90: b40003a1 cbz x1, a004 <__swbuf_r+0xb4>
|
||
9f94: 12001e96 and w22, w20, #0xff
|
||
9f98: 12001e94 and w20, w20, #0xff
|
||
9f9c: 36680482 tbz w2, #13, a02c <__swbuf_r+0xdc>
|
||
9fa0: f9400260 ldr x0, [x19]
|
||
9fa4: b9402262 ldr w2, [x19, #32]
|
||
9fa8: cb010001 sub x1, x0, x1
|
||
9fac: 6b01005f cmp w2, w1
|
||
9fb0: 5400052d b.le a054 <__swbuf_r+0x104>
|
||
9fb4: 11000421 add w1, w1, #0x1
|
||
9fb8: b9400e62 ldr w2, [x19, #12]
|
||
9fbc: 91000403 add x3, x0, #0x1
|
||
9fc0: f9000263 str x3, [x19]
|
||
9fc4: 51000442 sub w2, w2, #0x1
|
||
9fc8: b9000e62 str w2, [x19, #12]
|
||
9fcc: 39000016 strb w22, [x0]
|
||
9fd0: b9402260 ldr w0, [x19, #32]
|
||
9fd4: 6b01001f cmp w0, w1
|
||
9fd8: 54000500 b.eq a078 <__swbuf_r+0x128> // b.none
|
||
9fdc: 71002a9f cmp w20, #0xa
|
||
9fe0: 79402260 ldrh w0, [x19, #16]
|
||
9fe4: 1a9f17e1 cset w1, eq // eq = none
|
||
9fe8: 6a00003f tst w1, w0
|
||
9fec: 54000461 b.ne a078 <__swbuf_r+0x128> // b.any
|
||
9ff0: 2a1403e0 mov w0, w20
|
||
9ff4: a94153f3 ldp x19, x20, [sp, #16]
|
||
9ff8: a9425bf5 ldp x21, x22, [sp, #32]
|
||
9ffc: a8c37bfd ldp x29, x30, [sp], #48
|
||
a000: d65f03c0 ret
|
||
a004: aa1303e1 mov x1, x19
|
||
a008: aa1503e0 mov x0, x21
|
||
a00c: 97ffeef9 bl 5bf0 <__swsetup_r>
|
||
a010: 350003c0 cbnz w0, a088 <__swbuf_r+0x138>
|
||
a014: 79c02260 ldrsh w0, [x19, #16]
|
||
a018: 12001e96 and w22, w20, #0xff
|
||
a01c: 12001e94 and w20, w20, #0xff
|
||
a020: 12003c02 and w2, w0, #0xffff
|
||
a024: f9400e61 ldr x1, [x19, #24]
|
||
a028: 376ffbc2 tbnz w2, #13, 9fa0 <__swbuf_r+0x50>
|
||
a02c: b940ae62 ldr w2, [x19, #172]
|
||
a030: 32130000 orr w0, w0, #0x2000
|
||
a034: 79002260 strh w0, [x19, #16]
|
||
a038: 12127840 and w0, w2, #0xffffdfff
|
||
a03c: b900ae60 str w0, [x19, #172]
|
||
a040: f9400260 ldr x0, [x19]
|
||
a044: b9402262 ldr w2, [x19, #32]
|
||
a048: cb010001 sub x1, x0, x1
|
||
a04c: 6b01005f cmp w2, w1
|
||
a050: 54fffb2c b.gt 9fb4 <__swbuf_r+0x64>
|
||
a054: aa1303e1 mov x1, x19
|
||
a058: aa1503e0 mov x0, x21
|
||
a05c: 97ffeff5 bl 6030 <_fflush_r>
|
||
a060: 35000140 cbnz w0, a088 <__swbuf_r+0x138>
|
||
a064: 52800021 mov w1, #0x1 // #1
|
||
a068: f9400260 ldr x0, [x19]
|
||
a06c: 17ffffd3 b 9fb8 <__swbuf_r+0x68>
|
||
a070: 97fff0f0 bl 6430 <__sinit>
|
||
a074: 17ffffc1 b 9f78 <__swbuf_r+0x28>
|
||
a078: aa1303e1 mov x1, x19
|
||
a07c: aa1503e0 mov x0, x21
|
||
a080: 97ffefec bl 6030 <_fflush_r>
|
||
a084: 34fffb60 cbz w0, 9ff0 <__swbuf_r+0xa0>
|
||
a088: 12800014 mov w20, #0xffffffff // #-1
|
||
a08c: 17ffffd9 b 9ff0 <__swbuf_r+0xa0>
|
||
|
||
000000000000a090 <__swbuf>:
|
||
a090: d0000003 adrp x3, c000 <IpcTestNull+0x6e8>
|
||
a094: aa0103e2 mov x2, x1
|
||
a098: 2a0003e1 mov w1, w0
|
||
a09c: f9409860 ldr x0, [x3, #304]
|
||
a0a0: 17ffffac b 9f50 <__swbuf_r>
|
||
a0a4: d503201f nop
|
||
a0a8: d503201f nop
|
||
a0ac: d503201f nop
|
||
|
||
000000000000a0b0 <_wcsnrtombs_l>:
|
||
a0b0: a9b87bfd stp x29, x30, [sp, #-128]!
|
||
a0b4: f10000bf cmp x5, #0x0
|
||
a0b8: 910003fd mov x29, sp
|
||
a0bc: a90153f3 stp x19, x20, [sp, #16]
|
||
a0c0: aa0003f3 mov x19, x0
|
||
a0c4: 91057000 add x0, x0, #0x15c
|
||
a0c8: a9025bf5 stp x21, x22, [sp, #32]
|
||
a0cc: aa0103f4 mov x20, x1
|
||
a0d0: aa0203f5 mov x21, x2
|
||
a0d4: a90363f7 stp x23, x24, [sp, #48]
|
||
a0d8: aa0603f6 mov x22, x6
|
||
a0dc: 9a850017 csel x23, x0, x5, eq // eq = none
|
||
a0e0: a9046bf9 stp x25, x26, [sp, #64]
|
||
a0e4: a90573fb stp x27, x28, [sp, #80]
|
||
a0e8: f940005c ldr x28, [x2]
|
||
a0ec: b4000901 cbz x1, a20c <_wcsnrtombs_l+0x15c>
|
||
a0f0: aa0403fa mov x26, x4
|
||
a0f4: b4000a84 cbz x4, a244 <_wcsnrtombs_l+0x194>
|
||
a0f8: d1000478 sub x24, x3, #0x1
|
||
a0fc: b4000a43 cbz x3, a244 <_wcsnrtombs_l+0x194>
|
||
a100: d280001b mov x27, #0x0 // #0
|
||
a104: f90037f4 str x20, [sp, #104]
|
||
a108: 1400000a b a130 <_wcsnrtombs_l+0x80>
|
||
a10c: b50003d4 cbnz x20, a184 <_wcsnrtombs_l+0xd4>
|
||
a110: b8404780 ldr w0, [x28], #4
|
||
a114: 34000640 cbz w0, a1dc <_wcsnrtombs_l+0x12c>
|
||
a118: eb1a011f cmp x8, x26
|
||
a11c: 54000982 b.cs a24c <_wcsnrtombs_l+0x19c> // b.hs, b.nlast
|
||
a120: d1000718 sub x24, x24, #0x1
|
||
a124: aa0803fb mov x27, x8
|
||
a128: b100071f cmn x24, #0x1
|
||
a12c: 540001c0 b.eq a164 <_wcsnrtombs_l+0xb4> // b.none
|
||
a130: b9400382 ldr w2, [x28]
|
||
a134: aa1703e3 mov x3, x23
|
||
a138: f94072c4 ldr x4, [x22, #224]
|
||
a13c: 9101c3e1 add x1, sp, #0x70
|
||
a140: aa1303e0 mov x0, x19
|
||
a144: f94002f9 ldr x25, [x23]
|
||
a148: d63f0080 blr x4
|
||
a14c: 3100041f cmn w0, #0x1
|
||
a150: 54000620 b.eq a214 <_wcsnrtombs_l+0x164> // b.none
|
||
a154: 8b20c368 add x8, x27, w0, sxtw
|
||
a158: eb1a011f cmp x8, x26
|
||
a15c: 54fffd89 b.ls a10c <_wcsnrtombs_l+0x5c> // b.plast
|
||
a160: f90002f9 str x25, [x23]
|
||
a164: aa1b03e0 mov x0, x27
|
||
a168: a94153f3 ldp x19, x20, [sp, #16]
|
||
a16c: a9425bf5 ldp x21, x22, [sp, #32]
|
||
a170: a94363f7 ldp x23, x24, [sp, #48]
|
||
a174: a9446bf9 ldp x25, x26, [sp, #64]
|
||
a178: a94573fb ldp x27, x28, [sp, #80]
|
||
a17c: a8c87bfd ldp x29, x30, [sp], #128
|
||
a180: d65f03c0 ret
|
||
a184: 7100001f cmp w0, #0x0
|
||
a188: 5400020d b.le a1c8 <_wcsnrtombs_l+0x118>
|
||
a18c: f94037e1 ldr x1, [sp, #104]
|
||
a190: 11000402 add w2, w0, #0x1
|
||
a194: d2800027 mov x7, #0x1 // #1
|
||
a198: d1000421 sub x1, x1, #0x1
|
||
a19c: d503201f nop
|
||
a1a0: 9101c3e3 add x3, sp, #0x70
|
||
a1a4: 8b070069 add x9, x3, x7
|
||
a1a8: 385ff129 ldurb w9, [x9, #-1]
|
||
a1ac: 38276829 strb w9, [x1, x7]
|
||
a1b0: 910004e7 add x7, x7, #0x1
|
||
a1b4: eb0200ff cmp x7, x2
|
||
a1b8: 54ffff41 b.ne a1a0 <_wcsnrtombs_l+0xf0> // b.any
|
||
a1bc: f94037e1 ldr x1, [sp, #104]
|
||
a1c0: 8b204020 add x0, x1, w0, uxtw
|
||
a1c4: f90037e0 str x0, [sp, #104]
|
||
a1c8: f94002a0 ldr x0, [x21]
|
||
a1cc: 91001000 add x0, x0, #0x4
|
||
a1d0: f90002a0 str x0, [x21]
|
||
a1d4: b8404780 ldr w0, [x28], #4
|
||
a1d8: 35fffa00 cbnz w0, a118 <_wcsnrtombs_l+0x68>
|
||
a1dc: b4000054 cbz x20, a1e4 <_wcsnrtombs_l+0x134>
|
||
a1e0: f90002bf str xzr, [x21]
|
||
a1e4: b90002ff str wzr, [x23]
|
||
a1e8: d100051b sub x27, x8, #0x1
|
||
a1ec: aa1b03e0 mov x0, x27
|
||
a1f0: a94153f3 ldp x19, x20, [sp, #16]
|
||
a1f4: a9425bf5 ldp x21, x22, [sp, #32]
|
||
a1f8: a94363f7 ldp x23, x24, [sp, #48]
|
||
a1fc: a9446bf9 ldp x25, x26, [sp, #64]
|
||
a200: a94573fb ldp x27, x28, [sp, #80]
|
||
a204: a8c87bfd ldp x29, x30, [sp], #128
|
||
a208: d65f03c0 ret
|
||
a20c: 9280001a mov x26, #0xffffffffffffffff // #-1
|
||
a210: 17ffffba b a0f8 <_wcsnrtombs_l+0x48>
|
||
a214: 52801140 mov w0, #0x8a // #138
|
||
a218: b9000260 str w0, [x19]
|
||
a21c: b90002ff str wzr, [x23]
|
||
a220: 9280001b mov x27, #0xffffffffffffffff // #-1
|
||
a224: aa1b03e0 mov x0, x27
|
||
a228: a94153f3 ldp x19, x20, [sp, #16]
|
||
a22c: a9425bf5 ldp x21, x22, [sp, #32]
|
||
a230: a94363f7 ldp x23, x24, [sp, #48]
|
||
a234: a9446bf9 ldp x25, x26, [sp, #64]
|
||
a238: a94573fb ldp x27, x28, [sp, #80]
|
||
a23c: a8c87bfd ldp x29, x30, [sp], #128
|
||
a240: d65f03c0 ret
|
||
a244: d280001b mov x27, #0x0 // #0
|
||
a248: 17ffffc7 b a164 <_wcsnrtombs_l+0xb4>
|
||
a24c: aa0803fb mov x27, x8
|
||
a250: 17ffffc5 b a164 <_wcsnrtombs_l+0xb4>
|
||
a254: d503201f nop
|
||
a258: d503201f nop
|
||
a25c: d503201f nop
|
||
|
||
000000000000a260 <_wcsnrtombs_r>:
|
||
a260: d0000000 adrp x0, c000 <IpcTestNull+0x6e8>
|
||
a264: f0000006 adrp x6, d000 <__malloc_av_+0x780>
|
||
a268: 910300c6 add x6, x6, #0xc0
|
||
a26c: f9409800 ldr x0, [x0, #304]
|
||
a270: 17ffff90 b a0b0 <_wcsnrtombs_l>
|
||
a274: d503201f nop
|
||
a278: d503201f nop
|
||
a27c: d503201f nop
|
||
|
||
000000000000a280 <wcsnrtombs>:
|
||
a280: d0000006 adrp x6, c000 <IpcTestNull+0x6e8>
|
||
a284: aa0003e8 mov x8, x0
|
||
a288: aa0103e7 mov x7, x1
|
||
a28c: aa0203e5 mov x5, x2
|
||
a290: f94098c0 ldr x0, [x6, #304]
|
||
a294: aa0303e6 mov x6, x3
|
||
a298: aa0803e1 mov x1, x8
|
||
a29c: aa0503e3 mov x3, x5
|
||
a2a0: aa0703e2 mov x2, x7
|
||
a2a4: aa0403e5 mov x5, x4
|
||
a2a8: aa0603e4 mov x4, x6
|
||
a2ac: f0000006 adrp x6, d000 <__malloc_av_+0x780>
|
||
a2b0: 910300c6 add x6, x6, #0xc0
|
||
a2b4: 17ffff7f b a0b0 <_wcsnrtombs_l>
|
||
a2b8: d503201f nop
|
||
a2bc: d503201f nop
|
||
|
||
000000000000a2c0 <_wctomb_r>:
|
||
a2c0: f0000004 adrp x4, d000 <__malloc_av_+0x780>
|
||
a2c4: f940d084 ldr x4, [x4, #416]
|
||
a2c8: aa0403f0 mov x16, x4
|
||
a2cc: d61f0200 br x16
|
||
|
||
000000000000a2d0 <__ascii_wctomb>:
|
||
a2d0: aa0003e3 mov x3, x0
|
||
a2d4: b4000141 cbz x1, a2fc <__ascii_wctomb+0x2c>
|
||
a2d8: 7103fc5f cmp w2, #0xff
|
||
a2dc: 54000088 b.hi a2ec <__ascii_wctomb+0x1c> // b.pmore
|
||
a2e0: 52800020 mov w0, #0x1 // #1
|
||
a2e4: 39000022 strb w2, [x1]
|
||
a2e8: d65f03c0 ret
|
||
a2ec: 52801141 mov w1, #0x8a // #138
|
||
a2f0: 12800000 mov w0, #0xffffffff // #-1
|
||
a2f4: b9000061 str w1, [x3]
|
||
a2f8: d65f03c0 ret
|
||
a2fc: 52800000 mov w0, #0x0 // #0
|
||
a300: d65f03c0 ret
|
||
a304: d503201f nop
|
||
a308: d503201f nop
|
||
a30c: d503201f nop
|
||
|
||
000000000000a310 <__utf8_wctomb>:
|
||
a310: aa0003e3 mov x3, x0
|
||
a314: b40004e1 cbz x1, a3b0 <__utf8_wctomb+0xa0>
|
||
a318: 7101fc5f cmp w2, #0x7f
|
||
a31c: 54000349 b.ls a384 <__utf8_wctomb+0x74> // b.plast
|
||
a320: 51020040 sub w0, w2, #0x80
|
||
a324: 711dfc1f cmp w0, #0x77f
|
||
a328: 54000349 b.ls a390 <__utf8_wctomb+0x80> // b.plast
|
||
a32c: 51200044 sub w4, w2, #0x800
|
||
a330: 529effe0 mov w0, #0xf7ff // #63487
|
||
a334: 6b00009f cmp w4, w0
|
||
a338: 54000409 b.ls a3b8 <__utf8_wctomb+0xa8> // b.plast
|
||
a33c: 51404044 sub w4, w2, #0x10, lsl #12
|
||
a340: 12bffe00 mov w0, #0xfffff // #1048575
|
||
a344: 6b00009f cmp w4, w0
|
||
a348: 540004e8 b.hi a3e4 <__utf8_wctomb+0xd4> // b.pmore
|
||
a34c: 53127c45 lsr w5, w2, #18
|
||
a350: d34c4444 ubfx x4, x2, #12, #6
|
||
a354: d3462c43 ubfx x3, x2, #6, #6
|
||
a358: 12001442 and w2, w2, #0x3f
|
||
a35c: 321c6ca5 orr w5, w5, #0xfffffff0
|
||
a360: 32196084 orr w4, w4, #0xffffff80
|
||
a364: 32196063 orr w3, w3, #0xffffff80
|
||
a368: 32196042 orr w2, w2, #0xffffff80
|
||
a36c: 52800080 mov w0, #0x4 // #4
|
||
a370: 39000025 strb w5, [x1]
|
||
a374: 39000424 strb w4, [x1, #1]
|
||
a378: 39000823 strb w3, [x1, #2]
|
||
a37c: 39000c22 strb w2, [x1, #3]
|
||
a380: d65f03c0 ret
|
||
a384: 52800020 mov w0, #0x1 // #1
|
||
a388: 39000022 strb w2, [x1]
|
||
a38c: d65f03c0 ret
|
||
a390: 53067c43 lsr w3, w2, #6
|
||
a394: 12001442 and w2, w2, #0x3f
|
||
a398: 321a6463 orr w3, w3, #0xffffffc0
|
||
a39c: 32196042 orr w2, w2, #0xffffff80
|
||
a3a0: 52800040 mov w0, #0x2 // #2
|
||
a3a4: 39000023 strb w3, [x1]
|
||
a3a8: 39000422 strb w2, [x1, #1]
|
||
a3ac: d65f03c0 ret
|
||
a3b0: 52800000 mov w0, #0x0 // #0
|
||
a3b4: d65f03c0 ret
|
||
a3b8: 530c7c44 lsr w4, w2, #12
|
||
a3bc: d3462c43 ubfx x3, x2, #6, #6
|
||
a3c0: 12001442 and w2, w2, #0x3f
|
||
a3c4: 321b6884 orr w4, w4, #0xffffffe0
|
||
a3c8: 32196063 orr w3, w3, #0xffffff80
|
||
a3cc: 32196042 orr w2, w2, #0xffffff80
|
||
a3d0: 52800060 mov w0, #0x3 // #3
|
||
a3d4: 39000024 strb w4, [x1]
|
||
a3d8: 39000423 strb w3, [x1, #1]
|
||
a3dc: 39000822 strb w2, [x1, #2]
|
||
a3e0: d65f03c0 ret
|
||
a3e4: 52801141 mov w1, #0x8a // #138
|
||
a3e8: 12800000 mov w0, #0xffffffff // #-1
|
||
a3ec: b9000061 str w1, [x3]
|
||
a3f0: d65f03c0 ret
|
||
a3f4: d503201f nop
|
||
a3f8: d503201f nop
|
||
a3fc: d503201f nop
|
||
|
||
000000000000a400 <__sjis_wctomb>:
|
||
a400: aa0003e5 mov x5, x0
|
||
a404: 12001c44 and w4, w2, #0xff
|
||
a408: d3483c43 ubfx x3, x2, #8, #8
|
||
a40c: b4000301 cbz x1, a46c <__sjis_wctomb+0x6c>
|
||
a410: 34000283 cbz w3, a460 <__sjis_wctomb+0x60>
|
||
a414: 1101fc60 add w0, w3, #0x7f
|
||
a418: 11008063 add w3, w3, #0x20
|
||
a41c: 12001c00 and w0, w0, #0xff
|
||
a420: 12001c63 and w3, w3, #0xff
|
||
a424: 7100781f cmp w0, #0x1e
|
||
a428: 7a4f8860 ccmp w3, #0xf, #0x0, hi // hi = pmore
|
||
a42c: 54000248 b.hi a474 <__sjis_wctomb+0x74> // b.pmore
|
||
a430: 51010080 sub w0, w4, #0x40
|
||
a434: 51020084 sub w4, w4, #0x80
|
||
a438: 12001c00 and w0, w0, #0xff
|
||
a43c: 12001c84 and w4, w4, #0xff
|
||
a440: 7100f81f cmp w0, #0x3e
|
||
a444: 52800f80 mov w0, #0x7c // #124
|
||
a448: 7a408080 ccmp w4, w0, #0x0, hi // hi = pmore
|
||
a44c: 54000148 b.hi a474 <__sjis_wctomb+0x74> // b.pmore
|
||
a450: 5ac00442 rev16 w2, w2
|
||
a454: 52800040 mov w0, #0x2 // #2
|
||
a458: 79000022 strh w2, [x1]
|
||
a45c: d65f03c0 ret
|
||
a460: 52800020 mov w0, #0x1 // #1
|
||
a464: 39000024 strb w4, [x1]
|
||
a468: d65f03c0 ret
|
||
a46c: 52800000 mov w0, #0x0 // #0
|
||
a470: d65f03c0 ret
|
||
a474: 52801141 mov w1, #0x8a // #138
|
||
a478: 12800000 mov w0, #0xffffffff // #-1
|
||
a47c: b90000a1 str w1, [x5]
|
||
a480: d65f03c0 ret
|
||
a484: d503201f nop
|
||
a488: d503201f nop
|
||
a48c: d503201f nop
|
||
|
||
000000000000a490 <__eucjp_wctomb>:
|
||
a490: aa0003e4 mov x4, x0
|
||
a494: 12001c43 and w3, w2, #0xff
|
||
a498: d3483c45 ubfx x5, x2, #8, #8
|
||
a49c: b4000421 cbz x1, a520 <__eucjp_wctomb+0x90>
|
||
a4a0: 34000185 cbz w5, a4d0 <__eucjp_wctomb+0x40>
|
||
a4a4: 11017ca0 add w0, w5, #0x5f
|
||
a4a8: 1101c8a6 add w6, w5, #0x72
|
||
a4ac: 12001c00 and w0, w0, #0xff
|
||
a4b0: 12001cc6 and w6, w6, #0xff
|
||
a4b4: 7101741f cmp w0, #0x5d
|
||
a4b8: 7a4188c0 ccmp w6, #0x1, #0x0, hi // hi = pmore
|
||
a4bc: 54000109 b.ls a4dc <__eucjp_wctomb+0x4c> // b.plast
|
||
a4c0: 52801141 mov w1, #0x8a // #138
|
||
a4c4: 12800000 mov w0, #0xffffffff // #-1
|
||
a4c8: b9000081 str w1, [x4]
|
||
a4cc: d65f03c0 ret
|
||
a4d0: 52800020 mov w0, #0x1 // #1
|
||
a4d4: 39000023 strb w3, [x1]
|
||
a4d8: d65f03c0 ret
|
||
a4dc: 11017c66 add w6, w3, #0x5f
|
||
a4e0: 12001cc6 and w6, w6, #0xff
|
||
a4e4: 710174df cmp w6, #0x5d
|
||
a4e8: 54000209 b.ls a528 <__eucjp_wctomb+0x98> // b.plast
|
||
a4ec: 7101741f cmp w0, #0x5d
|
||
a4f0: 54fffe88 b.hi a4c0 <__eucjp_wctomb+0x30> // b.pmore
|
||
a4f4: 32190063 orr w3, w3, #0x80
|
||
a4f8: 11017c60 add w0, w3, #0x5f
|
||
a4fc: 12001c00 and w0, w0, #0xff
|
||
a500: 7101741f cmp w0, #0x5d
|
||
a504: 54fffde8 b.hi a4c0 <__eucjp_wctomb+0x30> // b.pmore
|
||
a508: 12800e02 mov w2, #0xffffff8f // #-113
|
||
a50c: 52800060 mov w0, #0x3 // #3
|
||
a510: 39000022 strb w2, [x1]
|
||
a514: 39000425 strb w5, [x1, #1]
|
||
a518: 39000823 strb w3, [x1, #2]
|
||
a51c: d65f03c0 ret
|
||
a520: 52800000 mov w0, #0x0 // #0
|
||
a524: d65f03c0 ret
|
||
a528: 5ac00442 rev16 w2, w2
|
||
a52c: 52800040 mov w0, #0x2 // #2
|
||
a530: 79000022 strh w2, [x1]
|
||
a534: d65f03c0 ret
|
||
a538: d503201f nop
|
||
a53c: d503201f nop
|
||
|
||
000000000000a540 <__jis_wctomb>:
|
||
a540: aa0003e6 mov x6, x0
|
||
a544: 12001c45 and w5, w2, #0xff
|
||
a548: d3483c44 ubfx x4, x2, #8, #8
|
||
a54c: b40004c1 cbz x1, a5e4 <__jis_wctomb+0xa4>
|
||
a550: 34000304 cbz w4, a5b0 <__jis_wctomb+0x70>
|
||
a554: 51008484 sub w4, w4, #0x21
|
||
a558: 12001c84 and w4, w4, #0xff
|
||
a55c: 7101749f cmp w4, #0x5d
|
||
a560: 54000468 b.hi a5ec <__jis_wctomb+0xac> // b.pmore
|
||
a564: 510084a5 sub w5, w5, #0x21
|
||
a568: 12001ca5 and w5, w5, #0xff
|
||
a56c: 710174bf cmp w5, #0x5d
|
||
a570: 540003e8 b.hi a5ec <__jis_wctomb+0xac> // b.pmore
|
||
a574: b9400064 ldr w4, [x3]
|
||
a578: 52800040 mov w0, #0x2 // #2
|
||
a57c: 35000144 cbnz w4, a5a4 <__jis_wctomb+0x64>
|
||
a580: aa0103e4 mov x4, x1
|
||
a584: 52800020 mov w0, #0x1 // #1
|
||
a588: b9000060 str w0, [x3]
|
||
a58c: 52848365 mov w5, #0x241b // #9243
|
||
a590: 52800843 mov w3, #0x42 // #66
|
||
a594: 528000a0 mov w0, #0x5 // #5
|
||
a598: 78003485 strh w5, [x4], #3
|
||
a59c: 39000823 strb w3, [x1, #2]
|
||
a5a0: aa0403e1 mov x1, x4
|
||
a5a4: 5ac00442 rev16 w2, w2
|
||
a5a8: 79000022 strh w2, [x1]
|
||
a5ac: d65f03c0 ret
|
||
a5b0: b9400062 ldr w2, [x3]
|
||
a5b4: 52800020 mov w0, #0x1 // #1
|
||
a5b8: 34000122 cbz w2, a5dc <__jis_wctomb+0x9c>
|
||
a5bc: aa0103e2 mov x2, x1
|
||
a5c0: b900007f str wzr, [x3]
|
||
a5c4: 52850364 mov w4, #0x281b // #10267
|
||
a5c8: 52800843 mov w3, #0x42 // #66
|
||
a5cc: 52800080 mov w0, #0x4 // #4
|
||
a5d0: 78003444 strh w4, [x2], #3
|
||
a5d4: 39000823 strb w3, [x1, #2]
|
||
a5d8: aa0203e1 mov x1, x2
|
||
a5dc: 39000025 strb w5, [x1]
|
||
a5e0: d65f03c0 ret
|
||
a5e4: 52800020 mov w0, #0x1 // #1
|
||
a5e8: d65f03c0 ret
|
||
a5ec: 52801141 mov w1, #0x8a // #138
|
||
a5f0: 12800000 mov w0, #0xffffffff // #-1
|
||
a5f4: b90000c1 str w1, [x6]
|
||
a5f8: d65f03c0 ret
|
||
a5fc: d503201f nop
|
||
|
||
000000000000a600 <_write_r>:
|
||
a600: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
a604: 910003fd mov x29, sp
|
||
a608: a90153f3 stp x19, x20, [sp, #16]
|
||
a60c: f0000014 adrp x20, d000 <__malloc_av_+0x780>
|
||
a610: aa0003f3 mov x19, x0
|
||
a614: 2a0103e0 mov w0, w1
|
||
a618: aa0203e1 mov x1, x2
|
||
a61c: b905da9f str wzr, [x20, #1496]
|
||
a620: aa0303e2 mov x2, x3
|
||
a624: 97ffe1bf bl 2d20 <_write>
|
||
a628: 93407c01 sxtw x1, w0
|
||
a62c: 3100041f cmn w0, #0x1
|
||
a630: 540000a0 b.eq a644 <_write_r+0x44> // b.none
|
||
a634: aa0103e0 mov x0, x1
|
||
a638: a94153f3 ldp x19, x20, [sp, #16]
|
||
a63c: a8c27bfd ldp x29, x30, [sp], #32
|
||
a640: d65f03c0 ret
|
||
a644: b945da80 ldr w0, [x20, #1496]
|
||
a648: 34ffff60 cbz w0, a634 <_write_r+0x34>
|
||
a64c: b9000260 str w0, [x19]
|
||
a650: aa0103e0 mov x0, x1
|
||
a654: a94153f3 ldp x19, x20, [sp, #16]
|
||
a658: a8c27bfd ldp x29, x30, [sp], #32
|
||
a65c: d65f03c0 ret
|
||
|
||
000000000000a660 <_close_r>:
|
||
a660: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
a664: 910003fd mov x29, sp
|
||
a668: a90153f3 stp x19, x20, [sp, #16]
|
||
a66c: f0000014 adrp x20, d000 <__malloc_av_+0x780>
|
||
a670: aa0003f3 mov x19, x0
|
||
a674: b905da9f str wzr, [x20, #1496]
|
||
a678: 2a0103e0 mov w0, w1
|
||
a67c: 97ffe1ad bl 2d30 <_close>
|
||
a680: 3100041f cmn w0, #0x1
|
||
a684: 54000080 b.eq a694 <_close_r+0x34> // b.none
|
||
a688: a94153f3 ldp x19, x20, [sp, #16]
|
||
a68c: a8c27bfd ldp x29, x30, [sp], #32
|
||
a690: d65f03c0 ret
|
||
a694: b945da81 ldr w1, [x20, #1496]
|
||
a698: 34ffff81 cbz w1, a688 <_close_r+0x28>
|
||
a69c: b9000261 str w1, [x19]
|
||
a6a0: a94153f3 ldp x19, x20, [sp, #16]
|
||
a6a4: a8c27bfd ldp x29, x30, [sp], #32
|
||
a6a8: d65f03c0 ret
|
||
a6ac: d503201f nop
|
||
|
||
000000000000a6b0 <__set_ctype>:
|
||
a6b0: b0000001 adrp x1, b000 <pow10.0+0x80>
|
||
a6b4: 911fa021 add x1, x1, #0x7e8
|
||
a6b8: f9007c01 str x1, [x0, #248]
|
||
a6bc: d65f03c0 ret
|
||
|
||
000000000000a6c0 <__errno>:
|
||
a6c0: d0000000 adrp x0, c000 <IpcTestNull+0x6e8>
|
||
a6c4: f9409800 ldr x0, [x0, #304]
|
||
a6c8: d65f03c0 ret
|
||
a6cc: d503201f nop
|
||
|
||
000000000000a6d0 <_fclose_r.part.0>:
|
||
a6d0: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
a6d4: 910003fd mov x29, sp
|
||
a6d8: a90153f3 stp x19, x20, [sp, #16]
|
||
a6dc: aa0103f3 mov x19, x1
|
||
a6e0: f90013f5 str x21, [sp, #32]
|
||
a6e4: aa0003f5 mov x21, x0
|
||
a6e8: 97ffedc6 bl 5e00 <__sflush_r>
|
||
a6ec: 2a0003f4 mov w20, w0
|
||
a6f0: f9402a62 ldr x2, [x19, #80]
|
||
a6f4: b40000c2 cbz x2, a70c <_fclose_r.part.0+0x3c>
|
||
a6f8: f9401a61 ldr x1, [x19, #48]
|
||
a6fc: aa1503e0 mov x0, x21
|
||
a700: d63f0040 blr x2
|
||
a704: 7100001f cmp w0, #0x0
|
||
a708: 5a9fa294 csinv w20, w20, wzr, ge // ge = tcont
|
||
a70c: 79402260 ldrh w0, [x19, #16]
|
||
a710: 373802c0 tbnz w0, #7, a768 <_fclose_r.part.0+0x98>
|
||
a714: f9402e61 ldr x1, [x19, #88]
|
||
a718: b40000e1 cbz x1, a734 <_fclose_r.part.0+0x64>
|
||
a71c: 9101d260 add x0, x19, #0x74
|
||
a720: eb00003f cmp x1, x0
|
||
a724: 54000060 b.eq a730 <_fclose_r.part.0+0x60> // b.none
|
||
a728: aa1503e0 mov x0, x21
|
||
a72c: 97fff019 bl 6790 <_free_r>
|
||
a730: f9002e7f str xzr, [x19, #88]
|
||
a734: f9403e61 ldr x1, [x19, #120]
|
||
a738: b4000081 cbz x1, a748 <_fclose_r.part.0+0x78>
|
||
a73c: aa1503e0 mov x0, x21
|
||
a740: 97fff014 bl 6790 <_free_r>
|
||
a744: f9003e7f str xzr, [x19, #120]
|
||
a748: 97ffef3e bl 6440 <__sfp_lock_acquire>
|
||
a74c: 7900227f strh wzr, [x19, #16]
|
||
a750: 97ffef40 bl 6450 <__sfp_lock_release>
|
||
a754: 2a1403e0 mov w0, w20
|
||
a758: a94153f3 ldp x19, x20, [sp, #16]
|
||
a75c: f94013f5 ldr x21, [sp, #32]
|
||
a760: a8c37bfd ldp x29, x30, [sp], #48
|
||
a764: d65f03c0 ret
|
||
a768: f9400e61 ldr x1, [x19, #24]
|
||
a76c: aa1503e0 mov x0, x21
|
||
a770: 97fff008 bl 6790 <_free_r>
|
||
a774: 17ffffe8 b a714 <_fclose_r.part.0+0x44>
|
||
a778: d503201f nop
|
||
a77c: d503201f nop
|
||
|
||
000000000000a780 <_fclose_r>:
|
||
a780: b4000301 cbz x1, a7e0 <_fclose_r+0x60>
|
||
a784: a9bd7bfd stp x29, x30, [sp, #-48]!
|
||
a788: 910003fd mov x29, sp
|
||
a78c: f9000bf4 str x20, [sp, #16]
|
||
a790: aa0003f4 mov x20, x0
|
||
a794: b4000060 cbz x0, a7a0 <_fclose_r+0x20>
|
||
a798: b9405002 ldr w2, [x0, #80]
|
||
a79c: 34000162 cbz w2, a7c8 <_fclose_r+0x48>
|
||
a7a0: 79c02020 ldrsh w0, [x1, #16]
|
||
a7a4: 350000a0 cbnz w0, a7b8 <_fclose_r+0x38>
|
||
a7a8: 52800000 mov w0, #0x0 // #0
|
||
a7ac: f9400bf4 ldr x20, [sp, #16]
|
||
a7b0: a8c37bfd ldp x29, x30, [sp], #48
|
||
a7b4: d65f03c0 ret
|
||
a7b8: aa1403e0 mov x0, x20
|
||
a7bc: f9400bf4 ldr x20, [sp, #16]
|
||
a7c0: a8c37bfd ldp x29, x30, [sp], #48
|
||
a7c4: 17ffffc3 b a6d0 <_fclose_r.part.0>
|
||
a7c8: f90017e1 str x1, [sp, #40]
|
||
a7cc: 97ffef19 bl 6430 <__sinit>
|
||
a7d0: f94017e1 ldr x1, [sp, #40]
|
||
a7d4: 79c02020 ldrsh w0, [x1, #16]
|
||
a7d8: 34fffe80 cbz w0, a7a8 <_fclose_r+0x28>
|
||
a7dc: 17fffff7 b a7b8 <_fclose_r+0x38>
|
||
a7e0: 52800000 mov w0, #0x0 // #0
|
||
a7e4: d65f03c0 ret
|
||
a7e8: d503201f nop
|
||
a7ec: d503201f nop
|
||
|
||
000000000000a7f0 <fclose>:
|
||
a7f0: b4000340 cbz x0, a858 <fclose+0x68>
|
||
a7f4: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
a7f8: 910003fd mov x29, sp
|
||
a7fc: a90153f3 stp x19, x20, [sp, #16]
|
||
a800: aa0003f3 mov x19, x0
|
||
a804: d0000000 adrp x0, c000 <IpcTestNull+0x6e8>
|
||
a808: f9409814 ldr x20, [x0, #304]
|
||
a80c: b4000074 cbz x20, a818 <fclose+0x28>
|
||
a810: b9405280 ldr w0, [x20, #80]
|
||
a814: 34000180 cbz w0, a844 <fclose+0x54>
|
||
a818: 79c02260 ldrsh w0, [x19, #16]
|
||
a81c: 350000a0 cbnz w0, a830 <fclose+0x40>
|
||
a820: 52800000 mov w0, #0x0 // #0
|
||
a824: a94153f3 ldp x19, x20, [sp, #16]
|
||
a828: a8c27bfd ldp x29, x30, [sp], #32
|
||
a82c: d65f03c0 ret
|
||
a830: aa1303e1 mov x1, x19
|
||
a834: aa1403e0 mov x0, x20
|
||
a838: a94153f3 ldp x19, x20, [sp, #16]
|
||
a83c: a8c27bfd ldp x29, x30, [sp], #32
|
||
a840: 17ffffa4 b a6d0 <_fclose_r.part.0>
|
||
a844: aa1403e0 mov x0, x20
|
||
a848: 97ffeefa bl 6430 <__sinit>
|
||
a84c: 79c02260 ldrsh w0, [x19, #16]
|
||
a850: 34fffe80 cbz w0, a820 <fclose+0x30>
|
||
a854: 17fffff7 b a830 <fclose+0x40>
|
||
a858: 52800000 mov w0, #0x0 // #0
|
||
a85c: d65f03c0 ret
|
||
|
||
000000000000a860 <_fstat_r>:
|
||
a860: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
a864: 910003fd mov x29, sp
|
||
a868: a90153f3 stp x19, x20, [sp, #16]
|
||
a86c: f0000014 adrp x20, d000 <__malloc_av_+0x780>
|
||
a870: aa0003f3 mov x19, x0
|
||
a874: b905da9f str wzr, [x20, #1496]
|
||
a878: 2a0103e0 mov w0, w1
|
||
a87c: aa0203e1 mov x1, x2
|
||
a880: 97ffe130 bl 2d40 <_fstat>
|
||
a884: 3100041f cmn w0, #0x1
|
||
a888: 54000080 b.eq a898 <_fstat_r+0x38> // b.none
|
||
a88c: a94153f3 ldp x19, x20, [sp, #16]
|
||
a890: a8c27bfd ldp x29, x30, [sp], #32
|
||
a894: d65f03c0 ret
|
||
a898: b945da81 ldr w1, [x20, #1496]
|
||
a89c: 34ffff81 cbz w1, a88c <_fstat_r+0x2c>
|
||
a8a0: b9000261 str w1, [x19]
|
||
a8a4: a94153f3 ldp x19, x20, [sp, #16]
|
||
a8a8: a8c27bfd ldp x29, x30, [sp], #32
|
||
a8ac: d65f03c0 ret
|
||
|
||
000000000000a8b0 <_findenv_r>:
|
||
a8b0: a9bb7bfd stp x29, x30, [sp, #-80]!
|
||
a8b4: 910003fd mov x29, sp
|
||
a8b8: a90363f7 stp x23, x24, [sp, #48]
|
||
a8bc: f0000017 adrp x23, d000 <__malloc_av_+0x780>
|
||
a8c0: aa0103f8 mov x24, x1
|
||
a8c4: a90153f3 stp x19, x20, [sp, #16]
|
||
a8c8: a9025bf5 stp x21, x22, [sp, #32]
|
||
a8cc: aa0203f5 mov x21, x2
|
||
a8d0: aa0003f6 mov x22, x0
|
||
a8d4: 94000103 bl ace0 <__env_lock>
|
||
a8d8: f94136f4 ldr x20, [x23, #616]
|
||
a8dc: b40003f4 cbz x20, a958 <_findenv_r+0xa8>
|
||
a8e0: 39400303 ldrb w3, [x24]
|
||
a8e4: aa1803f3 mov x19, x24
|
||
a8e8: 7100f47f cmp w3, #0x3d
|
||
a8ec: 7a401864 ccmp w3, #0x0, #0x4, ne // ne = any
|
||
a8f0: 540000c0 b.eq a908 <_findenv_r+0x58> // b.none
|
||
a8f4: d503201f nop
|
||
a8f8: 38401e63 ldrb w3, [x19, #1]!
|
||
a8fc: 7100f47f cmp w3, #0x3d
|
||
a900: 7a401864 ccmp w3, #0x0, #0x4, ne // ne = any
|
||
a904: 54ffffa1 b.ne a8f8 <_findenv_r+0x48> // b.any
|
||
a908: 7100f47f cmp w3, #0x3d
|
||
a90c: 54000260 b.eq a958 <_findenv_r+0xa8> // b.none
|
||
a910: f9400280 ldr x0, [x20]
|
||
a914: cb180273 sub x19, x19, x24
|
||
a918: b4000200 cbz x0, a958 <_findenv_r+0xa8>
|
||
a91c: 93407e73 sxtw x19, w19
|
||
a920: f90023f9 str x25, [sp, #64]
|
||
a924: d503201f nop
|
||
a928: aa1303e2 mov x2, x19
|
||
a92c: aa1803e1 mov x1, x24
|
||
a930: 9400007b bl ab1c <strncmp>
|
||
a934: 350000c0 cbnz w0, a94c <_findenv_r+0x9c>
|
||
a938: f9400280 ldr x0, [x20]
|
||
a93c: 8b130019 add x25, x0, x19
|
||
a940: 38736800 ldrb w0, [x0, x19]
|
||
a944: 7100f41f cmp w0, #0x3d
|
||
a948: 54000180 b.eq a978 <_findenv_r+0xc8> // b.none
|
||
a94c: f8408e80 ldr x0, [x20, #8]!
|
||
a950: b5fffec0 cbnz x0, a928 <_findenv_r+0x78>
|
||
a954: f94023f9 ldr x25, [sp, #64]
|
||
a958: aa1603e0 mov x0, x22
|
||
a95c: 940000e5 bl acf0 <__env_unlock>
|
||
a960: d2800000 mov x0, #0x0 // #0
|
||
a964: a94153f3 ldp x19, x20, [sp, #16]
|
||
a968: a9425bf5 ldp x21, x22, [sp, #32]
|
||
a96c: a94363f7 ldp x23, x24, [sp, #48]
|
||
a970: a8c57bfd ldp x29, x30, [sp], #80
|
||
a974: d65f03c0 ret
|
||
a978: f94136e1 ldr x1, [x23, #616]
|
||
a97c: aa1603e0 mov x0, x22
|
||
a980: cb010281 sub x1, x20, x1
|
||
a984: 9343fc21 asr x1, x1, #3
|
||
a988: b90002a1 str w1, [x21]
|
||
a98c: 940000d9 bl acf0 <__env_unlock>
|
||
a990: 91000720 add x0, x25, #0x1
|
||
a994: a94153f3 ldp x19, x20, [sp, #16]
|
||
a998: a9425bf5 ldp x21, x22, [sp, #32]
|
||
a99c: a94363f7 ldp x23, x24, [sp, #48]
|
||
a9a0: f94023f9 ldr x25, [sp, #64]
|
||
a9a4: a8c57bfd ldp x29, x30, [sp], #80
|
||
a9a8: d65f03c0 ret
|
||
a9ac: d503201f nop
|
||
|
||
000000000000a9b0 <_getenv_r>:
|
||
a9b0: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
a9b4: 910003fd mov x29, sp
|
||
a9b8: 910073e2 add x2, sp, #0x1c
|
||
a9bc: 97ffffbd bl a8b0 <_findenv_r>
|
||
a9c0: a8c27bfd ldp x29, x30, [sp], #32
|
||
a9c4: d65f03c0 ret
|
||
a9c8: d503201f nop
|
||
a9cc: d503201f nop
|
||
|
||
000000000000a9d0 <_isatty_r>:
|
||
a9d0: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
a9d4: 910003fd mov x29, sp
|
||
a9d8: a90153f3 stp x19, x20, [sp, #16]
|
||
a9dc: f0000014 adrp x20, d000 <__malloc_av_+0x780>
|
||
a9e0: aa0003f3 mov x19, x0
|
||
a9e4: b905da9f str wzr, [x20, #1496]
|
||
a9e8: 2a0103e0 mov w0, w1
|
||
a9ec: 97ffe0d9 bl 2d50 <_isatty>
|
||
a9f0: 3100041f cmn w0, #0x1
|
||
a9f4: 54000080 b.eq aa04 <_isatty_r+0x34> // b.none
|
||
a9f8: a94153f3 ldp x19, x20, [sp, #16]
|
||
a9fc: a8c27bfd ldp x29, x30, [sp], #32
|
||
aa00: d65f03c0 ret
|
||
aa04: b945da81 ldr w1, [x20, #1496]
|
||
aa08: 34ffff81 cbz w1, a9f8 <_isatty_r+0x28>
|
||
aa0c: b9000261 str w1, [x19]
|
||
aa10: a94153f3 ldp x19, x20, [sp, #16]
|
||
aa14: a8c27bfd ldp x29, x30, [sp], #32
|
||
aa18: d65f03c0 ret
|
||
aa1c: d503201f nop
|
||
|
||
000000000000aa20 <_lseek_r>:
|
||
aa20: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
aa24: 910003fd mov x29, sp
|
||
aa28: a90153f3 stp x19, x20, [sp, #16]
|
||
aa2c: f0000014 adrp x20, d000 <__malloc_av_+0x780>
|
||
aa30: aa0003f3 mov x19, x0
|
||
aa34: b905da9f str wzr, [x20, #1496]
|
||
aa38: 2a0103e0 mov w0, w1
|
||
aa3c: aa0203e1 mov x1, x2
|
||
aa40: 2a0303e2 mov w2, w3
|
||
aa44: 97ffe0c7 bl 2d60 <_lseek>
|
||
aa48: b100041f cmn x0, #0x1
|
||
aa4c: 54000080 b.eq aa5c <_lseek_r+0x3c> // b.none
|
||
aa50: a94153f3 ldp x19, x20, [sp, #16]
|
||
aa54: a8c27bfd ldp x29, x30, [sp], #32
|
||
aa58: d65f03c0 ret
|
||
aa5c: b945da81 ldr w1, [x20, #1496]
|
||
aa60: 34ffff81 cbz w1, aa50 <_lseek_r+0x30>
|
||
aa64: b9000261 str w1, [x19]
|
||
aa68: a94153f3 ldp x19, x20, [sp, #16]
|
||
aa6c: a8c27bfd ldp x29, x30, [sp], #32
|
||
aa70: d65f03c0 ret
|
||
aa74: d503201f nop
|
||
aa78: d503201f nop
|
||
aa7c: d503201f nop
|
||
|
||
000000000000aa80 <_read_r>:
|
||
aa80: a9be7bfd stp x29, x30, [sp, #-32]!
|
||
aa84: 910003fd mov x29, sp
|
||
aa88: a90153f3 stp x19, x20, [sp, #16]
|
||
aa8c: f0000014 adrp x20, d000 <__malloc_av_+0x780>
|
||
aa90: aa0003f3 mov x19, x0
|
||
aa94: 2a0103e0 mov w0, w1
|
||
aa98: aa0203e1 mov x1, x2
|
||
aa9c: b905da9f str wzr, [x20, #1496]
|
||
aaa0: aa0303e2 mov x2, x3
|
||
aaa4: 97ffe0b3 bl 2d70 <_read>
|
||
aaa8: 93407c01 sxtw x1, w0
|
||
aaac: 3100041f cmn w0, #0x1
|
||
aab0: 540000a0 b.eq aac4 <_read_r+0x44> // b.none
|
||
aab4: aa0103e0 mov x0, x1
|
||
aab8: a94153f3 ldp x19, x20, [sp, #16]
|
||
aabc: a8c27bfd ldp x29, x30, [sp], #32
|
||
aac0: d65f03c0 ret
|
||
aac4: b945da80 ldr w0, [x20, #1496]
|
||
aac8: 34ffff60 cbz w0, aab4 <_read_r+0x34>
|
||
aacc: b9000260 str w0, [x19]
|
||
aad0: aa0103e0 mov x0, x1
|
||
aad4: a94153f3 ldp x19, x20, [sp, #16]
|
||
aad8: a8c27bfd ldp x29, x30, [sp], #32
|
||
aadc: d65f03c0 ret
|
||
aae0: d503201f nop
|
||
aae4: d503201f nop
|
||
aae8: d503201f nop
|
||
aaec: d503201f nop
|
||
aaf0: d503201f nop
|
||
aaf4: d503201f nop
|
||
aaf8: d503201f nop
|
||
aafc: d503201f nop
|
||
ab00: d503201f nop
|
||
ab04: d503201f nop
|
||
ab08: d503201f nop
|
||
ab0c: d503201f nop
|
||
ab10: d503201f nop
|
||
ab14: d503201f nop
|
||
ab18: d503201f nop
|
||
|
||
000000000000ab1c <strncmp>:
|
||
ab1c: b4000d82 cbz x2, accc <strncmp+0x1b0>
|
||
ab20: ca010008 eor x8, x0, x1
|
||
ab24: b200c3eb mov x11, #0x101010101010101 // #72340172838076673
|
||
ab28: f240091f tst x8, #0x7
|
||
ab2c: 9240080e and x14, x0, #0x7
|
||
ab30: 54000681 b.ne ac00 <strncmp+0xe4> // b.any
|
||
ab34: b500040e cbnz x14, abb4 <strncmp+0x98>
|
||
ab38: d100044d sub x13, x2, #0x1
|
||
ab3c: d343fdad lsr x13, x13, #3
|
||
ab40: f8408403 ldr x3, [x0], #8
|
||
ab44: f8408424 ldr x4, [x1], #8
|
||
ab48: f10005ad subs x13, x13, #0x1
|
||
ab4c: cb0b0068 sub x8, x3, x11
|
||
ab50: b200d869 orr x9, x3, #0x7f7f7f7f7f7f7f7f
|
||
ab54: ca040066 eor x6, x3, x4
|
||
ab58: da9f50cf csinv x15, x6, xzr, pl // pl = nfrst
|
||
ab5c: ea290105 bics x5, x8, x9
|
||
ab60: fa4009e0 ccmp x15, #0x0, #0x0, eq // eq = none
|
||
ab64: 54fffee0 b.eq ab40 <strncmp+0x24> // b.none
|
||
ab68: b6f8012d tbz x13, #63, ab8c <strncmp+0x70>
|
||
ab6c: f2400842 ands x2, x2, #0x7
|
||
ab70: 540000e0 b.eq ab8c <strncmp+0x70> // b.none
|
||
ab74: d37df042 lsl x2, x2, #3
|
||
ab78: 9280000e mov x14, #0xffffffffffffffff // #-1
|
||
ab7c: 9ac221ce lsl x14, x14, x2
|
||
ab80: 8a2e0063 bic x3, x3, x14
|
||
ab84: 8a2e0084 bic x4, x4, x14
|
||
ab88: aa0e00a5 orr x5, x5, x14
|
||
ab8c: aa0500c7 orr x7, x6, x5
|
||
ab90: dac00ce7 rev x7, x7
|
||
ab94: dac00c63 rev x3, x3
|
||
ab98: dac010ec clz x12, x7
|
||
ab9c: dac00c84 rev x4, x4
|
||
aba0: 9acc2063 lsl x3, x3, x12
|
||
aba4: 9acc2084 lsl x4, x4, x12
|
||
aba8: d378fc63 lsr x3, x3, #56
|
||
abac: cb44e060 sub x0, x3, x4, lsr #56
|
||
abb0: d65f03c0 ret
|
||
abb4: 927df000 and x0, x0, #0xfffffffffffffff8
|
||
abb8: 927df021 and x1, x1, #0xfffffffffffffff8
|
||
abbc: f8408403 ldr x3, [x0], #8
|
||
abc0: cb0e0fea neg x10, x14, lsl #3
|
||
abc4: f8408424 ldr x4, [x1], #8
|
||
abc8: 92800009 mov x9, #0xffffffffffffffff // #-1
|
||
abcc: d100044d sub x13, x2, #0x1
|
||
abd0: 9aca2529 lsr x9, x9, x10
|
||
abd4: 924009aa and x10, x13, #0x7
|
||
abd8: d343fdad lsr x13, x13, #3
|
||
abdc: 8b0e0042 add x2, x2, x14
|
||
abe0: 8b0e014a add x10, x10, x14
|
||
abe4: aa090063 orr x3, x3, x9
|
||
abe8: aa090084 orr x4, x4, x9
|
||
abec: 8b4a0dad add x13, x13, x10, lsr #3
|
||
abf0: 17ffffd6 b ab48 <strncmp+0x2c>
|
||
abf4: d503201f nop
|
||
abf8: d503201f nop
|
||
abfc: d503201f nop
|
||
ac00: f100405f cmp x2, #0x10
|
||
ac04: 54000122 b.cs ac28 <strncmp+0x10c> // b.hs, b.nlast
|
||
ac08: 38401403 ldrb w3, [x0], #1
|
||
ac0c: 38401424 ldrb w4, [x1], #1
|
||
ac10: f1000442 subs x2, x2, #0x1
|
||
ac14: 7a418860 ccmp w3, #0x1, #0x0, hi // hi = pmore
|
||
ac18: 7a442060 ccmp w3, w4, #0x0, cs // cs = hs, nlast
|
||
ac1c: 54ffff60 b.eq ac08 <strncmp+0xec> // b.none
|
||
ac20: cb040060 sub x0, x3, x4
|
||
ac24: d65f03c0 ret
|
||
ac28: d343fc4d lsr x13, x2, #3
|
||
ac2c: b400018e cbz x14, ac5c <strncmp+0x140>
|
||
ac30: cb0e03ee neg x14, x14
|
||
ac34: 924009ce and x14, x14, #0x7
|
||
ac38: cb0e0042 sub x2, x2, x14
|
||
ac3c: d343fc4d lsr x13, x2, #3
|
||
ac40: 38401403 ldrb w3, [x0], #1
|
||
ac44: 38401424 ldrb w4, [x1], #1
|
||
ac48: 7100047f cmp w3, #0x1
|
||
ac4c: 7a442060 ccmp w3, w4, #0x0, cs // cs = hs, nlast
|
||
ac50: 54fffe81 b.ne ac20 <strncmp+0x104> // b.any
|
||
ac54: f10005ce subs x14, x14, #0x1
|
||
ac58: 54ffff48 b.hi ac40 <strncmp+0x124> // b.pmore
|
||
ac5c: d280010e mov x14, #0x8 // #8
|
||
ac60: f10005ad subs x13, x13, #0x1
|
||
ac64: 540001c3 b.cc ac9c <strncmp+0x180> // b.lo, b.ul, b.last
|
||
ac68: 927d2029 and x9, x1, #0xff8
|
||
ac6c: d27d2129 eor x9, x9, #0xff8
|
||
ac70: b4fffe89 cbz x9, ac40 <strncmp+0x124>
|
||
ac74: f8408403 ldr x3, [x0], #8
|
||
ac78: f8408424 ldr x4, [x1], #8
|
||
ac7c: cb0b0068 sub x8, x3, x11
|
||
ac80: b200d869 orr x9, x3, #0x7f7f7f7f7f7f7f7f
|
||
ac84: ca040066 eor x6, x3, x4
|
||
ac88: ea290105 bics x5, x8, x9
|
||
ac8c: fa4008c0 ccmp x6, #0x0, #0x0, eq // eq = none
|
||
ac90: 54fff7e1 b.ne ab8c <strncmp+0x70> // b.any
|
||
ac94: f10005ad subs x13, x13, #0x1
|
||
ac98: 54fffe85 b.pl ac68 <strncmp+0x14c> // b.nfrst
|
||
ac9c: 92400842 and x2, x2, #0x7
|
||
aca0: b4fff762 cbz x2, ab8c <strncmp+0x70>
|
||
aca4: d1002000 sub x0, x0, #0x8
|
||
aca8: d1002021 sub x1, x1, #0x8
|
||
acac: f8626803 ldr x3, [x0, x2]
|
||
acb0: f8626824 ldr x4, [x1, x2]
|
||
acb4: cb0b0068 sub x8, x3, x11
|
||
acb8: b200d869 orr x9, x3, #0x7f7f7f7f7f7f7f7f
|
||
acbc: ca040066 eor x6, x3, x4
|
||
acc0: ea290105 bics x5, x8, x9
|
||
acc4: fa4008c0 ccmp x6, #0x0, #0x0, eq // eq = none
|
||
acc8: 54fff621 b.ne ab8c <strncmp+0x70> // b.any
|
||
accc: d2800000 mov x0, #0x0 // #0
|
||
acd0: d65f03c0 ret
|
||
acd4: d503201f nop
|
||
acd8: d503201f nop
|
||
acdc: d503201f nop
|
||
|
||
000000000000ace0 <__env_lock>:
|
||
ace0: d65f03c0 ret
|
||
ace4: d503201f nop
|
||
ace8: d503201f nop
|
||
acec: d503201f nop
|
||
|
||
000000000000acf0 <__env_unlock>:
|
||
acf0: d65f03c0 ret
|
||
|
||
Disassembly of section .init:
|
||
|
||
0000000000400000 <_init>:
|
||
400000: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
400004: a9bf73fb stp x27, x28, [sp, #-16]!
|
||
400008: a9bf6bf9 stp x25, x26, [sp, #-16]!
|
||
40000c: a9bf63f7 stp x23, x24, [sp, #-16]!
|
||
400010: a9bf5bf5 stp x21, x22, [sp, #-16]!
|
||
400014: a9bf53f3 stp x19, x20, [sp, #-16]!
|
||
400018: a8c153f3 ldp x19, x20, [sp], #16
|
||
40001c: a8c15bf5 ldp x21, x22, [sp], #16
|
||
400020: a8c163f7 ldp x23, x24, [sp], #16
|
||
400024: a8c16bf9 ldp x25, x26, [sp], #16
|
||
400028: a8c173fb ldp x27, x28, [sp], #16
|
||
40002c: a8c17bfd ldp x29, x30, [sp], #16
|
||
400030: d65f03c0 ret
|
||
|
||
Disassembly of section .fini:
|
||
|
||
000000000000acf4 <_fini>:
|
||
acf4: a9bf7bfd stp x29, x30, [sp, #-16]!
|
||
acf8: a9bf73fb stp x27, x28, [sp, #-16]!
|
||
acfc: a9bf6bf9 stp x25, x26, [sp, #-16]!
|
||
ad00: a9bf63f7 stp x23, x24, [sp, #-16]!
|
||
ad04: a9bf5bf5 stp x21, x22, [sp, #-16]!
|
||
ad08: a9bf53f3 stp x19, x20, [sp, #-16]!
|
||
ad0c: a8c153f3 ldp x19, x20, [sp], #16
|
||
ad10: a8c15bf5 ldp x21, x22, [sp], #16
|
||
ad14: a8c163f7 ldp x23, x24, [sp], #16
|
||
ad18: a8c16bf9 ldp x25, x26, [sp], #16
|
||
ad1c: a8c173fb ldp x27, x28, [sp], #16
|
||
ad20: a8c17bfd ldp x29, x30, [sp], #16
|
||
ad24: d65f03c0 ret
|