RTEMS-5
Annotated Report
Fri Aug 10 14:13:26 2018

4000274c <rtems_bsp_cmdline_get_param>: const char *rtems_bsp_cmdline_get_param( const char *name, char *value, size_t length ) {
4000274c:	9d e3 bf a0 	save  %sp, -96, %sp
                           
  const char *p;
                                                     

                                                                     
  if ( !name )
                                                       
    return NULL;
                                                     

                                                                     
  if ( !value )
                                                      
40002750:	80 a0 00 19 	cmp  %g0, %i1
                                 
40002754:	84 60 3f ff 	subx  %g0, -1, %g2
                            
    return NULL;
                                                     

                                                                     
  if ( !length )
                                                     
40002758:	80 a0 00 1a 	cmp  %g0, %i2
                                 
4000275c:	82 60 3f ff 	subx  %g0, -1, %g1
                            
40002760:	80 90 80 01 	orcc  %g2, %g1, %g0
                           
40002764:	12 80 00 30 	bne  40002824 <rtems_bsp_cmdline_get_param+0xd8>

40002768:	80 a6 20 00 	cmp  %i0, 0
                                   
4000276c:	02 80 00 2e 	be  40002824 <rtems_bsp_cmdline_get_param+0xd8>

40002770:	01 00 00 00 	nop 
                                          
    return NULL;
                                                     

                                                                     
  value[0] = '\0';
                                                   
40002774:	c0 2e 40 00 	clrb  [ %i1 ]
                                 

                                                                     
  p = rtems_bsp_cmdline_get_param_raw( name );
                       
40002778:	40 00 00 2d 	call  4000282c <rtems_bsp_cmdline_get_param_raw>

4000277c:	90 10 00 18 	mov  %i0, %o0
                                 

                                                                     
  if ( !p )
                                                          
40002780:	80 a2 20 00 	cmp  %o0, 0
                                   
40002784:	02 80 00 28 	be  40002824 <rtems_bsp_cmdline_get_param+0xd8>

40002788:	01 00 00 00 	nop 
                                          
  for (i=0 ; *p && i<length-1; ) {
                                   
4000278c:	c6 0a 00 00 	ldub  [ %o0 ], %g3
                            
40002790:	85 28 e0 18 	sll  %g3, 0x18, %g2
                           
40002794:	80 a0 a0 00 	cmp  %g2, 0
                                   
40002798:	02 80 00 21 	be  4000281c <rtems_bsp_cmdline_get_param+0xd0>
<== NEVER TAKEN
4000279c:	b4 86 bf ff 	addcc  %i2, -1, %i2
                           
400027a0:	02 80 00 1f 	be  4000281c <rtems_bsp_cmdline_get_param+0xd0>
<== NEVER TAKEN
400027a4:	82 10 20 00 	clr  %g1
                                      
  quotes=0;
                                                          
400027a8:	10 80 00 11 	b  400027ec <rtems_bsp_cmdline_get_param+0xa0>

400027ac:	88 10 20 00 	clr  %g4
                                      
    } else if ( ((quotes % 2) == 0) && *p == ' ' )
                   
400027b0:	12 80 00 04 	bne  400027c0 <rtems_bsp_cmdline_get_param+0x74>

400027b4:	80 a0 a0 20 	cmp  %g2, 0x20
                                
400027b8:	02 80 00 19 	be  4000281c <rtems_bsp_cmdline_get_param+0xd0>

400027bc:	01 00 00 00 	nop 
                                          
    value[i++] = *p++;
                                               
400027c0:	c6 2e 40 01 	stb  %g3, [ %i1 + %g1 ]
                       
400027c4:	82 00 60 01 	inc  %g1
                                      
    value[i] = '\0';
                                                 
400027c8:	c0 2e 40 01 	clrb  [ %i1 + %g1 ]
                           
  for (i=0 ; *p && i<length-1; ) {
                                   
400027cc:	c6 0a 00 01 	ldub  [ %o0 + %g1 ], %g3
                      
400027d0:	85 28 e0 18 	sll  %g3, 0x18, %g2
                           
400027d4:	80 a0 a0 00 	cmp  %g2, 0
                                   
400027d8:	02 80 00 11 	be  4000281c <rtems_bsp_cmdline_get_param+0xd0>

400027dc:	01 00 00 00 	nop 
                                          
400027e0:	80 a6 80 01 	cmp  %i2, %g1
                                 
400027e4:	02 80 00 0e 	be  4000281c <rtems_bsp_cmdline_get_param+0xd0>

400027e8:	01 00 00 00 	nop 
                                          
    if ( *p == '\"' ) {
                                              
400027ec:	85 38 a0 18 	sra  %g2, 0x18, %g2
                           
400027f0:	80 a0 a0 22 	cmp  %g2, 0x22
                                
400027f4:	12 bf ff ef 	bne  400027b0 <rtems_bsp_cmdline_get_param+0x64>

400027f8:	80 89 20 01 	btst  1, %g4
                                  
    value[i++] = *p++;
                                               
400027fc:	c6 2e 40 01 	stb  %g3, [ %i1 + %g1 ]
                       
40002800:	82 00 60 01 	inc  %g1
                                      
    value[i] = '\0';
                                                 
40002804:	c0 2e 40 01 	clrb  [ %i1 + %g1 ]
                           
  for (i=0 ; *p && i<length-1; ) {
                                   
40002808:	c6 0a 00 01 	ldub  [ %o0 + %g1 ], %g3
                      
4000280c:	85 28 e0 18 	sll  %g3, 0x18, %g2
                           
40002810:	80 a0 a0 00 	cmp  %g2, 0
                                   
40002814:	12 bf ff f3 	bne  400027e0 <rtems_bsp_cmdline_get_param+0x94>
<== ALWAYS TAKEN
40002818:	88 01 20 01 	inc  %g4
                                      
    return NULL;
                                                     
4000281c:	81 c7 e0 08 	ret 
                                          
40002820:	91 e8 00 19 	restore  %g0, %i1, %o0
                        
    return NULL;
                                                     

                                                                     
  copy_string( p, value, length );
                                   

                                                                     
  return value;
                                                      
}
                                                                    
40002824:	81 c7 e0 08 	ret 
                                          
40002828:	91 e8 20 00 	restore  %g0, 0, %o0
                          

                                                                     

4000285c <rtems_bsp_cmdline_get_param_rhs>: const char *rtems_bsp_cmdline_get_param_rhs( const char *name, char *value, size_t length ) {
4000285c:	9d e3 bf a0 	save  %sp, -96, %sp
                           
  const char *p;
                                                     
  const char *rhs;
                                                   
  char       *d;
                                                     

                                                                     
  p = rtems_bsp_cmdline_get_param( name, value, length );
            
40002860:	90 10 00 18 	mov  %i0, %o0
                                 
{
                                                                    
40002864:	ba 10 00 18 	mov  %i0, %i5
                                 
  p = rtems_bsp_cmdline_get_param( name, value, length );
            
40002868:	94 10 00 1a 	mov  %i2, %o2
                                 
4000286c:	7f ff ff b8 	call  4000274c <rtems_bsp_cmdline_get_param>
  
40002870:	92 10 00 19 	mov  %i1, %o1
                                 
  if ( !p )
                                                          
40002874:	b0 92 20 00 	orcc  %o0, 0, %i0
                             
40002878:	02 80 00 23 	be  40002904 <rtems_bsp_cmdline_get_param_rhs+0xa8>

4000287c:	01 00 00 00 	nop 
                                          
    return NULL;
                                                     

                                                                     
  rhs = &p[strlen(name)];
                                            
40002880:	40 00 2d 47 	call  4000dd9c <strlen>
                       
40002884:	90 10 00 1d 	mov  %i5, %o0
                                 
  if ( *rhs != '=' )
                                                 
40002888:	c2 4e 00 08 	ldsb  [ %i0 + %o0 ], %g1
                      
4000288c:	80 a0 60 3d 	cmp  %g1, 0x3d
                                
40002890:	12 80 00 1c 	bne  40002900 <rtems_bsp_cmdline_get_param_rhs+0xa4>

40002894:	b0 06 00 08 	add  %i0, %o0, %i0
                            
    return NULL;
                                                     

                                                                     
  rhs++;
                                                             
  if ( *rhs == '\"' )
                                                
40002898:	c4 0e 20 01 	ldub  [ %i0 + 1 ], %g2
                        
4000289c:	83 28 a0 18 	sll  %g2, 0x18, %g1
                           
400028a0:	87 38 60 18 	sra  %g1, 0x18, %g3
                           
400028a4:	80 a0 e0 22 	cmp  %g3, 0x22
                                
400028a8:	02 80 00 19 	be  4000290c <rtems_bsp_cmdline_get_param_rhs+0xb0>

400028ac:	80 a0 60 00 	cmp  %g1, 0
                                   
    rhs++;
                                                           
  for ( d=value ; *rhs ; )
                                           
400028b0:	02 80 00 1c 	be  40002920 <rtems_bsp_cmdline_get_param_rhs+0xc4>

400028b4:	b0 06 20 01 	inc  %i0
                                      
400028b8:	10 80 00 03 	b  400028c4 <rtems_bsp_cmdline_get_param_rhs+0x68>

400028bc:	82 10 00 19 	mov  %i1, %g1
                                 
400028c0:	84 10 00 04 	mov  %g4, %g2
                                 
    *d++ = *rhs++;
                                                   
400028c4:	c4 28 40 00 	stb  %g2, [ %g1 ]
                             
400028c8:	b0 06 20 01 	inc  %i0
                                      
  for ( d=value ; *rhs ; )
                                           
400028cc:	c6 4e 00 00 	ldsb  [ %i0 ], %g3
                            
    *d++ = *rhs++;
                                                   
400028d0:	82 00 60 01 	inc  %g1
                                      
  for ( d=value ; *rhs ; )
                                           
400028d4:	80 a0 e0 00 	cmp  %g3, 0
                                   
400028d8:	12 bf ff fa 	bne  400028c0 <rtems_bsp_cmdline_get_param_rhs+0x64>

400028dc:	c8 0e 00 00 	ldub  [ %i0 ], %g4
                            
  if ( *(d-1) == '\"' )
                                              
400028e0:	85 28 a0 18 	sll  %g2, 0x18, %g2
                           
400028e4:	85 38 a0 18 	sra  %g2, 0x18, %g2
                           
    d--;
                                                             
400028e8:	84 18 a0 22 	xor  %g2, 0x22, %g2
                           
400028ec:	80 a0 00 02 	cmp  %g0, %g2
                                 
400028f0:	82 40 7f ff 	addx  %g1, -1, %g1
                            
  *d = '\0';
                                                         
400028f4:	c0 28 40 00 	clrb  [ %g1 ]
                                 

                                                                     
  return value;
                                                      
400028f8:	81 c7 e0 08 	ret 
                                          
400028fc:	91 e8 00 19 	restore  %g0, %i1, %o0
                        
    return NULL;
                                                     
40002900:	b0 10 20 00 	clr  %i0
                                      
}
                                                                    
40002904:	81 c7 e0 08 	ret 
                                          
40002908:	81 e8 00 00 	restore 
                                      
4000290c:	c4 0e 20 02 	ldub  [ %i0 + 2 ], %g2
                        
40002910:	83 28 a0 18 	sll  %g2, 0x18, %g1
                           
  for ( d=value ; *rhs ; )
                                           
40002914:	80 a0 60 00 	cmp  %g1, 0
                                   
40002918:	12 bf ff e8 	bne  400028b8 <rtems_bsp_cmdline_get_param_rhs+0x5c>
<== ALWAYS TAKEN
4000291c:	b0 06 20 02 	add  %i0, 2, %i0
                              
40002920:	c4 0e 7f ff 	ldub  [ %i1 + -1 ], %g2
                       
40002924:	82 10 00 19 	mov  %i1, %g1
                                 
  if ( *(d-1) == '\"' )
                                              
40002928:	85 28 a0 18 	sll  %g2, 0x18, %g2
                           
4000292c:	85 38 a0 18 	sra  %g2, 0x18, %g2
                           
    d--;
                                                             
40002930:	84 18 a0 22 	xor  %g2, 0x22, %g2
                           
40002934:	80 a0 00 02 	cmp  %g0, %g2
                                 
40002938:	82 40 7f ff 	addx  %g1, -1, %g1
                            
  *d = '\0';
                                                         
4000293c:	c0 28 40 00 	clrb  [ %g1 ]
                                 
  return value;
                                                      
40002940:	81 c7 e0 08 	ret 
                                          
40002944:	91 e8 00 19 	restore  %g0, %i1, %o0