1 .cpu arm7tdmi 2 .arch armv4t 3 .fpu softvfp 4 .eabi_attribute 20, 1 5 .eabi_attribute 21, 1 6 .eabi_attribute 23, 3 7 .eabi_attribute 24, 1 8 .eabi_attribute 25, 1 9 .eabi_attribute 26, 1 10 .eabi_attribute 30, 4 11 .eabi_attribute 34, 0 12 .eabi_attribute 18, 4 13 .file "string.c" 14 .text 15 .Ltext0: 16 .cfi_sections .debug_frame 17 .file 1 "lib/string.c" 18 .section .text.strnlen,"ax",%progbits 19 .align 2 20 .global strnlen 21 .syntax unified 22 .arm 24 strnlen: 25 .LVL0: 26 .LFB2: 1:lib/string.c **** /* 2:lib/string.c **** * linux/lib/string.c 3:lib/string.c **** * 4:lib/string.c **** * Copyright (C) 1991, 1992 Linus Torvalds 5:lib/string.c **** */ 6:lib/string.c **** 7:lib/string.c **** /* 8:lib/string.c **** * stupid library routines.. The optimized versions should generally be found 9:lib/string.c **** * as inline code in 10:lib/string.c **** * 11:lib/string.c **** * These are buggy as well.. 12:lib/string.c **** * 13:lib/string.c **** * * Fri Jun 25 1999, Ingo Oeser 14:lib/string.c **** * - Added strsep() which will replace strtok() soon (because strsep() is 15:lib/string.c **** * reentrant and should be faster). Use only strsep() in new code, please. 16:lib/string.c **** * 17:lib/string.c **** * * Sat Feb 09 2002, Jason Thomas , 18:lib/string.c **** * Matthew Hawkins 19:lib/string.c **** * - Kissed strtok() goodbye 20:lib/string.c **** */ 21:lib/string.c **** 22:lib/string.c **** #include 23:lib/string.c **** #include 24:lib/string.c **** #include 25:lib/string.c **** 26:lib/string.c **** 27:lib/string.c **** #ifndef __HAVE_ARCH_STRNLEN 28:lib/string.c **** /** 29:lib/string.c **** * strnlen - Find the length of a length-limited string 30:lib/string.c **** * @s: The string to be sized 31:lib/string.c **** * @count: The maximum number of bytes to search 32:lib/string.c **** */ 33:lib/string.c **** size_t strnlen(const char *s, size_t count) 34:lib/string.c **** { 27 .loc 1 34 1 view -0 28 .cfi_startproc 29 @ Function supports interworking. 30 @ args = 0, pretend = 0, frame = 0 31 @ frame_needed = 0, uses_anonymous_args = 0 32 @ link register save eliminated. 35:lib/string.c **** const char *sc; 33 .loc 1 35 2 view .LVU1 36:lib/string.c **** 37:lib/string.c **** for (sc = s; count-- && *sc != '\0'; ++sc) 34 .loc 1 37 2 view .LVU2 35 .loc 1 37 2 is_stmt 0 view .LVU3 36 0000 0020A0E1 mov r2, r0 37 0004 011080E0 add r1, r0, r1 38 .LVL1: 39 .L3: 40 .loc 1 37 23 discriminator 1 view .LVU4 41 0008 010052E1 cmp r2, r1 42 000c 0230A0E1 mov r3, r2 43 .LVL2: 44 .loc 1 37 23 is_stmt 1 discriminator 1 view .LVU5 45 0010 0300000A beq .L4 46 .loc 1 37 23 is_stmt 0 discriminator 3 view .LVU6 47 0014 00C0D3E5 ldrb ip, [r3] @ zero_extendqisi2 48 0018 00005CE3 cmp ip, #0 49 001c 012082E2 add r2, r2, #1 50 .LVL3: 51 .loc 1 37 23 discriminator 3 view .LVU7 52 0020 F8FFFF1A bne .L3 53 .L4: 38:lib/string.c **** /* nothing */; 39:lib/string.c **** return sc - s; 54 .loc 1 39 2 is_stmt 1 view .LVU8 55 .loc 1 39 12 is_stmt 0 view .LVU9 56 0024 000043E0 sub r0, r3, r0 57 .LVL4: 40:lib/string.c **** } 58 .loc 1 40 1 view .LVU10 59 0028 1EFF2FE1 bx lr 60 .cfi_endproc 61 .LFE2: 63 .section .text.strlen,"ax",%progbits 64 .align 2 65 .global strlen 66 .syntax unified 67 .arm 69 strlen: 70 .LVL5: 71 .LFB3: 41:lib/string.c **** #endif 42:lib/string.c **** 43:lib/string.c **** size_t strlen(const char *s) 44:lib/string.c **** { 72 .loc 1 44 1 is_stmt 1 view -0 73 .cfi_startproc 74 @ Function supports interworking. 75 @ args = 0, pretend = 0, frame = 0 76 @ frame_needed = 0, uses_anonymous_args = 0 77 @ link register save eliminated. 45:lib/string.c **** const char *sc; 78 .loc 1 45 2 view .LVU12 46:lib/string.c **** 47:lib/string.c **** for (sc = s; *sc != '\0'; ++sc) 79 .loc 1 47 2 view .LVU13 80 .loc 1 47 2 is_stmt 0 view .LVU14 81 0000 0030A0E1 mov r3, r0 82 .LVL6: 83 .L8: 84 .loc 1 47 2 view .LVU15 85 0004 0320A0E1 mov r2, r3 86 .LVL7: 87 .loc 1 47 19 is_stmt 1 discriminator 1 view .LVU16 88 0008 0010D2E5 ldrb r1, [r2] @ zero_extendqisi2 89 000c 000051E3 cmp r1, #0 90 0010 013083E2 add r3, r3, #1 91 0014 FAFFFF1A bne .L8 48:lib/string.c **** /* nothing */; 49:lib/string.c **** return sc - s; 92 .loc 1 49 2 view .LVU17 50:lib/string.c **** } 93 .loc 1 50 1 is_stmt 0 view .LVU18 94 0018 000042E0 sub r0, r2, r0 95 .LVL8: 96 .loc 1 50 1 view .LVU19 97 001c 1EFF2FE1 bx lr 98 .cfi_endproc 99 .LFE3: 101 .text 102 .Letext0: 103 .file 2 "/usr/lib/gcc/arm-none-eabi/12.2.1/include/stddef.h" DEFINED SYMBOLS *ABS*:00000000 string.c /tmp/ccnifbPB.s:19 .text.strnlen:00000000 $a /tmp/ccnifbPB.s:24 .text.strnlen:00000000 strnlen /tmp/ccnifbPB.s:64 .text.strlen:00000000 $a /tmp/ccnifbPB.s:69 .text.strlen:00000000 strlen NO UNDEFINED SYMBOLS