RTEMS-6
Annotated Report
libstringto
Sun Feb 28 23:53:58 2021
00107dd8 <rtems_string_to_double>:
)
{
double result;
char *end;
if ( !n )
107dd8: 2900 cmp r1, #0
107dda: d044 beq.n 107e66 <rtems_string_to_double+0x8e>
{
107ddc: b570 push {r4, r5, r6, lr}
107dde: 460c mov r4, r1
107de0: ed2d 8b02 vpush {d8}
107de4: b082 sub sp, #8
107de6: 4605 mov r5, r0
107de8: 4616 mov r6, r2
return RTEMS_INVALID_ADDRESS;
errno = 0;
107dea: f005 fdaf bl 10d94c <__errno>
107dee: 2300 movs r3, #0
*n = 0;
107df0: 2200 movs r2, #0
errno = 0;
107df2: 6003 str r3, [r0, #0]
*n = 0;
107df4: 2300 movs r3, #0
107df6: e9c4 2300 strd r2, r3, [r4]
result = strtod( s, &end );
107dfa: a901 add r1, sp, #4
107dfc: 4628 mov r0, r5
107dfe: f007 faa7 bl 10f350 <strtod>
if ( endptr )
*endptr = end;
107e02: 9b01 ldr r3, [sp, #4]
result = strtod( s, &end );
107e04: eeb0 8b40 vmov.f64 d8, d0
if ( endptr )
107e08: b106 cbz r6, 107e0c <rtems_string_to_double+0x34>
*endptr = end;
107e0a: 6033 str r3, [r6, #0]
if ( end == s )
107e0c: 429d cmp r5, r3
return RTEMS_NOT_DEFINED;
107e0e: bf08 it eq
107e10: 200b moveq r0, #11
if ( end == s )
107e12: d007 beq.n 107e24 <rtems_string_to_double+0x4c>
if ( ( errno == ERANGE ) &&
107e14: f005 fd9a bl 10d94c <__errno>
107e18: 6803 ldr r3, [r0, #0]
107e1a: 2b22 cmp r3, #34 ; 0x22
107e1c: d006 beq.n 107e2c <rtems_string_to_double+0x54>
(( result == 0 ) || ( result == HUGE_VAL ) || ( result == -HUGE_VAL )))
return RTEMS_INVALID_NUMBER;
*n = result;
return RTEMS_SUCCESSFUL;
107e1e: 2000 movs r0, #0
*n = result;
107e20: ed84 8b00 vstr d8, [r4]
}
107e24: b002 add sp, #8
107e26: ecbd 8b02 vpop {d8}
107e2a: bd70 pop {r4, r5, r6, pc}
(( result == 0 ) || ( result == HUGE_VAL ) || ( result == -HUGE_VAL )))
107e2c: eddf 1b10 vldr d17, [pc, #64] ; 107e70 <rtems_string_to_double+0x98>
return RTEMS_INVALID_NUMBER;
107e30: 200a movs r0, #10
(( result == 0 ) || ( result == HUGE_VAL ) || ( result == -HUGE_VAL )))
107e32: eddf 0b11 vldr d16, [pc, #68] ; 107e78 <rtems_string_to_double+0xa0>
107e36: eeb5 8b40 vcmp.f64 d8, #0.0
107e3a: eef1 fa10 vmrs APSR_nzcv, fpscr
107e3e: eeb4 8b61 vcmp.f64 d8, d17
107e42: bf0c ite eq
107e44: 2301 moveq r3, #1
107e46: 2300 movne r3, #0
107e48: eef1 fa10 vmrs APSR_nzcv, fpscr
107e4c: eeb4 8b60 vcmp.f64 d8, d16
107e50: bf08 it eq
107e52: f043 0301 orreq.w r3, r3, #1
107e56: eef1 fa10 vmrs APSR_nzcv, fpscr
107e5a: bf48 it mi
107e5c: f043 0301 orrmi.w r3, r3, #1
107e60: 2b00 cmp r3, #0
107e62: d0dc beq.n 107e1e <rtems_string_to_double+0x46> <== ALWAYS TAKEN
107e64: e7de b.n 107e24 <rtems_string_to_double+0x4c>
return RTEMS_INVALID_ADDRESS;
107e66: 2009 movs r0, #9
}
107e68: 4770 bx lr
107e6a: bf00 nop
107e6c: f3af 8000 nop.w <== NOT EXECUTED
107e70: 00000000 .word 0x00000000 <== NOT EXECUTED
107e74: 7ff00000 .word 0x7ff00000 <== NOT EXECUTED
107e78: ffffffff .word 0xffffffff <== NOT EXECUTED
107e7c: ffefffff .word 0xffefffff <== NOT EXECUTED
00107e80 <rtems_string_to_float>:
)
{
float result;
char *end;
if ( !n )
107e80: 2900 cmp r1, #0
107e82: d042 beq.n 107f0a <rtems_string_to_float+0x8a>
{
107e84: b570 push {r4, r5, r6, lr}
107e86: 460c mov r4, r1
107e88: ed2d 8b02 vpush {d8}
107e8c: b082 sub sp, #8
107e8e: 4605 mov r5, r0
107e90: 4616 mov r6, r2
return RTEMS_INVALID_ADDRESS;
errno = 0;
107e92: f005 fd5b bl 10d94c <__errno>
107e96: 2300 movs r3, #0
*n = 0;
result = strtof( s, &end );
107e98: a901 add r1, sp, #4
errno = 0;
107e9a: 6003 str r3, [r0, #0]
*n = 0;
107e9c: 2300 movs r3, #0
107e9e: 6023 str r3, [r4, #0]
result = strtof( s, &end );
107ea0: 4628 mov r0, r5
107ea2: f007 fa65 bl 10f370 <strtof>
if ( endptr )
*endptr = end;
107ea6: 9b01 ldr r3, [sp, #4]
result = strtof( s, &end );
107ea8: eeb0 8a40 vmov.f32 s16, s0
if ( endptr )
107eac: b106 cbz r6, 107eb0 <rtems_string_to_float+0x30>
*endptr = end;
107eae: 6033 str r3, [r6, #0]
if ( end == s )
107eb0: 429d cmp r5, r3
return RTEMS_NOT_DEFINED;
107eb2: bf08 it eq
107eb4: 200b moveq r0, #11
if ( end == s )
107eb6: d007 beq.n 107ec8 <rtems_string_to_float+0x48>
if ( ( errno == ERANGE ) &&
107eb8: f005 fd48 bl 10d94c <__errno>
107ebc: 6803 ldr r3, [r0, #0]
107ebe: 2b22 cmp r3, #34 ; 0x22
107ec0: d006 beq.n 107ed0 <rtems_string_to_float+0x50>
(( result == 0 ) || ( result == HUGE_VALF ) || ( result == -HUGE_VALF )))
return RTEMS_INVALID_NUMBER;
*n = result;
return RTEMS_SUCCESSFUL;
107ec2: 2000 movs r0, #0
*n = result;
107ec4: ed84 8a00 vstr s16, [r4]
}
107ec8: b002 add sp, #8
107eca: ecbd 8b02 vpop {d8}
107ece: bd70 pop {r4, r5, r6, pc}
(( result == 0 ) || ( result == HUGE_VALF ) || ( result == -HUGE_VALF )))
107ed0: ed9f 7a0f vldr s14, [pc, #60] ; 107f10 <rtems_string_to_float+0x90>
return RTEMS_INVALID_NUMBER;
107ed4: 200a movs r0, #10
(( result == 0 ) || ( result == HUGE_VALF ) || ( result == -HUGE_VALF )))
107ed6: eddf 7a0f vldr s15, [pc, #60] ; 107f14 <rtems_string_to_float+0x94>
107eda: eeb5 8a40 vcmp.f32 s16, #0.0
107ede: eef1 fa10 vmrs APSR_nzcv, fpscr
107ee2: eeb4 8a47 vcmp.f32 s16, s14
107ee6: bf0c ite eq
107ee8: 2301 moveq r3, #1
107eea: 2300 movne r3, #0
107eec: eef1 fa10 vmrs APSR_nzcv, fpscr
107ef0: eeb4 8a67 vcmp.f32 s16, s15
107ef4: bf08 it eq
107ef6: f043 0301 orreq.w r3, r3, #1
107efa: eef1 fa10 vmrs APSR_nzcv, fpscr
107efe: bf48 it mi
107f00: f043 0301 orrmi.w r3, r3, #1
107f04: 2b00 cmp r3, #0
107f06: d0dc beq.n 107ec2 <rtems_string_to_float+0x42> <== ALWAYS TAKEN
107f08: e7de b.n 107ec8 <rtems_string_to_float+0x48>
return RTEMS_INVALID_ADDRESS;
107f0a: 2009 movs r0, #9
}
107f0c: 4770 bx lr
107f0e: bf00 nop
107f10: 7f800000 .word 0x7f800000
107f14: ff7fffff .word 0xff7fffff
0010eb30 <rtems_string_to_int>:
)
{
long result;
char *end;
if ( !n )
10eb30: b359 cbz r1, 10eb8a <rtems_string_to_int+0x5a>
{
10eb32: b5f0 push {r4, r5, r6, r7, lr}
10eb34: b083 sub sp, #12
10eb36: 461f mov r7, r3
10eb38: 460c mov r4, r1
10eb3a: 4605 mov r5, r0
10eb3c: 4616 mov r6, r2
return RTEMS_INVALID_ADDRESS;
errno = 0;
10eb3e: f023 feb3 bl 1328a8 <__errno>
10eb42: 2300 movs r3, #0
*n = 0;
result = strtol( s, &end, base );
10eb44: 463a mov r2, r7
errno = 0;
10eb46: 6003 str r3, [r0, #0]
result = strtol( s, &end, base );
10eb48: a901 add r1, sp, #4
*n = 0;
10eb4a: 6023 str r3, [r4, #0]
result = strtol( s, &end, base );
10eb4c: 4628 mov r0, r5
10eb4e: f031 f963 bl 13fe18 <strtol>
if ( endptr )
*endptr = end;
10eb52: 9b01 ldr r3, [sp, #4]
result = strtol( s, &end, base );
10eb54: 4607 mov r7, r0
if ( endptr )
10eb56: b106 cbz r6, 10eb5a <rtems_string_to_int+0x2a>
*endptr = end;
10eb58: 6033 str r3, [r6, #0]
if ( end == s )
10eb5a: 429d cmp r5, r3
return RTEMS_NOT_DEFINED;
10eb5c: bf08 it eq
10eb5e: 200b moveq r0, #11
if ( end == s )
10eb60: d006 beq.n 10eb70 <rtems_string_to_int+0x40>
if ( ( errno == ERANGE ) &&
10eb62: f023 fea1 bl 1328a8 <__errno>
10eb66: 6803 ldr r3, [r0, #0]
10eb68: 2b22 cmp r3, #34 ; 0x22
10eb6a: d003 beq.n 10eb74 <rtems_string_to_int+0x44>
}
#endif
*n = result;
return RTEMS_SUCCESSFUL;
10eb6c: 2000 movs r0, #0
*n = result;
10eb6e: 6027 str r7, [r4, #0]
}
10eb70: b003 add sp, #12
10eb72: bdf0 pop {r4, r5, r6, r7, pc}
(( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
10eb74: f3c7 031e ubfx r3, r7, #0, #31
10eb78: f06f 4200 mvn.w r2, #2147483648 ; 0x80000000
10eb7c: 2b00 cmp r3, #0
10eb7e: bf18 it ne
10eb80: 4297 cmpne r7, r2
return RTEMS_INVALID_NUMBER;
10eb82: bf08 it eq
10eb84: 200a moveq r0, #10
(( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
10eb86: d1f1 bne.n 10eb6c <rtems_string_to_int+0x3c> <== ALWAYS TAKEN
10eb88: e7f2 b.n 10eb70 <rtems_string_to_int+0x40>
return RTEMS_INVALID_ADDRESS;
10eb8a: 2009 movs r0, #9
}
10eb8c: 4770 bx lr
10eb8e: bf00 nop
00107f78 <rtems_string_to_long>:
)
{
long result;
char *end;
if ( !n )
107f78: b359 cbz r1, 107fd2 <rtems_string_to_long+0x5a>
{
107f7a: b5f0 push {r4, r5, r6, r7, lr}
107f7c: b083 sub sp, #12
107f7e: 461f mov r7, r3
107f80: 460c mov r4, r1
107f82: 4605 mov r5, r0
107f84: 4616 mov r6, r2
return RTEMS_INVALID_ADDRESS;
errno = 0;
107f86: f005 fce1 bl 10d94c <__errno>
107f8a: 2300 movs r3, #0
*n = 0;
result = strtol( s, &end, base );
107f8c: 463a mov r2, r7
errno = 0;
107f8e: 6003 str r3, [r0, #0]
result = strtol( s, &end, base );
107f90: a901 add r1, sp, #4
*n = 0;
107f92: 6023 str r3, [r4, #0]
result = strtol( s, &end, base );
107f94: 4628 mov r0, r5
107f96: f007 facf bl 10f538 <strtol>
if ( endptr )
*endptr = end;
107f9a: 9b01 ldr r3, [sp, #4]
result = strtol( s, &end, base );
107f9c: 4607 mov r7, r0
if ( endptr )
107f9e: b106 cbz r6, 107fa2 <rtems_string_to_long+0x2a>
*endptr = end;
107fa0: 6033 str r3, [r6, #0]
if ( end == s )
107fa2: 429d cmp r5, r3
return RTEMS_NOT_DEFINED;
107fa4: bf08 it eq
107fa6: 200b moveq r0, #11
if ( end == s )
107fa8: d006 beq.n 107fb8 <rtems_string_to_long+0x40>
if ( ( errno == ERANGE ) &&
107faa: f005 fccf bl 10d94c <__errno>
107fae: 6803 ldr r3, [r0, #0]
107fb0: 2b22 cmp r3, #34 ; 0x22
107fb2: d003 beq.n 107fbc <rtems_string_to_long+0x44>
(( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
return RTEMS_INVALID_NUMBER;
*n = result;
return RTEMS_SUCCESSFUL;
107fb4: 2000 movs r0, #0
*n = result;
107fb6: 6027 str r7, [r4, #0]
}
107fb8: b003 add sp, #12
107fba: bdf0 pop {r4, r5, r6, r7, pc}
(( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
107fbc: f3c7 031e ubfx r3, r7, #0, #31
107fc0: f06f 4200 mvn.w r2, #2147483648 ; 0x80000000
107fc4: 2b00 cmp r3, #0
107fc6: bf18 it ne
107fc8: 4297 cmpne r7, r2
return RTEMS_INVALID_NUMBER;
107fca: bf08 it eq
107fcc: 200a moveq r0, #10
(( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
107fce: d1f1 bne.n 107fb4 <rtems_string_to_long+0x3c> <== ALWAYS TAKEN
107fd0: e7f2 b.n 107fb8 <rtems_string_to_long+0x40>
return RTEMS_INVALID_ADDRESS;
107fd2: 2009 movs r0, #9
}
107fd4: 4770 bx lr
107fd6: bf00 nop
00107fd8 <rtems_string_to_long_long>:
)
{
long long result;
char *end;
if ( !n )
107fd8: 2900 cmp r1, #0
107fda: d03c beq.n 108056 <rtems_string_to_long_long+0x7e>
{
107fdc: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
107fe0: b082 sub sp, #8
107fe2: 461f mov r7, r3
107fe4: 460c mov r4, r1
107fe6: 4605 mov r5, r0
107fe8: 4616 mov r6, r2
return RTEMS_INVALID_ADDRESS;
errno = 0;
107fea: f005 fcaf bl 10d94c <__errno>
*n = 0;
107fee: efc0 0010 vmov.i32 d16, #0 ; 0x00000000
errno = 0;
107ff2: 2300 movs r3, #0
107ff4: 6003 str r3, [r0, #0]
result = strtoll( s, &end, base );
107ff6: 463a mov r2, r7
107ff8: a901 add r1, sp, #4
107ffa: 4628 mov r0, r5
*n = 0;
107ffc: edc4 0b00 vstr d16, [r4]
result = strtoll( s, &end, base );
108000: f007 fb66 bl 10f6d0 <strtoll>
if ( endptr )
*endptr = end;
108004: 9b01 ldr r3, [sp, #4]
result = strtoll( s, &end, base );
108006: 4680 mov r8, r0
108008: 460f mov r7, r1
if ( endptr )
10800a: b106 cbz r6, 10800e <rtems_string_to_long_long+0x36>
*endptr = end;
10800c: 6033 str r3, [r6, #0]
if ( end == s )
10800e: 429d cmp r5, r3
return RTEMS_NOT_DEFINED;
108010: bf08 it eq
108012: 200b moveq r0, #11
if ( end == s )
108014: d007 beq.n 108026 <rtems_string_to_long_long+0x4e>
if ( ( errno == ERANGE ) &&
108016: f005 fc99 bl 10d94c <__errno>
10801a: 6803 ldr r3, [r0, #0]
10801c: 2b22 cmp r3, #34 ; 0x22
10801e: d005 beq.n 10802c <rtems_string_to_long_long+0x54>
(( result == 0 ) || ( result == LONG_LONG_MAX ) || ( result == LONG_LONG_MIN )))
return RTEMS_INVALID_NUMBER;
*n = result;
return RTEMS_SUCCESSFUL;
108020: 2000 movs r0, #0
*n = result;
108022: e9c4 8700 strd r8, r7, [r4]
}
108026: b002 add sp, #8
108028: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
(( result == 0 ) || ( result == LONG_LONG_MAX ) || ( result == LONG_LONG_MIN )))
10802c: f027 4300 bic.w r3, r7, #2147483648 ; 0x80000000
108030: f06f 4200 mvn.w r2, #2147483648 ; 0x80000000
108034: ea58 0303 orrs.w r3, r8, r3
return RTEMS_INVALID_NUMBER;
108038: f04f 000a mov.w r0, #10
(( result == 0 ) || ( result == LONG_LONG_MAX ) || ( result == LONG_LONG_MIN )))
10803c: bf0c ite eq
10803e: 2301 moveq r3, #1
108040: 2300 movne r3, #0
108042: 4297 cmp r7, r2
108044: bf08 it eq
108046: f1b8 3fff cmpeq.w r8, #4294967295 ; 0xffffffff
10804a: bf08 it eq
10804c: f043 0301 orreq.w r3, r3, #1
108050: 2b00 cmp r3, #0
108052: d0e5 beq.n 108020 <rtems_string_to_long_long+0x48> <== ALWAYS TAKEN
108054: e7e7 b.n 108026 <rtems_string_to_long_long+0x4e>
return RTEMS_INVALID_ADDRESS;
108056: 2009 movs r0, #9
}
108058: 4770 bx lr
10805a: bf00 nop
0010eb98 <rtems_string_to_unsigned_char>:
)
{
unsigned long result;
char *end;
if ( !n )
10eb98: b349 cbz r1, 10ebee <rtems_string_to_unsigned_char+0x56>
{
10eb9a: b5f0 push {r4, r5, r6, r7, lr}
10eb9c: b083 sub sp, #12
10eb9e: 461f mov r7, r3
10eba0: 460c mov r4, r1
10eba2: 4605 mov r5, r0
10eba4: 4616 mov r6, r2
return RTEMS_INVALID_ADDRESS;
errno = 0;
10eba6: f023 fe7f bl 1328a8 <__errno>
10ebaa: 2300 movs r3, #0
*n = 0;
result = strtoul( s, &end, base );
10ebac: 463a mov r2, r7
errno = 0;
10ebae: 6003 str r3, [r0, #0]
result = strtoul( s, &end, base );
10ebb0: a901 add r1, sp, #4
*n = 0;
10ebb2: 7023 strb r3, [r4, #0]
result = strtoul( s, &end, base );
10ebb4: 4628 mov r0, r5
10ebb6: f031 fab9 bl 14012c <strtoul>
if ( endptr )
*endptr = end;
10ebba: 9b01 ldr r3, [sp, #4]
result = strtoul( s, &end, base );
10ebbc: 4607 mov r7, r0
if ( endptr )
10ebbe: b106 cbz r6, 10ebc2 <rtems_string_to_unsigned_char+0x2a>
*endptr = end;
10ebc0: 6033 str r3, [r6, #0]
if ( end == s )
10ebc2: 429d cmp r5, r3
return RTEMS_NOT_DEFINED;
10ebc4: bf08 it eq
10ebc6: 200b moveq r0, #11
if ( end == s )
10ebc8: d009 beq.n 10ebde <rtems_string_to_unsigned_char+0x46>
if ( ( errno == ERANGE ) &&
10ebca: f023 fe6d bl 1328a8 <__errno>
10ebce: 6803 ldr r3, [r0, #0]
10ebd0: 2b22 cmp r3, #34 ; 0x22
10ebd2: d006 beq.n 10ebe2 <rtems_string_to_unsigned_char+0x4a>
(( result == 0 ) || ( result == ULONG_MAX )))
return RTEMS_INVALID_NUMBER;
#if (UCHAR_MAX < ULONG_MAX)
if ( result > UCHAR_MAX ) {
10ebd4: 2fff cmp r7, #255 ; 0xff
}
#endif
*n = result;
return RTEMS_SUCCESSFUL;
10ebd6: bf9c itt ls
10ebd8: 2000 movls r0, #0
*n = result;
10ebda: 7027 strbls r7, [r4, #0]
if ( result > UCHAR_MAX ) {
10ebdc: d809 bhi.n 10ebf2 <rtems_string_to_unsigned_char+0x5a>
}
10ebde: b003 add sp, #12
10ebe0: bdf0 pop {r4, r5, r6, r7, pc}
(( result == 0 ) || ( result == ULONG_MAX )))
10ebe2: 1e7b subs r3, r7, #1
if ( ( errno == ERANGE ) &&
10ebe4: 3303 adds r3, #3
return RTEMS_INVALID_NUMBER;
10ebe6: bf88 it hi
10ebe8: 200a movhi r0, #10
if ( ( errno == ERANGE ) &&
10ebea: d9f3 bls.n 10ebd4 <rtems_string_to_unsigned_char+0x3c> <== ALWAYS TAKEN
10ebec: e7f7 b.n 10ebde <rtems_string_to_unsigned_char+0x46>
return RTEMS_INVALID_ADDRESS;
10ebee: 2009 movs r0, #9
}
10ebf0: 4770 bx lr
errno = ERANGE;
10ebf2: f023 fe59 bl 1328a8 <__errno>
10ebf6: 2222 movs r2, #34 ; 0x22
10ebf8: 4603 mov r3, r0
10ebfa: 601a str r2, [r3, #0]
return RTEMS_INVALID_NUMBER;
10ebfc: 200a movs r0, #10
10ebfe: e7ee b.n 10ebde <rtems_string_to_unsigned_char+0x46>
001080cc <rtems_string_to_unsigned_int>:
)
{
unsigned long result;
char *end;
if ( !n )
1080cc: b331 cbz r1, 10811c <rtems_string_to_unsigned_int+0x50>
{
1080ce: b5f0 push {r4, r5, r6, r7, lr}
1080d0: b083 sub sp, #12
1080d2: 461f mov r7, r3
1080d4: 460c mov r4, r1
1080d6: 4605 mov r5, r0
1080d8: 4616 mov r6, r2
return RTEMS_INVALID_ADDRESS;
errno = 0;
1080da: f005 fc37 bl 10d94c <__errno>
1080de: 2300 movs r3, #0
*n = 0;
result = strtoul( s, &end, base );
1080e0: 463a mov r2, r7
errno = 0;
1080e2: 6003 str r3, [r0, #0]
result = strtoul( s, &end, base );
1080e4: a901 add r1, sp, #4
*n = 0;
1080e6: 6023 str r3, [r4, #0]
result = strtoul( s, &end, base );
1080e8: 4628 mov r0, r5
1080ea: f007 fb9d bl 10f828 <strtoul>
if ( endptr )
*endptr = end;
1080ee: 9b01 ldr r3, [sp, #4]
result = strtoul( s, &end, base );
1080f0: 4607 mov r7, r0
if ( endptr )
1080f2: b106 cbz r6, 1080f6 <rtems_string_to_unsigned_int+0x2a>
*endptr = end;
1080f4: 6033 str r3, [r6, #0]
if ( end == s )
1080f6: 429d cmp r5, r3
return RTEMS_NOT_DEFINED;
1080f8: bf08 it eq
1080fa: 200b moveq r0, #11
if ( end == s )
1080fc: d006 beq.n 10810c <rtems_string_to_unsigned_int+0x40>
if ( ( errno == ERANGE ) &&
1080fe: f005 fc25 bl 10d94c <__errno>
108102: 6803 ldr r3, [r0, #0]
108104: 2b22 cmp r3, #34 ; 0x22
108106: d003 beq.n 108110 <rtems_string_to_unsigned_int+0x44>
}
#endif
*n = result;
return RTEMS_SUCCESSFUL;
108108: 2000 movs r0, #0
*n = result;
10810a: 6027 str r7, [r4, #0]
}
10810c: b003 add sp, #12
10810e: bdf0 pop {r4, r5, r6, r7, pc}
(( result == 0 ) || ( result == ULONG_MAX )))
108110: 1e7b subs r3, r7, #1
if ( ( errno == ERANGE ) &&
108112: 3303 adds r3, #3
return RTEMS_INVALID_NUMBER;
108114: bf88 it hi
108116: 200a movhi r0, #10
if ( ( errno == ERANGE ) &&
108118: d9f6 bls.n 108108 <rtems_string_to_unsigned_int+0x3c> <== ALWAYS TAKEN
10811a: e7f7 b.n 10810c <rtems_string_to_unsigned_int+0x40>
return RTEMS_INVALID_ADDRESS;
10811c: 2009 movs r0, #9
}
10811e: 4770 bx lr
0010ec00 <rtems_string_to_unsigned_long>:
)
{
unsigned long result;
char *end;
if ( !n )
10ec00: b331 cbz r1, 10ec50 <rtems_string_to_unsigned_long+0x50>
{
10ec02: b5f0 push {r4, r5, r6, r7, lr}
10ec04: b083 sub sp, #12
10ec06: 461f mov r7, r3
10ec08: 460c mov r4, r1
10ec0a: 4605 mov r5, r0
10ec0c: 4616 mov r6, r2
return RTEMS_INVALID_ADDRESS;
errno = 0;
10ec0e: f023 fe4b bl 1328a8 <__errno>
10ec12: 2300 movs r3, #0
*n = 0;
result = strtoul( s, &end, base );
10ec14: 463a mov r2, r7
errno = 0;
10ec16: 6003 str r3, [r0, #0]
result = strtoul( s, &end, base );
10ec18: a901 add r1, sp, #4
*n = 0;
10ec1a: 6023 str r3, [r4, #0]
result = strtoul( s, &end, base );
10ec1c: 4628 mov r0, r5
10ec1e: f031 fa85 bl 14012c <strtoul>
if ( endptr )
*endptr = end;
10ec22: 9b01 ldr r3, [sp, #4]
result = strtoul( s, &end, base );
10ec24: 4607 mov r7, r0
if ( endptr )
10ec26: b106 cbz r6, 10ec2a <rtems_string_to_unsigned_long+0x2a>
*endptr = end;
10ec28: 6033 str r3, [r6, #0]
if ( end == s )
10ec2a: 429d cmp r5, r3
return RTEMS_NOT_DEFINED;
10ec2c: bf08 it eq
10ec2e: 200b moveq r0, #11
if ( end == s )
10ec30: d006 beq.n 10ec40 <rtems_string_to_unsigned_long+0x40>
if ( ( errno == ERANGE ) &&
10ec32: f023 fe39 bl 1328a8 <__errno>
10ec36: 6803 ldr r3, [r0, #0]
10ec38: 2b22 cmp r3, #34 ; 0x22
10ec3a: d003 beq.n 10ec44 <rtems_string_to_unsigned_long+0x44>
(( result == 0 ) || ( result == ULONG_MAX )))
return RTEMS_INVALID_NUMBER;
*n = result;
return RTEMS_SUCCESSFUL;
10ec3c: 2000 movs r0, #0
*n = result;
10ec3e: 6027 str r7, [r4, #0]
}
10ec40: b003 add sp, #12
10ec42: bdf0 pop {r4, r5, r6, r7, pc}
(( result == 0 ) || ( result == ULONG_MAX )))
10ec44: 1e7b subs r3, r7, #1
if ( ( errno == ERANGE ) &&
10ec46: 3303 adds r3, #3
return RTEMS_INVALID_NUMBER;
10ec48: bf88 it hi
10ec4a: 200a movhi r0, #10
if ( ( errno == ERANGE ) &&
10ec4c: d9f6 bls.n 10ec3c <rtems_string_to_unsigned_long+0x3c> <== ALWAYS TAKEN
10ec4e: e7f7 b.n 10ec40 <rtems_string_to_unsigned_long+0x40>
return RTEMS_INVALID_ADDRESS;
10ec50: 2009 movs r0, #9
}
10ec52: 4770 bx lr
00108174 <rtems_string_to_unsigned_long_long>:
)
{
unsigned long long result;
char *end;
if ( !n )
108174: b389 cbz r1, 1081da <rtems_string_to_unsigned_long_long+0x66>
{
108176: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
10817a: b082 sub sp, #8
10817c: 461f mov r7, r3
10817e: 460c mov r4, r1
108180: 4605 mov r5, r0
108182: 4616 mov r6, r2
return RTEMS_INVALID_ADDRESS;
errno = 0;
108184: f005 fbe2 bl 10d94c <__errno>
*n = 0;
108188: efc0 0010 vmov.i32 d16, #0 ; 0x00000000
errno = 0;
10818c: 2300 movs r3, #0
10818e: 6003 str r3, [r0, #0]
result = strtoull( s, &end, base );
108190: 463a mov r2, r7
108192: a901 add r1, sp, #4
108194: 4628 mov r0, r5
*n = 0;
108196: edc4 0b00 vstr d16, [r4]
result = strtoull( s, &end, base );
10819a: f007 fc17 bl 10f9cc <strtoull>
if ( endptr )
*endptr = end;
10819e: 9b01 ldr r3, [sp, #4]
result = strtoull( s, &end, base );
1081a0: 4607 mov r7, r0
1081a2: 4688 mov r8, r1
if ( endptr )
1081a4: b106 cbz r6, 1081a8 <rtems_string_to_unsigned_long_long+0x34>
*endptr = end;
1081a6: 6033 str r3, [r6, #0]
if ( end == s )
1081a8: 429d cmp r5, r3
return RTEMS_NOT_DEFINED;
1081aa: bf08 it eq
1081ac: 200b moveq r0, #11
if ( end == s )
1081ae: d007 beq.n 1081c0 <rtems_string_to_unsigned_long_long+0x4c>
if ( ( errno == ERANGE ) &&
1081b0: f005 fbcc bl 10d94c <__errno>
1081b4: 6803 ldr r3, [r0, #0]
1081b6: 2b22 cmp r3, #34 ; 0x22
1081b8: d005 beq.n 1081c6 <rtems_string_to_unsigned_long_long+0x52>
(( result == 0 ) || ( result == ULONG_LONG_MAX )))
return RTEMS_INVALID_NUMBER;
*n = result;
return RTEMS_SUCCESSFUL;
1081ba: 2000 movs r0, #0
*n = result;
1081bc: e9c4 7800 strd r7, r8, [r4]
}
1081c0: b002 add sp, #8
1081c2: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
(( result == 0 ) || ( result == ULONG_LONG_MAX )))
1081c6: 1e7a subs r2, r7, #1
1081c8: f148 33ff adc.w r3, r8, #4294967295 ; 0xffffffff
if ( ( errno == ERANGE ) &&
1081cc: 3202 adds r2, #2
1081ce: f173 33ff sbcs.w r3, r3, #4294967295 ; 0xffffffff
return RTEMS_INVALID_NUMBER;
1081d2: bf28 it cs
1081d4: 200a movcs r0, #10
if ( ( errno == ERANGE ) &&
1081d6: d3f0 bcc.n 1081ba <rtems_string_to_unsigned_long_long+0x46> <== ALWAYS TAKEN
1081d8: e7f2 b.n 1081c0 <rtems_string_to_unsigned_long_long+0x4c>
return RTEMS_INVALID_ADDRESS;
1081da: 2009 movs r0, #9
}
1081dc: 4770 bx lr
1081de: bf00 nop