RTEMS-5
Annotated Report
libstringto
Sat Apr 11 20:30:45 2020
4000548c <rtems_string_to_double>:
rtems_status_code rtems_string_to_double (
const char *s,
double *n,
char **endptr
)
{
4000548c: 9d e3 bf 90 save %sp, -112, %sp
double result;
char *end;
if ( !n )
40005490: 80 a6 60 00 cmp %i1, 0
40005494: 02 80 00 1a be 400054fc <rtems_string_to_double+0x70>
40005498: 82 10 20 09 mov 9, %g1
return RTEMS_INVALID_ADDRESS;
errno = 0;
4000549c: 40 00 29 37 call 4000f978 <__errno>
400054a0: 01 00 00 00 nop
400054a4: c0 22 00 00 clr [ %o0 ]
*n = 0;
result = strtod( s, &end );
400054a8: 92 07 bf fc add %fp, -4, %o1
*n = 0;
400054ac: c0 26 40 00 clr [ %i1 ]
result = strtod( s, &end );
400054b0: 90 10 00 18 mov %i0, %o0
400054b4: 40 00 30 53 call 40011600 <strtod>
400054b8: c0 26 60 04 clr [ %i1 + 4 ]
if ( endptr )
400054bc: 80 a6 a0 00 cmp %i2, 0
400054c0: 02 80 00 03 be 400054cc <rtems_string_to_double+0x40>
400054c4: c4 07 bf fc ld [ %fp + -4 ], %g2
*endptr = end;
400054c8: c4 26 80 00 st %g2, [ %i2 ]
400054cc: c1 3f bf f0 std %f0, [ %fp + -16 ]
if ( end == s )
400054d0: 80 a6 00 02 cmp %i0, %g2
400054d4: 02 80 00 0a be 400054fc <rtems_string_to_double+0x70>
400054d8: 82 10 20 0b mov 0xb, %g1
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
400054dc: 40 00 29 27 call 4000f978 <__errno>
400054e0: 01 00 00 00 nop
400054e4: c2 02 00 00 ld [ %o0 ], %g1
400054e8: 80 a0 60 22 cmp %g1, 0x22
400054ec: 02 80 00 06 be 40005504 <rtems_string_to_double+0x78>
400054f0: c1 1f bf f0 ldd [ %fp + -16 ], %f0
(( result == 0 ) || ( result == HUGE_VAL ) || ( result == -HUGE_VAL )))
return RTEMS_INVALID_NUMBER;
*n = result;
400054f4: c1 3e 40 00 std %f0, [ %i1 ]
return RTEMS_SUCCESSFUL;
400054f8: 82 10 20 00 clr %g1
}
400054fc: 81 c7 e0 08 ret
40005500: 91 e8 00 01 restore %g0, %g1, %o0
if ( ( errno == ERANGE ) &&
40005504: 03 10 00 56 sethi %hi(0x40015800), %g1
40005508: d1 18 63 48 ldd [ %g1 + 0x348 ], %f8 ! 40015b48 <_rodata_start+0x17a8>
4000550c: 81 a8 0a 48 fcmpd %f0, %f8
40005510: 01 00 00 00 nop
40005514: 13 bf ff fa fbe 400054fc <rtems_string_to_double+0x70>
40005518: 82 10 20 0a mov 0xa, %g1 ! a <_TLS_Alignment+0x9>
(( result == 0 ) || ( result == HUGE_VAL ) || ( result == -HUGE_VAL )))
4000551c: 05 10 00 57 sethi %hi(0x40015c00), %g2
40005520: d1 18 a3 28 ldd [ %g2 + 0x328 ], %f8 ! 40015f28 <rtems_filesystem_null_handlers+0x40>
40005524: 81 a8 0a c8 fcmped %f0, %f8
40005528: 01 00 00 00 nop
4000552c: 0d bf ff f4 fbg 400054fc <rtems_string_to_double+0x70>
40005530: 05 10 00 57 sethi %hi(0x40015c00), %g2
40005534: d1 18 a3 30 ldd [ %g2 + 0x330 ], %f8 ! 40015f30 <rtems_filesystem_null_handlers+0x48>
40005538: 81 a8 0a c8 fcmped %f0, %f8
4000553c: 01 00 00 00 nop
40005540: 09 bf ff ef fbl 400054fc <rtems_string_to_double+0x70>
40005544: 01 00 00 00 nop
*n = result;
40005548: c1 3e 40 00 std %f0, [ %i1 ]
<== NOT EXECUTED
return RTEMS_SUCCESSFUL;
4000554c: 10 bf ff ec b 400054fc <rtems_string_to_double+0x70>
<== NOT EXECUTED
40005550: 82 10 20 00 clr %g1
<== NOT EXECUTED
40005554 <rtems_string_to_float>:
rtems_status_code rtems_string_to_float (
const char *s,
float *n,
char **endptr
)
{
40005554: 9d e3 bf 90 save %sp, -112, %sp
float result;
char *end;
if ( !n )
40005558: 80 a6 60 00 cmp %i1, 0
4000555c: 02 80 00 19 be 400055c0 <rtems_string_to_float+0x6c>
40005560: 82 10 20 09 mov 9, %g1
return RTEMS_INVALID_ADDRESS;
errno = 0;
40005564: 40 00 29 05 call 4000f978 <__errno>
40005568: 01 00 00 00 nop
4000556c: c0 22 00 00 clr [ %o0 ]
*n = 0;
result = strtof( s, &end );
40005570: 92 07 bf fc add %fp, -4, %o1
*n = 0;
40005574: c0 26 40 00 clr [ %i1 ]
result = strtof( s, &end );
40005578: 40 00 30 2a call 40011620 <strtof>
4000557c: 90 10 00 18 mov %i0, %o0
if ( endptr )
40005580: 80 a6 a0 00 cmp %i2, 0
40005584: 02 80 00 03 be 40005590 <rtems_string_to_float+0x3c>
40005588: c4 07 bf fc ld [ %fp + -4 ], %g2
*endptr = end;
4000558c: c4 26 80 00 st %g2, [ %i2 ]
40005590: c1 27 bf f4 st %f0, [ %fp + -12 ]
if ( end == s )
40005594: 80 a6 00 02 cmp %i0, %g2
40005598: 02 80 00 0a be 400055c0 <rtems_string_to_float+0x6c>
4000559c: 82 10 20 0b mov 0xb, %g1
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
400055a0: 40 00 28 f6 call 4000f978 <__errno>
400055a4: 01 00 00 00 nop
400055a8: c2 02 00 00 ld [ %o0 ], %g1
400055ac: 80 a0 60 22 cmp %g1, 0x22
400055b0: 02 80 00 06 be 400055c8 <rtems_string_to_float+0x74>
400055b4: c1 07 bf f4 ld [ %fp + -12 ], %f0
(( result == 0 ) || ( result == HUGE_VALF ) || ( result == -HUGE_VALF )))
return RTEMS_INVALID_NUMBER;
*n = result;
400055b8: c1 26 40 00 st %f0, [ %i1 ]
return RTEMS_SUCCESSFUL;
400055bc: 82 10 20 00 clr %g1
}
400055c0: 81 c7 e0 08 ret
400055c4: 91 e8 00 01 restore %g0, %g1, %o0
if ( ( errno == ERANGE ) &&
400055c8: 03 10 00 56 sethi %hi(0x40015800), %g1
400055cc: d1 00 61 28 ld [ %g1 + 0x128 ], %f8 ! 40015928 <_rodata_start+0x1588>
400055d0: 81 a8 0a 28 fcmps %f0, %f8
400055d4: 01 00 00 00 nop
400055d8: 13 bf ff fa fbe 400055c0 <rtems_string_to_float+0x6c>
400055dc: 82 10 20 0a mov 0xa, %g1 ! a <_TLS_Alignment+0x9>
(( result == 0 ) || ( result == HUGE_VALF ) || ( result == -HUGE_VALF )))
400055e0: 05 10 00 57 sethi %hi(0x40015c00), %g2
400055e4: d1 00 a3 38 ld [ %g2 + 0x338 ], %f8 ! 40015f38 <rtems_filesystem_null_handlers+0x50>
400055e8: 81 a8 0a a8 fcmpes %f0, %f8
400055ec: 01 00 00 00 nop
400055f0: 0d bf ff f4 fbg 400055c0 <rtems_string_to_float+0x6c>
400055f4: 05 10 00 57 sethi %hi(0x40015c00), %g2
400055f8: d1 00 a3 3c ld [ %g2 + 0x33c ], %f8 ! 40015f3c <rtems_filesystem_null_handlers+0x54>
400055fc: 81 a8 0a a8 fcmpes %f0, %f8
40005600: 01 00 00 00 nop
40005604: 09 bf ff ef fbl 400055c0 <rtems_string_to_float+0x6c>
40005608: 01 00 00 00 nop
*n = result;
4000560c: c1 26 40 00 st %f0, [ %i1 ]
<== NOT EXECUTED
return RTEMS_SUCCESSFUL;
40005610: 10 bf ff ec b 400055c0 <rtems_string_to_float+0x6c>
<== NOT EXECUTED
40005614: 82 10 20 00 clr %g1
<== NOT EXECUTED
40005618 <rtems_string_to_int>:
const char *s,
int *n,
char **endptr,
int base
)
{
40005618: 9d e3 bf 98 save %sp, -104, %sp
long result;
char *end;
if ( !n )
4000561c: 80 a6 60 00 cmp %i1, 0
40005620: 02 80 00 1a be 40005688 <rtems_string_to_int+0x70>
40005624: 82 10 20 09 mov 9, %g1
return RTEMS_INVALID_ADDRESS;
errno = 0;
40005628: 40 00 28 d4 call 4000f978 <__errno>
4000562c: 01 00 00 00 nop
40005630: c0 22 00 00 clr [ %o0 ]
*n = 0;
result = strtol( s, &end, base );
40005634: 94 10 00 1b mov %i3, %o2
*n = 0;
40005638: c0 26 40 00 clr [ %i1 ]
result = strtol( s, &end, base );
4000563c: 92 07 bf fc add %fp, -4, %o1
40005640: 40 00 30 c1 call 40011944 <strtol>
40005644: 90 10 00 18 mov %i0, %o0
if ( endptr )
*endptr = end;
40005648: c4 07 bf fc ld [ %fp + -4 ], %g2
if ( endptr )
4000564c: 80 a6 a0 00 cmp %i2, 0
40005650: 02 80 00 03 be 4000565c <rtems_string_to_int+0x44>
40005654: ba 10 00 08 mov %o0, %i5
*endptr = end;
40005658: c4 26 80 00 st %g2, [ %i2 ]
if ( end == s )
4000565c: 80 a6 00 02 cmp %i0, %g2
40005660: 02 80 00 0a be 40005688 <rtems_string_to_int+0x70>
40005664: 82 10 20 0b mov 0xb, %g1
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
40005668: 40 00 28 c4 call 4000f978 <__errno>
4000566c: 01 00 00 00 nop
40005670: c2 02 00 00 ld [ %o0 ], %g1
40005674: 80 a0 60 22 cmp %g1, 0x22
40005678: 02 80 00 06 be 40005690 <rtems_string_to_int+0x78>
4000567c: 03 1f ff ff sethi %hi(0x7ffffc00), %g1
errno = ERANGE;
return RTEMS_INVALID_NUMBER;
}
#endif
*n = result;
40005680: fa 26 40 00 st %i5, [ %i1 ]
return RTEMS_SUCCESSFUL;
40005684: 82 10 20 00 clr %g1
}
40005688: 81 c7 e0 08 ret
4000568c: 91 e8 00 01 restore %g0, %g1, %o0
(( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
40005690: 82 10 63 ff or %g1, 0x3ff, %g1
40005694: 80 8f 40 01 btst %i5, %g1
40005698: 02 80 00 04 be 400056a8 <rtems_string_to_int+0x90>
4000569c: 80 a7 40 01 cmp %i5, %g1
400056a0: 32 bf ff f9 bne,a 40005684 <rtems_string_to_int+0x6c>
<== NEVER TAKEN
400056a4: fa 26 40 00 st %i5, [ %i1 ]
<== NOT EXECUTED
return RTEMS_INVALID_NUMBER;
400056a8: 10 bf ff f8 b 40005688 <rtems_string_to_int+0x70>
400056ac: 82 10 20 0a mov 0xa, %g1
400056b0 <rtems_string_to_long>:
const char *s,
long *n,
char **endptr,
int base
)
{
400056b0: 9d e3 bf 98 save %sp, -104, %sp
long result;
char *end;
if ( !n )
400056b4: 80 a6 60 00 cmp %i1, 0
400056b8: 02 80 00 1a be 40005720 <rtems_string_to_long+0x70>
400056bc: 82 10 20 09 mov 9, %g1
return RTEMS_INVALID_ADDRESS;
errno = 0;
400056c0: 40 00 28 ae call 4000f978 <__errno>
400056c4: 01 00 00 00 nop
400056c8: c0 22 00 00 clr [ %o0 ]
*n = 0;
result = strtol( s, &end, base );
400056cc: 94 10 00 1b mov %i3, %o2
*n = 0;
400056d0: c0 26 40 00 clr [ %i1 ]
result = strtol( s, &end, base );
400056d4: 92 07 bf fc add %fp, -4, %o1
400056d8: 40 00 30 9b call 40011944 <strtol>
400056dc: 90 10 00 18 mov %i0, %o0
if ( endptr )
*endptr = end;
400056e0: c4 07 bf fc ld [ %fp + -4 ], %g2
if ( endptr )
400056e4: 80 a6 a0 00 cmp %i2, 0
400056e8: 02 80 00 03 be 400056f4 <rtems_string_to_long+0x44>
400056ec: ba 10 00 08 mov %o0, %i5
*endptr = end;
400056f0: c4 26 80 00 st %g2, [ %i2 ]
if ( end == s )
400056f4: 80 a6 00 02 cmp %i0, %g2
400056f8: 02 80 00 0a be 40005720 <rtems_string_to_long+0x70>
400056fc: 82 10 20 0b mov 0xb, %g1
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
40005700: 40 00 28 9e call 4000f978 <__errno>
40005704: 01 00 00 00 nop
40005708: c2 02 00 00 ld [ %o0 ], %g1
4000570c: 80 a0 60 22 cmp %g1, 0x22
40005710: 02 80 00 06 be 40005728 <rtems_string_to_long+0x78>
40005714: 03 1f ff ff sethi %hi(0x7ffffc00), %g1
(( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
return RTEMS_INVALID_NUMBER;
*n = result;
40005718: fa 26 40 00 st %i5, [ %i1 ]
return RTEMS_SUCCESSFUL;
4000571c: 82 10 20 00 clr %g1
}
40005720: 81 c7 e0 08 ret
40005724: 91 e8 00 01 restore %g0, %g1, %o0
(( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
40005728: 82 10 63 ff or %g1, 0x3ff, %g1
4000572c: 80 8f 40 01 btst %i5, %g1
40005730: 02 80 00 04 be 40005740 <rtems_string_to_long+0x90>
40005734: 80 a7 40 01 cmp %i5, %g1
40005738: 32 bf ff f9 bne,a 4000571c <rtems_string_to_long+0x6c>
<== NEVER TAKEN
4000573c: fa 26 40 00 st %i5, [ %i1 ]
<== NOT EXECUTED
return RTEMS_INVALID_NUMBER;
40005740: 10 bf ff f8 b 40005720 <rtems_string_to_long+0x70>
40005744: 82 10 20 0a mov 0xa, %g1
40005748 <rtems_string_to_long_long>:
const char *s,
long long *n,
char **endptr,
int base
)
{
40005748: 9d e3 bf 98 save %sp, -104, %sp
long long result;
char *end;
if ( !n )
4000574c: 80 a6 60 00 cmp %i1, 0
40005750: 02 80 00 1d be 400057c4 <rtems_string_to_long_long+0x7c>
40005754: 82 10 20 09 mov 9, %g1
return RTEMS_INVALID_ADDRESS;
errno = 0;
40005758: 40 00 28 88 call 4000f978 <__errno>
4000575c: 01 00 00 00 nop
40005760: c0 22 00 00 clr [ %o0 ]
*n = 0;
result = strtoll( s, &end, base );
40005764: 94 10 00 1b mov %i3, %o2
*n = 0;
40005768: c0 26 40 00 clr [ %i1 ]
result = strtoll( s, &end, base );
4000576c: 92 07 bf fc add %fp, -4, %o1
*n = 0;
40005770: c0 26 60 04 clr [ %i1 + 4 ]
result = strtoll( s, &end, base );
40005774: 40 00 31 24 call 40011c04 <strtoll>
40005778: 90 10 00 18 mov %i0, %o0
if ( endptr )
*endptr = end;
4000577c: c4 07 bf fc ld [ %fp + -4 ], %g2
result = strtoll( s, &end, base );
40005780: b8 10 00 08 mov %o0, %i4
if ( endptr )
40005784: 80 a6 a0 00 cmp %i2, 0
40005788: 02 80 00 03 be 40005794 <rtems_string_to_long_long+0x4c>
4000578c: ba 10 00 09 mov %o1, %i5
*endptr = end;
40005790: c4 26 80 00 st %g2, [ %i2 ]
if ( end == s )
40005794: 80 a6 00 02 cmp %i0, %g2
40005798: 02 80 00 0b be 400057c4 <rtems_string_to_long_long+0x7c>
4000579c: 82 10 20 0b mov 0xb, %g1
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
400057a0: 40 00 28 76 call 4000f978 <__errno>
400057a4: 01 00 00 00 nop
400057a8: c2 02 00 00 ld [ %o0 ], %g1
400057ac: 80 a0 60 22 cmp %g1, 0x22
400057b0: 02 80 00 07 be 400057cc <rtems_string_to_long_long+0x84>
400057b4: 03 1f ff ff sethi %hi(0x7ffffc00), %g1
(( result == 0 ) || ( result == LONG_LONG_MAX ) || ( result == LONG_LONG_MIN )))
return RTEMS_INVALID_NUMBER;
*n = result;
400057b8: f8 26 40 00 st %i4, [ %i1 ]
return RTEMS_SUCCESSFUL;
400057bc: 82 10 20 00 clr %g1
*n = result;
400057c0: fa 26 60 04 st %i5, [ %i1 + 4 ]
}
400057c4: 81 c7 e0 08 ret
400057c8: 91 e8 00 01 restore %g0, %g1, %o0
(( result == 0 ) || ( result == LONG_LONG_MAX ) || ( result == LONG_LONG_MIN )))
400057cc: 82 10 63 ff or %g1, 0x3ff, %g1
400057d0: 84 0f 00 01 and %i4, %g1, %g2
400057d4: 80 90 80 1d orcc %g2, %i5, %g0
400057d8: 22 bf ff fb be,a 400057c4 <rtems_string_to_long_long+0x7c>
400057dc: 82 10 20 0a mov 0xa, %g1
400057e0: 82 1f 00 01 xor %i4, %g1, %g1
400057e4: 80 b0 40 1d orncc %g1, %i5, %g0
400057e8: 32 bf ff f5 bne,a 400057bc <rtems_string_to_long_long+0x74>
<== NEVER TAKEN
400057ec: f8 26 40 00 st %i4, [ %i1 ]
<== NOT EXECUTED
return RTEMS_INVALID_NUMBER;
400057f0: 10 bf ff f5 b 400057c4 <rtems_string_to_long_long+0x7c>
400057f4: 82 10 20 0a mov 0xa, %g1
40005808 <rtems_string_to_unsigned_char>:
const char *s,
unsigned char *n,
char **endptr,
int base
)
{
40005808: 9d e3 bf 98 save %sp, -104, %sp
unsigned long result;
char *end;
if ( !n )
4000580c: 80 a6 60 00 cmp %i1, 0
40005810: 02 80 00 1d be 40005884 <rtems_string_to_unsigned_char+0x7c>
40005814: 82 10 20 09 mov 9, %g1
return RTEMS_INVALID_ADDRESS;
errno = 0;
40005818: 40 00 28 58 call 4000f978 <__errno>
4000581c: 01 00 00 00 nop
40005820: c0 22 00 00 clr [ %o0 ]
*n = 0;
result = strtoul( s, &end, base );
40005824: 94 10 00 1b mov %i3, %o2
*n = 0;
40005828: c0 2e 40 00 clrb [ %i1 ]
result = strtoul( s, &end, base );
4000582c: 92 07 bf fc add %fp, -4, %o1
40005830: 40 00 31 81 call 40011e34 <strtoul>
40005834: 90 10 00 18 mov %i0, %o0
if ( endptr )
*endptr = end;
40005838: c4 07 bf fc ld [ %fp + -4 ], %g2
if ( endptr )
4000583c: 80 a6 a0 00 cmp %i2, 0
40005840: 02 80 00 03 be 4000584c <rtems_string_to_unsigned_char+0x44>
40005844: ba 10 00 08 mov %o0, %i5
*endptr = end;
40005848: c4 26 80 00 st %g2, [ %i2 ]
if ( end == s )
4000584c: 80 a6 00 02 cmp %i0, %g2
40005850: 02 80 00 0d be 40005884 <rtems_string_to_unsigned_char+0x7c>
40005854: 82 10 20 0b mov 0xb, %g1
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
40005858: 40 00 28 48 call 4000f978 <__errno>
4000585c: 01 00 00 00 nop
40005860: c2 02 00 00 ld [ %o0 ], %g1
40005864: 80 a0 60 22 cmp %g1, 0x22
40005868: 02 80 00 09 be 4000588c <rtems_string_to_unsigned_char+0x84>
4000586c: 84 07 7f ff add %i5, -1, %g2
(( result == 0 ) || ( result == ULONG_MAX )))
return RTEMS_INVALID_NUMBER;
#if (UCHAR_MAX < ULONG_MAX)
if ( result > UCHAR_MAX ) {
40005870: 80 a7 60 ff cmp %i5, 0xff
40005874: 18 80 00 0a bgu 4000589c <rtems_string_to_unsigned_char+0x94>
40005878: 01 00 00 00 nop
errno = ERANGE;
return RTEMS_INVALID_NUMBER;
}
#endif
*n = result;
4000587c: fa 2e 40 00 stb %i5, [ %i1 ]
return RTEMS_SUCCESSFUL;
40005880: 82 10 20 00 clr %g1
}
40005884: 81 c7 e0 08 ret
40005888: 91 e8 00 01 restore %g0, %g1, %o0
if ( ( errno == ERANGE ) &&
4000588c: 80 a0 bf fd cmp %g2, -3
40005890: 08 bf ff f8 bleu 40005870 <rtems_string_to_unsigned_char+0x68>
<== NEVER TAKEN
40005894: 82 10 20 0a mov 0xa, %g1
40005898: 30 bf ff fb b,a 40005884 <rtems_string_to_unsigned_char+0x7c>
errno = ERANGE;
4000589c: 40 00 28 37 call 4000f978 <__errno>
400058a0: 01 00 00 00 nop
400058a4: 84 10 20 22 mov 0x22, %g2 ! 22 <_TLS_Alignment+0x21>
return RTEMS_INVALID_NUMBER;
400058a8: 82 10 20 0a mov 0xa, %g1
400058ac: 10 bf ff f6 b 40005884 <rtems_string_to_unsigned_char+0x7c>
400058b0: c4 22 00 00 st %g2, [ %o0 ]
400058b4 <rtems_string_to_unsigned_int>:
const char *s,
unsigned int *n,
char **endptr,
int base
)
{
400058b4: 9d e3 bf 98 save %sp, -104, %sp
unsigned long result;
char *end;
if ( !n )
400058b8: 80 a6 60 00 cmp %i1, 0
400058bc: 02 80 00 1a be 40005924 <rtems_string_to_unsigned_int+0x70>
400058c0: 82 10 20 09 mov 9, %g1
return RTEMS_INVALID_ADDRESS;
errno = 0;
400058c4: 40 00 28 2d call 4000f978 <__errno>
400058c8: 01 00 00 00 nop
400058cc: c0 22 00 00 clr [ %o0 ]
*n = 0;
result = strtoul( s, &end, base );
400058d0: 94 10 00 1b mov %i3, %o2
*n = 0;
400058d4: c0 26 40 00 clr [ %i1 ]
result = strtoul( s, &end, base );
400058d8: 92 07 bf fc add %fp, -4, %o1
400058dc: 40 00 31 56 call 40011e34 <strtoul>
400058e0: 90 10 00 18 mov %i0, %o0
if ( endptr )
*endptr = end;
400058e4: c4 07 bf fc ld [ %fp + -4 ], %g2
if ( endptr )
400058e8: 80 a6 a0 00 cmp %i2, 0
400058ec: 02 80 00 03 be 400058f8 <rtems_string_to_unsigned_int+0x44>
400058f0: ba 10 00 08 mov %o0, %i5
*endptr = end;
400058f4: c4 26 80 00 st %g2, [ %i2 ]
if ( end == s )
400058f8: 80 a6 00 02 cmp %i0, %g2
400058fc: 02 80 00 0a be 40005924 <rtems_string_to_unsigned_int+0x70>
40005900: 82 10 20 0b mov 0xb, %g1
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
40005904: 40 00 28 1d call 4000f978 <__errno>
40005908: 01 00 00 00 nop
4000590c: c2 02 00 00 ld [ %o0 ], %g1
40005910: 80 a0 60 22 cmp %g1, 0x22
40005914: 02 80 00 06 be 4000592c <rtems_string_to_unsigned_int+0x78>
40005918: 84 07 7f ff add %i5, -1, %g2
errno = ERANGE;
return RTEMS_INVALID_NUMBER;
}
#endif
*n = result;
4000591c: fa 26 40 00 st %i5, [ %i1 ]
return RTEMS_SUCCESSFUL;
40005920: 82 10 20 00 clr %g1
}
40005924: 81 c7 e0 08 ret
40005928: 91 e8 00 01 restore %g0, %g1, %o0
if ( ( errno == ERANGE ) &&
4000592c: 80 a0 bf fd cmp %g2, -3
40005930: 18 bf ff fd bgu 40005924 <rtems_string_to_unsigned_int+0x70>
<== ALWAYS TAKEN
40005934: 82 10 20 0a mov 0xa, %g1
*n = result;
40005938: fa 26 40 00 st %i5, [ %i1 ]
<== NOT EXECUTED
return RTEMS_SUCCESSFUL;
4000593c: 10 bf ff fa b 40005924 <rtems_string_to_unsigned_int+0x70>
<== NOT EXECUTED
40005940: 82 10 20 00 clr %g1
<== NOT EXECUTED
40005944 <rtems_string_to_unsigned_long>:
const char *s,
unsigned long *n,
char **endptr,
int base
)
{
40005944: 9d e3 bf 98 save %sp, -104, %sp
unsigned long result;
char *end;
if ( !n )
40005948: 80 a6 60 00 cmp %i1, 0
4000594c: 02 80 00 1a be 400059b4 <rtems_string_to_unsigned_long+0x70>
40005950: 82 10 20 09 mov 9, %g1
return RTEMS_INVALID_ADDRESS;
errno = 0;
40005954: 40 00 28 09 call 4000f978 <__errno>
40005958: 01 00 00 00 nop
4000595c: c0 22 00 00 clr [ %o0 ]
*n = 0;
result = strtoul( s, &end, base );
40005960: 94 10 00 1b mov %i3, %o2
*n = 0;
40005964: c0 26 40 00 clr [ %i1 ]
result = strtoul( s, &end, base );
40005968: 92 07 bf fc add %fp, -4, %o1
4000596c: 40 00 31 32 call 40011e34 <strtoul>
40005970: 90 10 00 18 mov %i0, %o0
if ( endptr )
*endptr = end;
40005974: c4 07 bf fc ld [ %fp + -4 ], %g2
if ( endptr )
40005978: 80 a6 a0 00 cmp %i2, 0
4000597c: 02 80 00 03 be 40005988 <rtems_string_to_unsigned_long+0x44>
40005980: ba 10 00 08 mov %o0, %i5
*endptr = end;
40005984: c4 26 80 00 st %g2, [ %i2 ]
if ( end == s )
40005988: 80 a6 00 02 cmp %i0, %g2
4000598c: 02 80 00 0a be 400059b4 <rtems_string_to_unsigned_long+0x70>
40005990: 82 10 20 0b mov 0xb, %g1
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
40005994: 40 00 27 f9 call 4000f978 <__errno>
40005998: 01 00 00 00 nop
4000599c: c2 02 00 00 ld [ %o0 ], %g1
400059a0: 80 a0 60 22 cmp %g1, 0x22
400059a4: 02 80 00 06 be 400059bc <rtems_string_to_unsigned_long+0x78>
400059a8: 84 07 7f ff add %i5, -1, %g2
(( result == 0 ) || ( result == ULONG_MAX )))
return RTEMS_INVALID_NUMBER;
*n = result;
400059ac: fa 26 40 00 st %i5, [ %i1 ]
return RTEMS_SUCCESSFUL;
400059b0: 82 10 20 00 clr %g1
}
400059b4: 81 c7 e0 08 ret
400059b8: 91 e8 00 01 restore %g0, %g1, %o0
if ( ( errno == ERANGE ) &&
400059bc: 80 a0 bf fd cmp %g2, -3
400059c0: 18 bf ff fd bgu 400059b4 <rtems_string_to_unsigned_long+0x70>
<== ALWAYS TAKEN
400059c4: 82 10 20 0a mov 0xa, %g1
*n = result;
400059c8: fa 26 40 00 st %i5, [ %i1 ]
<== NOT EXECUTED
return RTEMS_SUCCESSFUL;
400059cc: 10 bf ff fa b 400059b4 <rtems_string_to_unsigned_long+0x70>
<== NOT EXECUTED
400059d0: 82 10 20 00 clr %g1
<== NOT EXECUTED
400059d4 <rtems_string_to_unsigned_long_long>:
const char *s,
unsigned long long *n,
char **endptr,
int base
)
{
400059d4: 9d e3 bf 98 save %sp, -104, %sp
unsigned long long result;
char *end;
if ( !n )
400059d8: 80 a6 60 00 cmp %i1, 0
400059dc: 02 80 00 1c be 40005a4c <rtems_string_to_unsigned_long_long+0x78>
400059e0: 82 10 20 09 mov 9, %g1
return RTEMS_INVALID_ADDRESS;
errno = 0;
400059e4: 40 00 27 e5 call 4000f978 <__errno>
400059e8: 01 00 00 00 nop
400059ec: c0 22 00 00 clr [ %o0 ]
*n = 0;
result = strtoull( s, &end, base );
400059f0: 94 10 00 1b mov %i3, %o2
*n = 0;
400059f4: c0 26 40 00 clr [ %i1 ]
result = strtoull( s, &end, base );
400059f8: 92 07 bf fc add %fp, -4, %o1
*n = 0;
400059fc: c0 26 60 04 clr [ %i1 + 4 ]
result = strtoull( s, &end, base );
40005a00: 40 00 31 be call 400120f8 <strtoull>
40005a04: 90 10 00 18 mov %i0, %o0
if ( endptr )
*endptr = end;
40005a08: c4 07 bf fc ld [ %fp + -4 ], %g2
result = strtoull( s, &end, base );
40005a0c: b8 10 00 08 mov %o0, %i4
if ( endptr )
40005a10: 80 a6 a0 00 cmp %i2, 0
40005a14: 02 80 00 03 be 40005a20 <rtems_string_to_unsigned_long_long+0x4c>
40005a18: ba 10 00 09 mov %o1, %i5
*endptr = end;
40005a1c: c4 26 80 00 st %g2, [ %i2 ]
if ( end == s )
40005a20: 80 a6 00 02 cmp %i0, %g2
40005a24: 02 80 00 0a be 40005a4c <rtems_string_to_unsigned_long_long+0x78>
40005a28: 82 10 20 0b mov 0xb, %g1
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
40005a2c: 40 00 27 d3 call 4000f978 <__errno>
40005a30: 01 00 00 00 nop
40005a34: c2 02 00 00 ld [ %o0 ], %g1
40005a38: 80 a0 60 22 cmp %g1, 0x22
40005a3c: 02 80 00 06 be 40005a54 <rtems_string_to_unsigned_long_long+0x80>
40005a40: 86 87 7f ff addcc %i5, -1, %g3
(( result == 0 ) || ( result == ULONG_LONG_MAX )))
return RTEMS_INVALID_NUMBER;
*n = result;
40005a44: f8 3e 40 00 std %i4, [ %i1 ]
return RTEMS_SUCCESSFUL;
40005a48: 82 10 20 00 clr %g1
}
40005a4c: 81 c7 e0 08 ret
40005a50: 91 e8 00 01 restore %g0, %g1, %o0
(( result == 0 ) || ( result == ULONG_LONG_MAX )))
40005a54: 84 47 3f ff addx %i4, -1, %g2
if ( ( errno == ERANGE ) &&
40005a58: 80 a0 bf ff cmp %g2, -1
40005a5c: 32 bf ff fb bne,a 40005a48 <rtems_string_to_unsigned_long_long+0x74>
<== NEVER TAKEN
40005a60: f8 3e 40 00 std %i4, [ %i1 ]
<== NOT EXECUTED
40005a64: 80 a0 ff fd cmp %g3, -3
40005a68: 18 bf ff f9 bgu 40005a4c <rtems_string_to_unsigned_long_long+0x78>
<== ALWAYS TAKEN
40005a6c: 82 10 20 0a mov 0xa, %g1
*n = result;
40005a70: f8 3e 40 00 std %i4, [ %i1 ]
<== NOT EXECUTED
return RTEMS_SUCCESSFUL;
40005a74: 10 bf ff f6 b 40005a4c <rtems_string_to_unsigned_long_long+0x78>
<== NOT EXECUTED
40005a78: 82 10 20 00 clr %g1
<== NOT EXECUTED