RTEMS-6
Annotated Report
libstringto
Sun Feb 28 12:37:42 2021
40004f68 <rtems_string_to_double>:
)
{
double result;
char *end;
if ( !n )
40004f68: 0a058e63 beqz a1,40005024 <rtems_string_to_double+0xbc>
{
40004f6c: fc010113 addi sp,sp,-64
40004f70: 02112e23 sw ra,60(sp)
40004f74: 02812c23 sw s0,56(sp)
40004f78: 02912a23 sw s1,52(sp)
40004f7c: 00058413 mv s0,a1
40004f80: 03212823 sw s2,48(sp)
40004f84: 02813427 fsd fs0,40(sp)
40004f88: 00050493 mv s1,a0
40004f8c: 00060913 mv s2,a2
return RTEMS_INVALID_ADDRESS;
errno = 0;
40004f90: 33c0a0ef jal ra,4000f2cc <__errno>
40004f94: 00052023 sw zero,0(a0)
*n = 0;
40004f98: 00042023 sw zero,0(s0)
40004f9c: 00042223 sw zero,4(s0)
result = strtod( s, &end );
40004fa0: 01c10593 addi a1,sp,28
40004fa4: 00048513 mv a0,s1
40004fa8: 6610b0ef jal ra,40010e08 <strtod>
40004fac: 00a13427 fsd fa0,8(sp)
40004fb0: 22a50453 fmv.d fs0,fa0
if ( endptr )
*endptr = end;
40004fb4: 01c12783 lw a5,28(sp)
if ( endptr )
40004fb8: 00090463 beqz s2,40004fc0 <rtems_string_to_double+0x58>
*endptr = end;
40004fbc: 00f92023 sw a5,0(s2)
if ( end == s )
40004fc0: 06f48663 beq s1,a5,4000502c <rtems_string_to_double+0xc4>
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
40004fc4: 3080a0ef jal ra,4000f2cc <__errno>
40004fc8: 00052703 lw a4,0(a0)
40004fcc: 02200793 li a5,34
40004fd0: 02f70463 beq a4,a5,40004ff8 <rtems_string_to_double+0x90>
(( result == 0 ) || ( result == HUGE_VAL ) || ( result == -HUGE_VAL )))
return RTEMS_INVALID_NUMBER;
*n = result;
40004fd4: 00843027 fsd fs0,0(s0)
return RTEMS_SUCCESSFUL;
40004fd8: 00000513 li a0,0
}
40004fdc: 03c12083 lw ra,60(sp)
40004fe0: 03812403 lw s0,56(sp)
40004fe4: 03412483 lw s1,52(sp)
40004fe8: 03012903 lw s2,48(sp)
40004fec: 02813407 fld fs0,40(sp)
40004ff0: 04010113 addi sp,sp,64
40004ff4: 00008067 ret
if ( ( errno == ERANGE ) &&
40004ff8: d20007d3 fcvt.d.w fa5,zero
return RTEMS_INVALID_NUMBER;
40004ffc: 00a00513 li a0,10
if ( ( errno == ERANGE ) &&
40005000: a2f427d3 feq.d a5,fs0,fa5
40005004: fc079ce3 bnez a5,40004fdc <rtems_string_to_double+0x74> <== NEVER TAKEN
(( result == 0 ) || ( result == HUGE_VAL ) || ( result == -HUGE_VAL )))
40005008: 8081b787 fld fa5,-2040(gp) # 40017bf0 <_Linker_set__Per_CPU_Data_begin+0xc>
4000500c: a2f427d3 feq.d a5,fs0,fa5
40005010: fc0796e3 bnez a5,40004fdc <rtems_string_to_double+0x74>
40005014: 8101b787 fld fa5,-2032(gp) # 40017bf8 <_Linker_set__Per_CPU_Data_begin+0x14>
40005018: a2f427d3 feq.d a5,fs0,fa5
4000501c: fa078ce3 beqz a5,40004fd4 <rtems_string_to_double+0x6c> <== NEVER TAKEN
40005020: fbdff06f j 40004fdc <rtems_string_to_double+0x74>
return RTEMS_INVALID_ADDRESS;
40005024: 00900513 li a0,9
}
40005028: 00008067 ret
4000502c: 03c12083 lw ra,60(sp)
40005030: 03812403 lw s0,56(sp)
40005034: 03412483 lw s1,52(sp)
40005038: 03012903 lw s2,48(sp)
4000503c: 02813407 fld fs0,40(sp)
return RTEMS_NOT_DEFINED;
40005040: 00b00513 li a0,11
}
40005044: 04010113 addi sp,sp,64
40005048: 00008067 ret
4000504c <rtems_string_to_float>:
)
{
float result;
char *end;
if ( !n )
4000504c: 0a058a63 beqz a1,40005100 <rtems_string_to_float+0xb4>
{
40005050: fd010113 addi sp,sp,-48
40005054: 02112623 sw ra,44(sp)
40005058: 02812423 sw s0,40(sp)
4000505c: 02912223 sw s1,36(sp)
40005060: 00058413 mv s0,a1
40005064: 03212023 sw s2,32(sp)
40005068: 00813c27 fsd fs0,24(sp)
4000506c: 00050493 mv s1,a0
40005070: 00060913 mv s2,a2
return RTEMS_INVALID_ADDRESS;
errno = 0;
40005074: 2580a0ef jal ra,4000f2cc <__errno>
40005078: 00052023 sw zero,0(a0)
*n = 0;
4000507c: 00042023 sw zero,0(s0)
result = strtof( s, &end );
40005080: 00c10593 addi a1,sp,12
40005084: 00048513 mv a0,s1
40005088: 5c10b0ef jal ra,40010e48 <strtof>
4000508c: 20a50453 fmv.s fs0,fa0
if ( endptr )
*endptr = end;
40005090: 00c12783 lw a5,12(sp)
if ( endptr )
40005094: 00090463 beqz s2,4000509c <rtems_string_to_float+0x50>
*endptr = end;
40005098: 00f92023 sw a5,0(s2)
if ( end == s )
4000509c: 06f48663 beq s1,a5,40005108 <rtems_string_to_float+0xbc>
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
400050a0: 22c0a0ef jal ra,4000f2cc <__errno>
400050a4: 00052703 lw a4,0(a0)
400050a8: 02200793 li a5,34
400050ac: 02f70463 beq a4,a5,400050d4 <rtems_string_to_float+0x88>
(( result == 0 ) || ( result == HUGE_VALF ) || ( result == -HUGE_VALF )))
return RTEMS_INVALID_NUMBER;
*n = result;
400050b0: 00842027 fsw fs0,0(s0)
return RTEMS_SUCCESSFUL;
400050b4: 00000513 li a0,0
}
400050b8: 02c12083 lw ra,44(sp)
400050bc: 02812403 lw s0,40(sp)
400050c0: 02412483 lw s1,36(sp)
400050c4: 02012903 lw s2,32(sp)
400050c8: 01813407 fld fs0,24(sp)
400050cc: 03010113 addi sp,sp,48
400050d0: 00008067 ret
if ( ( errno == ERANGE ) &&
400050d4: f00007d3 fmv.w.x fa5,zero
return RTEMS_INVALID_NUMBER;
400050d8: 00a00513 li a0,10
if ( ( errno == ERANGE ) &&
400050dc: a0f427d3 feq.s a5,fs0,fa5
400050e0: fc079ce3 bnez a5,400050b8 <rtems_string_to_float+0x6c> <== NEVER TAKEN
(( result == 0 ) || ( result == HUGE_VALF ) || ( result == -HUGE_VALF )))
400050e4: 88c1a787 flw fa5,-1908(gp) # 40017c74 <_Linker_set__Per_CPU_Data_begin+0x90>
400050e8: a0f427d3 feq.s a5,fs0,fa5
400050ec: fc0796e3 bnez a5,400050b8 <rtems_string_to_float+0x6c>
400050f0: 8901a787 flw fa5,-1904(gp) # 40017c78 <_Linker_set__Per_CPU_Data_begin+0x94>
400050f4: a0f427d3 feq.s a5,fs0,fa5
400050f8: fa078ce3 beqz a5,400050b0 <rtems_string_to_float+0x64> <== NEVER TAKEN
400050fc: fbdff06f j 400050b8 <rtems_string_to_float+0x6c>
return RTEMS_INVALID_ADDRESS;
40005100: 00900513 li a0,9
}
40005104: 00008067 ret
40005108: 02c12083 lw ra,44(sp)
4000510c: 02812403 lw s0,40(sp)
40005110: 02412483 lw s1,36(sp)
40005114: 02012903 lw s2,32(sp)
40005118: 01813407 fld fs0,24(sp)
return RTEMS_NOT_DEFINED;
4000511c: 00b00513 li a0,11
}
40005120: 03010113 addi sp,sp,48
40005124: 00008067 ret
40005128 <rtems_string_to_int>:
)
{
long result;
char *end;
if ( !n )
40005128: 0a058663 beqz a1,400051d4 <rtems_string_to_int+0xac>
{
4000512c: fd010113 addi sp,sp,-48
40005130: 02112623 sw ra,44(sp)
40005134: 02812423 sw s0,40(sp)
40005138: 02912223 sw s1,36(sp)
4000513c: 00058413 mv s0,a1
40005140: 03212023 sw s2,32(sp)
40005144: 01312e23 sw s3,28(sp)
40005148: 00050493 mv s1,a0
4000514c: 00068993 mv s3,a3
40005150: 00060913 mv s2,a2
return RTEMS_INVALID_ADDRESS;
errno = 0;
40005154: 1780a0ef jal ra,4000f2cc <__errno>
40005158: 00052023 sw zero,0(a0)
*n = 0;
result = strtol( s, &end, base );
4000515c: 00098613 mv a2,s3
*n = 0;
40005160: 00042023 sw zero,0(s0)
result = strtol( s, &end, base );
40005164: 00c10593 addi a1,sp,12
40005168: 00048513 mv a0,s1
4000516c: 7750b0ef jal ra,400110e0 <strtol>
if ( endptr )
*endptr = end;
40005170: 00c12783 lw a5,12(sp)
result = strtol( s, &end, base );
40005174: 00050993 mv s3,a0
if ( endptr )
40005178: 00090463 beqz s2,40005180 <rtems_string_to_int+0x58>
*endptr = end;
4000517c: 00f92023 sw a5,0(s2)
if ( end == s )
40005180: 04f48e63 beq s1,a5,400051dc <rtems_string_to_int+0xb4>
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
40005184: 1480a0ef jal ra,4000f2cc <__errno>
40005188: 00052703 lw a4,0(a0)
4000518c: 02200793 li a5,34
40005190: 02f70463 beq a4,a5,400051b8 <rtems_string_to_int+0x90>
errno = ERANGE;
return RTEMS_INVALID_NUMBER;
}
#endif
*n = result;
40005194: 01342023 sw s3,0(s0)
return RTEMS_SUCCESSFUL;
40005198: 00000513 li a0,0
}
4000519c: 02c12083 lw ra,44(sp)
400051a0: 02812403 lw s0,40(sp)
400051a4: 02412483 lw s1,36(sp)
400051a8: 02012903 lw s2,32(sp)
400051ac: 01c12983 lw s3,28(sp)
400051b0: 03010113 addi sp,sp,48
400051b4: 00008067 ret
(( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
400051b8: 800007b7 lui a5,0x80000
400051bc: fff7c793 not a5,a5
400051c0: 00f98663 beq s3,a5,400051cc <rtems_string_to_int+0xa4>
400051c4: 00f9f7b3 and a5,s3,a5
400051c8: fc0796e3 bnez a5,40005194 <rtems_string_to_int+0x6c> <== NEVER TAKEN
return RTEMS_INVALID_NUMBER;
400051cc: 00a00513 li a0,10
400051d0: fcdff06f j 4000519c <rtems_string_to_int+0x74>
return RTEMS_INVALID_ADDRESS;
400051d4: 00900513 li a0,9
}
400051d8: 00008067 ret
400051dc: 02c12083 lw ra,44(sp)
400051e0: 02812403 lw s0,40(sp)
400051e4: 02412483 lw s1,36(sp)
400051e8: 02012903 lw s2,32(sp)
400051ec: 01c12983 lw s3,28(sp)
return RTEMS_NOT_DEFINED;
400051f0: 00b00513 li a0,11
}
400051f4: 03010113 addi sp,sp,48
400051f8: 00008067 ret
400051fc <rtems_string_to_long>:
)
{
long result;
char *end;
if ( !n )
400051fc: 0a058663 beqz a1,400052a8 <rtems_string_to_long+0xac>
{
40005200: fd010113 addi sp,sp,-48
40005204: 02112623 sw ra,44(sp)
40005208: 02812423 sw s0,40(sp)
4000520c: 02912223 sw s1,36(sp)
40005210: 00058413 mv s0,a1
40005214: 03212023 sw s2,32(sp)
40005218: 01312e23 sw s3,28(sp)
4000521c: 00050493 mv s1,a0
40005220: 00068993 mv s3,a3
40005224: 00060913 mv s2,a2
return RTEMS_INVALID_ADDRESS;
errno = 0;
40005228: 0a40a0ef jal ra,4000f2cc <__errno>
4000522c: 00052023 sw zero,0(a0)
*n = 0;
result = strtol( s, &end, base );
40005230: 00098613 mv a2,s3
*n = 0;
40005234: 00042023 sw zero,0(s0)
result = strtol( s, &end, base );
40005238: 00c10593 addi a1,sp,12
4000523c: 00048513 mv a0,s1
40005240: 6a10b0ef jal ra,400110e0 <strtol>
if ( endptr )
*endptr = end;
40005244: 00c12783 lw a5,12(sp)
result = strtol( s, &end, base );
40005248: 00050993 mv s3,a0
if ( endptr )
4000524c: 00090463 beqz s2,40005254 <rtems_string_to_long+0x58>
*endptr = end;
40005250: 00f92023 sw a5,0(s2)
if ( end == s )
40005254: 04f48e63 beq s1,a5,400052b0 <rtems_string_to_long+0xb4>
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
40005258: 0740a0ef jal ra,4000f2cc <__errno>
4000525c: 00052703 lw a4,0(a0)
40005260: 02200793 li a5,34
40005264: 02f70463 beq a4,a5,4000528c <rtems_string_to_long+0x90>
(( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
return RTEMS_INVALID_NUMBER;
*n = result;
40005268: 01342023 sw s3,0(s0)
return RTEMS_SUCCESSFUL;
4000526c: 00000513 li a0,0
}
40005270: 02c12083 lw ra,44(sp)
40005274: 02812403 lw s0,40(sp)
40005278: 02412483 lw s1,36(sp)
4000527c: 02012903 lw s2,32(sp)
40005280: 01c12983 lw s3,28(sp)
40005284: 03010113 addi sp,sp,48
40005288: 00008067 ret
(( result == 0 ) || ( result == LONG_MAX ) || ( result == LONG_MIN )))
4000528c: 800007b7 lui a5,0x80000
40005290: fff7c793 not a5,a5
40005294: 00f98663 beq s3,a5,400052a0 <rtems_string_to_long+0xa4>
40005298: 00f9f7b3 and a5,s3,a5
4000529c: fc0796e3 bnez a5,40005268 <rtems_string_to_long+0x6c> <== NEVER TAKEN
return RTEMS_INVALID_NUMBER;
400052a0: 00a00513 li a0,10
400052a4: fcdff06f j 40005270 <rtems_string_to_long+0x74>
return RTEMS_INVALID_ADDRESS;
400052a8: 00900513 li a0,9
}
400052ac: 00008067 ret
400052b0: 02c12083 lw ra,44(sp)
400052b4: 02812403 lw s0,40(sp)
400052b8: 02412483 lw s1,36(sp)
400052bc: 02012903 lw s2,32(sp)
400052c0: 01c12983 lw s3,28(sp)
return RTEMS_NOT_DEFINED;
400052c4: 00b00513 li a0,11
}
400052c8: 03010113 addi sp,sp,48
400052cc: 00008067 ret
400052d0 <rtems_string_to_long_long>:
)
{
long long result;
char *end;
if ( !n )
400052d0: 0c058663 beqz a1,4000539c <rtems_string_to_long_long+0xcc>
{
400052d4: fd010113 addi sp,sp,-48
400052d8: 02112623 sw ra,44(sp)
400052dc: 02812423 sw s0,40(sp)
400052e0: 02912223 sw s1,36(sp)
400052e4: 00058413 mv s0,a1
400052e8: 03212023 sw s2,32(sp)
400052ec: 01312e23 sw s3,28(sp)
400052f0: 01412c23 sw s4,24(sp)
400052f4: 00068993 mv s3,a3
400052f8: 00050493 mv s1,a0
400052fc: 00060913 mv s2,a2
return RTEMS_INVALID_ADDRESS;
errno = 0;
40005300: 7cd090ef jal ra,4000f2cc <__errno>
40005304: 00052023 sw zero,0(a0)
*n = 0;
40005308: 00000793 li a5,0
4000530c: 00000813 li a6,0
40005310: 00f42023 sw a5,0(s0)
result = strtoll( s, &end, base );
40005314: 00098613 mv a2,s3
*n = 0;
40005318: 01042223 sw a6,4(s0)
result = strtoll( s, &end, base );
4000531c: 00c10593 addi a1,sp,12
40005320: 00048513 mv a0,s1
40005324: 0fc0c0ef jal ra,40011420 <strtoll>
if ( endptr )
*endptr = end;
40005328: 00c12783 lw a5,12(sp)
result = strtoll( s, &end, base );
4000532c: 00050993 mv s3,a0
40005330: 00058a13 mv s4,a1
if ( endptr )
40005334: 00090463 beqz s2,4000533c <rtems_string_to_long_long+0x6c>
*endptr = end;
40005338: 00f92023 sw a5,0(s2)
if ( end == s )
4000533c: 06f48463 beq s1,a5,400053a4 <rtems_string_to_long_long+0xd4>
return RTEMS_NOT_DEFINED;
if ( ( errno == ERANGE ) &&
40005340: 78d090ef jal ra,4000f2cc <__errno>
40005344: 00052703 lw a4,0(a0)
40005348: 02200793 li a5,34
4000534c: 02f70863 beq a4,a5,4000537c <rtems_string_to_long_long+0xac>
(( result == 0 ) || ( result == LONG_LONG_MAX ) || ( result == LONG_LONG_MIN )))
return RTEMS_INVALID_NUMBER;
*n = result;
40005350: 01342023 sw s3,0(s0)
40005354: 01442223 sw s4,4(s0)
return RTEMS_SUCCESSFUL;
40005358: 00000513 li a0,0
}
4000535c: 02c12083 lw ra,44(sp)
40005360: 02812403 lw s0,40(sp)
40005364: 02412483 lw s1,36(sp)
40005368: 02012903 lw s2,32(sp)
4000536c: 01c12983 lw s3,28(sp)
40005370: 01812a03 lw s4,24(sp)
40005374: 03010113 addi sp,sp,48
40005378: 00008067 ret
(( result == 0 ) || ( result == LONG_LONG_MAX ) || ( result == LONG_LONG_MIN )))
4000537c: fff00793 li a5,-1
40005380: 04f98463 beq s3,a5,400053c8 <rtems_string_to_long_long+0xf8>
40005384: 001a1793 slli a5,s4,0x1
40005388: 0017d793 srli a5,a5,0x1
4000538c: 00f9e7b3 or a5,s3,a5
40005390: fc0790e3 bnez a5,40005350 <rtems_string_to_long_long+0x80> <== NEVER TAKEN
return RTEMS_INVALID_NUMBER;
40005394: 00a00513 li a0,10
40005398: fc5ff06f j 4000535c <rtems_string_to_long_long+0x8c>
return RTEMS_INVALID_ADDRESS;
4000539c: 00900513 li a0,9
}
400053a0: 00008067 ret
400053a4: 02c12083 lw ra,44(sp)
400053a8: 02812403 lw s0,40(sp)
400053ac: 02412483 lw s1,36(sp)
400053b0: 02012903 lw s2,32(sp)
400053b4: 01c12983 lw s3,28(sp)
400053b8: 01812a03 lw s4,24(sp)
return RTEMS_NOT_DEFINED;
400053bc: 00b00513 li a0,11
}
400053c0: 03010113 addi sp,sp,48
400053c4: 00008067 ret
(( result == 0 ) || ( result == LONG_LONG_MAX ) || ( result == LONG_LONG_MIN )))
400053c8: 800007b7 lui a5,0x80000
400053cc: fff7c793 not a5,a5
400053d0: fafa1ae3 bne s4,a5,40005384 <rtems_string_to_long_long+0xb4>
return RTEMS_INVALID_NUMBER;
400053d4: 00a00513 li a0,10
400053d8: f85ff06f j 4000535c <rtems_string_to_long_long+0x8c>