RTEMS-5
Annotated Report
Fri Aug 10 17:13:27 2018

40003d54 <rtems_stack_checker_begin_extension>:
                      
static inline uint32_t _Per_CPU_Get_index( const Per_CPU_Control *cpu )

{
                                                                    
  const Per_CPU_Control_envelope *per_cpu_envelope =
                 
    ( const Per_CPU_Control_envelope * ) cpu;
                        

                                                                     
  return ( uint32_t ) ( per_cpu_envelope - &_Per_CPU_Information[ 0 ] );

40003d54:	07 33 33 33 	sethi  %hi(0xcccccc00), %g3
                   
40003d58:	86 10 e0 cd 	or  %g3, 0xcd, %g3	! cccccccd <RAM_END+0x8c8ccccd>

40003d5c:	03 10 00 5b 	sethi  %hi(0x40016c00), %g1
                   
#endif
                                                               

                                                                     
  cpu_self_index = _Per_CPU_Get_index( cpu_self );
                   
  stack = &Stack_check_Interrupt_stack[ cpu_self_index ];
            

                                                                     
  if ( stack->area == NULL ) {
                                       
40003d60:	05 10 00 56 	sethi  %hi(0x40015800), %g2
                   
40003d64:	82 10 60 00 	mov  %g1, %g1
                                 
40003d68:	84 10 a3 18 	or  %g2, 0x318, %g2
                           
40003d6c:	82 21 80 01 	sub  %g6, %g1, %g1
                            
40003d70:	83 38 60 04 	sra  %g1, 4, %g1
                              
40003d74:	82 58 40 03 	smul  %g1, %g3, %g1
                           
40003d78:	83 28 60 03 	sll  %g1, 3, %g1
                              
40003d7c:	86 00 80 01 	add  %g2, %g1, %g3
                            
40003d80:	da 00 e0 04 	ld  [ %g3 + 4 ], %o5
                          
40003d84:	80 a3 60 00 	cmp  %o5, 0
                                   
40003d88:	22 80 00 04 	be,a   40003d98 <rtems_stack_checker_begin_extension+0x44>
<== ALWAYS TAKEN
40003d8c:	d0 01 a0 08 	ld  [ %g6 + 8 ], %o0
                          
  }
                                                                  

                                                                     
#if defined(RTEMS_SMP)
                                               
  _Thread_Dispatch_enable( cpu_self );
                               
#endif
                                                               
}
                                                                    
40003d90:	81 c3 e0 08 	retl 
                                         <== NOT EXECUTED
40003d94:	01 00 00 00 	nop 
                                          <== NOT EXECUTED
    stack->area = cpu_self->interrupt_stack_low;
                     
40003d98:	d0 20 e0 04 	st  %o0, [ %g3 + 4 ]
                          
    Stack_check_Dope_stack( stack );
                                 
40003d9c:	92 10 20 a5 	mov  0xa5, %o1
                                
    stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high -

40003da0:	c8 01 a0 0c 	ld  [ %g6 + 0xc ], %g4
                        
40003da4:	88 21 00 08 	sub  %g4, %o0, %g4
                            
    Stack_check_Dope_stack( stack );
                                 
40003da8:	94 10 00 04 	mov  %g4, %o2
                                 
    stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high -

40003dac:	c8 20 80 01 	st  %g4, [ %g2 + %g1 ]
                        
    Stack_check_Dope_stack( stack );
                                 
40003db0:	82 13 c0 00 	mov  %o7, %g1
                                 
40003db4:	40 00 31 44 	call  400102c4 <memset>
                       
40003db8:	9e 10 40 00 	mov  %g1, %o7
                                 

                                                                     

