=============================================================================== 400035cc : #endif cpu_self_index = _Per_CPU_Get_index( cpu_self ); stack = &Stack_check_Interrupt_stack[ cpu_self_index ]; if ( stack->area == NULL ) { 400035cc: 8c418793 addi a5,gp,-1852 # 40014ad4 400035d0: 0047a703 lw a4,4(a5) # f004 400035d4: 00070463 beqz a4,400035dc 400035d8: 00008067 ret stack->area = cpu_self->interrupt_stack_low; 400035dc: 40019737 lui a4,0x40019 { 400035e0: ff010113 addi sp,sp,-16 stack->area = cpu_self->interrupt_stack_low; 400035e4: f8070713 addi a4,a4,-128 # 40018f80 <_Per_CPU_Information> { 400035e8: 00812423 sw s0,8(sp) 400035ec: 00912223 sw s1,4(sp) stack->area = cpu_self->interrupt_stack_low; 400035f0: 02072403 lw s0,32(a4) stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high - 400035f4: 02472483 lw s1,36(a4) { 400035f8: 00112623 sw ra,12(sp) return memcmp( 400035fc: 400135b7 lui a1,0x40013 stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high - 40003600: 408484b3 sub s1,s1,s0 return memcmp( 40003604: 01000613 li a2,16 40003608: cf058593 addi a1,a1,-784 # 40012cf0 4000360c: 00040513 mv a0,s0 stack->area = cpu_self->interrupt_stack_low; 40003610: 0087a223 sw s0,4(a5) stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high - 40003614: 0097a023 sw s1,0(a5) return memcmp( 40003618: 6300e0ef jal ra,40011c48 (char *) cpu_self->interrupt_stack_low ); /* * Sanity pattern has been added by Stack_check_Prepare_interrupt_stack() */ if ( !Stack_check_Is_sanity_pattern_valid( stack ) ) { 4000361c: 02051263 bnez a0,40003640 <== NEVER TAKEN memset( 40003620: 01040513 addi a0,s0,16 } #if defined(RTEMS_SMP) _Thread_Dispatch_enable( cpu_self ); #endif } 40003624: 00812403 lw s0,8(sp) 40003628: 00c12083 lw ra,12(sp) memset( 4000362c: ff048613 addi a2,s1,-16 } 40003630: 00412483 lw s1,4(sp) memset( 40003634: 0a500593 li a1,165 } 40003638: 01010113 addi sp,sp,16 memset( 4000363c: 7ac0e06f j 40011de8 40003640: 494e55b7 lui a1,0x494e5 <== NOT EXECUTED 40003644: 45258593 addi a1,a1,1106 # 494e5452 <== NOT EXECUTED 40003648: 00800513 li a0,8 <== NOT EXECUTED 4000364c: 3ad000ef jal ra,400041f8 <_Terminate> <== NOT EXECUTED =============================================================================== 40003650 : */ void rtems_stack_checker_switch_extension( Thread_Control *running, Thread_Control *heir ) { 40003650: fc010113 addi sp,sp,-64 40003654: 02812c23 sw s0,56(sp) 40003658: 02912a23 sw s1,52(sp) 4000365c: 03212823 sw s2,48(sp) 40003660: 02112e23 sw ra,60(sp) 40003664: 03312623 sw s3,44(sp) 40003668: 03412423 sw s4,40(sp) 4000366c: 04010413 addi s0,sp,64 if ( sp < the_stack->area ) { 40003670: 0d052903 lw s2,208(a0) { 40003674: 00050493 mv s1,a0 if ( sp < the_stack->area ) { 40003678: 07246263 bltu s0,s2,400036dc return memcmp( 4000367c: 400139b7 lui s3,0x40013 40003680: 01000613 li a2,16 40003684: cf098593 addi a1,s3,-784 # 40012cf0 40003688: 00090513 mv a0,s2 4000368c: 5bc0e0ef jal ra,40011c48 if ( sp > (the_stack->area + the_stack->size) ) { 40003690: 0cc4a783 lw a5,204(s1) return memcmp( 40003694: 00050a13 mv s4,a0 if ( sp > (the_stack->area + the_stack->size) ) { 40003698: 00f907b3 add a5,s2,a5 4000369c: 0487ec63 bltu a5,s0,400036f4 #else sp_ok = Stack_check_Frame_pointer_in_range( running ); pattern_ok = Stack_check_Is_sanity_pattern_valid( &running->Start.Initial_stack ); if ( !sp_ok || !pattern_ok ) { 400036a0: 0e051663 bnez a0,4000378c } #endif stack = &Stack_check_Interrupt_stack[ _SMP_Get_current_processor() ]; if ( stack->area != NULL && !Stack_check_Is_sanity_pattern_valid( stack ) ) { 400036a4: 8c81a503 lw a0,-1848(gp) # 40014ad8 400036a8: 00050a63 beqz a0,400036bc <== NEVER TAKEN return memcmp( 400036ac: 01000613 li a2,16 400036b0: cf098593 addi a1,s3,-784 400036b4: 5940e0ef jal ra,40011c48 if ( stack->area != NULL && !Stack_check_Is_sanity_pattern_valid( stack ) ) { 400036b8: 0c051263 bnez a0,4000377c <== NEVER TAKEN rtems_fatal( RTEMS_FATAL_SOURCE_STACK_CHECKER, rtems_build_name( 'I', 'N', 'T', 'R' ) ); } } 400036bc: 03c12083 lw ra,60(sp) 400036c0: 03812403 lw s0,56(sp) 400036c4: 03412483 lw s1,52(sp) 400036c8: 03012903 lw s2,48(sp) 400036cc: 02c12983 lw s3,44(sp) 400036d0: 02812a03 lw s4,40(sp) 400036d4: 04010113 addi sp,sp,64 400036d8: 00008067 ret return memcmp( 400036dc: 400135b7 lui a1,0x40013 <== NOT EXECUTED 400036e0: 01000613 li a2,16 <== NOT EXECUTED 400036e4: cf058593 addi a1,a1,-784 # 40012cf0 <== NOT EXECUTED 400036e8: 00090513 mv a0,s2 <== NOT EXECUTED 400036ec: 55c0e0ef jal ra,40011c48 <== NOT EXECUTED 400036f0: 00050a13 mv s4,a0 <== NOT EXECUTED printk("BLOWN STACK!!!\n"); 400036f4: 40013537 lui a0,0x40013 <== NOT EXECUTED 400036f8: c2050513 addi a0,a0,-992 # 40012c20 <== NOT EXECUTED 400036fc: 6c8040ef jal ra,40007dc4 <== NOT EXECUTED printk("task control block: 0x%08" PRIxPTR "\n", (intptr_t) running); 40003700: 40013537 lui a0,0x40013 <== NOT EXECUTED 40003704: 00048593 mv a1,s1 <== NOT EXECUTED 40003708: c3050513 addi a0,a0,-976 # 40012c30 <== NOT EXECUTED 4000370c: 6b8040ef jal ra,40007dc4 <== NOT EXECUTED printk("task ID: 0x%08lx\n", (unsigned long) running->Object.id); 40003710: 0084a583 lw a1,8(s1) <== NOT EXECUTED 40003714: 40013537 lui a0,0x40013 <== NOT EXECUTED 40003718: c4c50513 addi a0,a0,-948 # 40012c4c <== NOT EXECUTED 4000371c: 6a8040ef jal ra,40007dc4 <== NOT EXECUTED printk( 40003720: 00c4a583 lw a1,12(s1) <== NOT EXECUTED 40003724: 40013537 lui a0,0x40013 <== NOT EXECUTED 40003728: c6050513 addi a0,a0,-928 # 40012c60 <== NOT EXECUTED 4000372c: 698040ef jal ra,40007dc4 <== NOT EXECUTED _Thread_Get_name(running, name, sizeof(name)); 40003730: 02000613 li a2,32 <== NOT EXECUTED 40003734: fc040593 addi a1,s0,-64 <== NOT EXECUTED 40003738: 00048513 mv a0,s1 <== NOT EXECUTED 4000373c: 390020ef jal ra,40005acc <_Thread_Get_name> <== NOT EXECUTED printk("task name string: %s\n", name); 40003740: 40013537 lui a0,0x40013 <== NOT EXECUTED 40003744: fc040593 addi a1,s0,-64 <== NOT EXECUTED 40003748: c7450513 addi a0,a0,-908 # 40012c74 <== NOT EXECUTED 4000374c: 678040ef jal ra,40007dc4 <== NOT EXECUTED (unsigned long) stack->size, 40003750: 0cc4a683 lw a3,204(s1) <== NOT EXECUTED (intptr_t) stack->area, 40003754: 0d04a603 lw a2,208(s1) <== NOT EXECUTED printk( 40003758: 40013537 lui a0,0x40013 <== NOT EXECUTED 4000375c: 00068593 mv a1,a3 <== NOT EXECUTED 40003760: c8c50513 addi a0,a0,-884 # 40012c8c <== NOT EXECUTED 40003764: 00d606b3 add a3,a2,a3 <== NOT EXECUTED 40003768: 65c040ef jal ra,40007dc4 <== NOT EXECUTED if (!pattern_ok) { 4000376c: 080a1c63 bnez s4,40003804 <== NOT EXECUTED 40003770: 00c4a583 lw a1,12(s1) 40003774: 00800513 li a0,8 40003778: 281000ef jal ra,400041f8 <_Terminate> 4000377c: 494e55b7 lui a1,0x494e5 <== NOT EXECUTED 40003780: 45258593 addi a1,a1,1106 # 494e5452 <== NOT EXECUTED 40003784: 00800513 li a0,8 <== NOT EXECUTED 40003788: 271000ef jal ra,400041f8 <_Terminate> <== NOT EXECUTED printk("BLOWN STACK!!!\n"); 4000378c: 40013537 lui a0,0x40013 40003790: c2050513 addi a0,a0,-992 # 40012c20 40003794: 630040ef jal ra,40007dc4 printk("task control block: 0x%08" PRIxPTR "\n", (intptr_t) running); 40003798: 40013537 lui a0,0x40013 4000379c: 00048593 mv a1,s1 400037a0: c3050513 addi a0,a0,-976 # 40012c30 400037a4: 620040ef jal ra,40007dc4 printk("task ID: 0x%08lx\n", (unsigned long) running->Object.id); 400037a8: 0084a583 lw a1,8(s1) 400037ac: 40013537 lui a0,0x40013 400037b0: c4c50513 addi a0,a0,-948 # 40012c4c 400037b4: 610040ef jal ra,40007dc4 printk( 400037b8: 00c4a583 lw a1,12(s1) 400037bc: 40013537 lui a0,0x40013 400037c0: c6050513 addi a0,a0,-928 # 40012c60 400037c4: 600040ef jal ra,40007dc4 _Thread_Get_name(running, name, sizeof(name)); 400037c8: 02000613 li a2,32 400037cc: fc040593 addi a1,s0,-64 400037d0: 00048513 mv a0,s1 400037d4: 2f8020ef jal ra,40005acc <_Thread_Get_name> printk("task name string: %s\n", name); 400037d8: 40013537 lui a0,0x40013 400037dc: fc040593 addi a1,s0,-64 400037e0: c7450513 addi a0,a0,-908 # 40012c74 400037e4: 5e0040ef jal ra,40007dc4 (unsigned long) stack->size, 400037e8: 0cc4a683 lw a3,204(s1) (intptr_t) stack->area, 400037ec: 0d04a603 lw a2,208(s1) printk( 400037f0: 40013537 lui a0,0x40013 400037f4: 00068593 mv a1,a3 400037f8: c8c50513 addi a0,a0,-884 # 40012c8c 400037fc: 00d606b3 add a3,a2,a3 40003800: 5c4040ef jal ra,40007dc4 printk( 40003804: 40013537 lui a0,0x40013 40003808: 01090693 addi a3,s2,16 4000380c: 00090613 mv a2,s2 40003810: 01000593 li a1,16 40003814: cbc50513 addi a0,a0,-836 # 40012cbc 40003818: 5ac040ef jal ra,40007dc4 4000381c: f55ff06f j 40003770