40003dbc <rtems_stack_checker_switch_extension>: */ void rtems_stack_checker_switch_extension( Thread_Control *running RTEMS_UNUSED, Thread_Control *heir RTEMS_UNUSED ) {
40003dbc:	9d e3 bf 80 	save  %sp, -128, %sp
                          <== NOT EXECUTED
    if ( sp < the_stack->area ) {
                                    
40003dc0:	fa 06 20 d0 	ld  [ %i0 + 0xd0 ], %i5
                       <== NOT EXECUTED
40003dc4:	b8 07 60 08 	add  %i5, 8, %i4
                              <== NOT EXECUTED
40003dc8:	13 10 00 4b 	sethi  %hi(0x40012c00), %o1
                   <== NOT EXECUTED
40003dcc:	94 10 20 10 	mov  0x10, %o2
                                <== NOT EXECUTED
40003dd0:	90 10 00 1c 	mov  %i4, %o0
                                 <== NOT EXECUTED
40003dd4:	80 a7 80 1d 	cmp  %fp, %i5
                                 <== NOT EXECUTED
40003dd8:	0a 80 00 0e 	bcs  40003e10 <rtems_stack_checker_switch_extension+0x54>
<== NOT EXECUTED
40003ddc:	92 12 61 44 	or  %o1, 0x144, %o1
                           <== NOT EXECUTED
40003de0:	40 00 30 d4 	call  40010130 <memcmp>
                       <== NOT EXECUTED
40003de4:	01 00 00 00 	nop 
                                          <== NOT EXECUTED
    if ( sp > (the_stack->area + the_stack->size) ) {
                
40003de8:	c2 06 20 cc 	ld  [ %i0 + 0xcc ], %g1
                       <== NOT EXECUTED
40003dec:	82 07 40 01 	add  %i5, %g1, %g1
                            <== NOT EXECUTED
40003df0:	80 a7 80 01 	cmp  %fp, %g1
                                 <== NOT EXECUTED
40003df4:	18 80 00 0a 	bgu  40003e1c <rtems_stack_checker_switch_extension+0x60>
<== NOT EXECUTED
40003df8:	b6 10 00 08 	mov  %o0, %i3
                                 <== NOT EXECUTED
   */
                                                                
  sp_ok = Stack_check_Frame_pointer_in_range( running );
             

                                                                     
  pattern_ok = Stack_check_Is_pattern_valid( running );
              

                                                                     
  if ( !sp_ok || !pattern_ok ) {
                                     
40003dfc:	80 a2 20 00 	cmp  %o0, 0
                                   <== NOT EXECUTED
40003e00:	12 80 00 08 	bne  40003e20 <rtems_stack_checker_switch_extension+0x64>
<== NOT EXECUTED
40003e04:	11 10 00 4b 	sethi  %hi(0x40012c00), %o0
                   <== NOT EXECUTED
    Stack_check_report_blown_task( running, pattern_ok );
            
  }
                                                                  
}
                                                                    
40003e08:	81 c7 e0 08 	ret 
                                          <== NOT EXECUTED
40003e0c:	81 e8 00 00 	restore 
                                      <== NOT EXECUTED
40003e10:	40 00 30 c8 	call  40010130 <memcmp>
                       <== NOT EXECUTED
40003e14:	01 00 00 00 	nop 
                                          <== NOT EXECUTED
40003e18:	b6 10 00 08 	mov  %o0, %i3
                                 <== NOT EXECUTED
  printk("BLOWN STACK!!!\n");
                                        
40003e1c:	11 10 00 4b 	sethi  %hi(0x40012c00), %o0
                   <== NOT EXECUTED
40003e20:	40 00 0a 40 	call  40006720 <printk>
                       <== NOT EXECUTED
40003e24:	90 12 20 68 	or  %o0, 0x68, %o0	! 40012c68 <rtems_test_name+0x108>
<== NOT EXECUTED
  printk("task control block: 0x%08" PRIxPTR "\n", (intptr_t) running);

40003e28:	92 10 00 18 	mov  %i0, %o1
                                 <== NOT EXECUTED
40003e2c:	11 10 00 4b 	sethi  %hi(0x40012c00), %o0
                   <== NOT EXECUTED
40003e30:	40 00 0a 3c 	call  40006720 <printk>
                       <== NOT EXECUTED
40003e34:	90 12 20 78 	or  %o0, 0x78, %o0	! 40012c78 <rtems_test_name+0x118>
<== NOT EXECUTED
  printk("task ID: 0x%08lx\n", (unsigned long) running->Object.id);
  
40003e38:	d2 06 20 08 	ld  [ %i0 + 8 ], %o1
                          <== NOT EXECUTED
40003e3c:	11 10 00 4b 	sethi  %hi(0x40012c00), %o0
                   <== NOT EXECUTED
40003e40:	40 00 0a 38 	call  40006720 <printk>
                       <== NOT EXECUTED
40003e44:	90 12 20 98 	or  %o0, 0x98, %o0	! 40012c98 <rtems_test_name+0x138>
<== NOT EXECUTED
  printk(
                                                            
40003e48:	d2 06 20 0c 	ld  [ %i0 + 0xc ], %o1
                        <== NOT EXECUTED
40003e4c:	11 10 00 4b 	sethi  %hi(0x40012c00), %o0
                   <== NOT EXECUTED
40003e50:	40 00 0a 34 	call  40006720 <printk>
                       <== NOT EXECUTED
40003e54:	90 12 20 b0 	or  %o0, 0xb0, %o0	! 40012cb0 <rtems_test_name+0x150>
<== NOT EXECUTED
  _Thread_Get_name(running, name, sizeof(name));
                     
40003e58:	94 10 20 20 	mov  0x20, %o2
                                <== NOT EXECUTED
40003e5c:	92 07 bf e0 	add  %fp, -32, %o1
                            <== NOT EXECUTED
40003e60:	40 00 1f 88 	call  4000bc80 <_Thread_Get_name>
             <== NOT EXECUTED
40003e64:	90 10 00 18 	mov  %i0, %o0
                                 <== NOT EXECUTED
  printk("task name string: %s\n", name);
                            
40003e68:	92 07 bf e0 	add  %fp, -32, %o1
                            <== NOT EXECUTED
40003e6c:	11 10 00 4b 	sethi  %hi(0x40012c00), %o0
                   <== NOT EXECUTED
40003e70:	40 00 0a 2c 	call  40006720 <printk>
                       <== NOT EXECUTED
40003e74:	90 12 20 c8 	or  %o0, 0xc8, %o0	! 40012cc8 <rtems_test_name+0x168>
<== NOT EXECUTED
    (unsigned long) stack->size,
                                     
40003e78:	d2 06 20 cc 	ld  [ %i0 + 0xcc ], %o1
                       <== NOT EXECUTED
    (intptr_t) stack->area,
                                          
40003e7c:	d4 06 20 d0 	ld  [ %i0 + 0xd0 ], %o2
                       <== NOT EXECUTED
  printk(
                                                            
40003e80:	96 02 80 09 	add  %o2, %o1, %o3
                            <== NOT EXECUTED
40003e84:	11 10 00 4b 	sethi  %hi(0x40012c00), %o0
                   <== NOT EXECUTED
40003e88:	40 00 0a 26 	call  40006720 <printk>
                       <== NOT EXECUTED
40003e8c:	90 12 20 e0 	or  %o0, 0xe0, %o0	! 40012ce0 <rtems_test_name+0x180>
<== NOT EXECUTED
  if (!pattern_ok) {
                                                 
40003e90:	80 a6 e0 00 	cmp  %i3, 0
                                   <== NOT EXECUTED
40003e94:	12 80 00 05 	bne  40003ea8 <rtems_stack_checker_switch_extension+0xec>
<== NOT EXECUTED
40003e98:	96 07 60 18 	add  %i5, 0x18, %o3
                           <== NOT EXECUTED
40003e9c:	d2 06 20 0c 	ld  [ %i0 + 0xc ], %o1
                        <== NOT EXECUTED
40003ea0:	40 00 13 5a 	call  40008c08 <_Terminate>
                   <== NOT EXECUTED
40003ea4:	90 10 20 08 	mov  8, %o0
                                   <== NOT EXECUTED
    printk(
                                                          
40003ea8:	94 10 00 1c 	mov  %i4, %o2
                                 <== NOT EXECUTED
40003eac:	92 10 20 10 	mov  0x10, %o1
                                <== NOT EXECUTED
40003eb0:	11 10 00 4b 	sethi  %hi(0x40012c00), %o0
                   <== NOT EXECUTED
40003eb4:	40 00 0a 1b 	call  40006720 <printk>
                       <== NOT EXECUTED
40003eb8:	90 12 21 10 	or  %o0, 0x110, %o0	! 40012d10 <rtems_test_name+0x1b0>
<== NOT EXECUTED
40003ebc:	10 bf ff f9 	b  40003ea0 <rtems_stack_checker_switch_extension+0xe4>
<== NOT EXECUTED
40003ec0:	d2 06 20 0c 	ld  [ %i0 + 0xc ], %o1
                        <== NOT EXECUTED