=============================================================================== 40007800 <_IO_Initialize_all_drivers>: #include bool _IO_All_drivers_initialized; void _IO_Initialize_all_drivers( void ) { 40007800: 9d e3 bf a0 save %sp, -96, %sp rtems_device_major_number major; _IO_All_drivers_initialized = true; 40007804: 03 10 00 4f sethi %hi(0x40013c00), %g1 40007808: 84 10 20 01 mov 1, %g2 4000780c: c4 28 62 30 stb %g2, [ %g1 + 0x230 ] for ( major=0 ; major < _IO_Number_of_drivers ; major ++ ) 40007810: 03 10 00 42 sethi %hi(0x40010800), %g1 40007814: f8 00 60 78 ld [ %g1 + 0x78 ], %i4 ! 40010878 <_IO_Number_of_drivers> 40007818: 80 a7 20 00 cmp %i4, 0 4000781c: 02 80 00 0a be 40007844 <_IO_Initialize_all_drivers+0x44> <== NEVER TAKEN 40007820: ba 10 20 00 clr %i5 (void) rtems_io_initialize( major, 0, NULL ); 40007824: 90 10 00 1d mov %i5, %o0 40007828: 94 10 20 00 clr %o2 4000782c: 40 00 1c 79 call 4000ea10 40007830: 92 10 20 00 clr %o1 for ( major=0 ; major < _IO_Number_of_drivers ; major ++ ) 40007834: ba 07 60 01 inc %i5 40007838: 80 a7 40 1c cmp %i5, %i4 4000783c: 12 bf ff fb bne 40007828 <_IO_Initialize_all_drivers+0x28> <== NEVER TAKEN 40007840: 90 10 00 1d mov %i5, %o0 } 40007844: 81 c7 e0 08 ret 40007848: 81 e8 00 00 restore =============================================================================== 4001108c <_Objects_Information_table>: 4001108c: 00 00 00 00 40 01 37 d8 40 01 37 ac 40 01 37 78 ....@.7.@.7.@.7x 4001109c: 00 00 00 00 5f 41 6c 6c 6f 63 61 74 6f 72 00 00 ...._Allocator.. 400110ac: 00 00 00 00 28 66 6d 74 20 6e 75 6c 6c 29 0a 00 ....(fmt null).. 400110bc: 00 00 00 00 28 6e 75 6c 6c 29 00 ....(null). =============================================================================== 400077e0 : #include void rtems_fatal_error_occurred( uint32_t the_error ) { 400077e0: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED _Terminate( INTERNAL_ERROR_RTEMS_API, the_error ); 400077e4: 90 10 20 01 mov 1, %o0 <== NOT EXECUTED 400077e8: 40 00 02 3f call 400080e4 <_Terminate> <== NOT EXECUTED 400077ec: 92 10 00 18 mov %i0, %o1 <== NOT EXECUTED 400077f0: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 400077f4 : #include #include const char *rtems_get_version_string(void) { return _RTEMS_version; 400077f4: 11 10 00 45 sethi %hi(0x40011400), %o0 <== NOT EXECUTED } 400077f8: 81 c3 e0 08 retl <== NOT EXECUTED 400077fc: 90 12 21 68 or %o0, 0x168, %o0 ! 40011568 <_RTEMS_version> <== NOT EXECUTED =============================================================================== 40007794 : RTEMS_SYSINIT_DEVICE_DRIVERS, RTEMS_SYSINIT_ORDER_MIDDLE ); void rtems_initialize_executive(void) { 40007794: 9d e3 bf a0 save %sp, -96, %sp RTEMS_INLINE_ROUTINE uintptr_t _Linker_set_Obfuscate( const void *ptr ) { uintptr_t addr; addr = (uintptr_t) ptr; 40007798: 3b 10 00 45 sethi %hi(0x40011400), %i5 const rtems_sysinit_item *item; /* Invoke the registered system initialization handlers */ RTEMS_LINKER_SET_FOREACH( _Sysinit, item ) { 4000779c: 39 10 00 45 sethi %hi(0x40011400), %i4 RTEMS_OBFUSCATE_VARIABLE( addr ); 400077a0: ba 17 61 c0 or %i5, 0x1c0, %i5 400077a4: b8 17 22 08 or %i4, 0x208, %i4 400077a8: 80 a7 40 1c cmp %i5, %i4 400077ac: 02 80 00 09 be 400077d0 <== NEVER TAKEN 400077b0: 03 10 00 4f sethi %hi(0x40013c00), %g1 ( *item->handler )(); 400077b4: c2 07 40 00 ld [ %i5 ], %g1 400077b8: 9f c0 40 00 call %g1 400077bc: ba 07 60 04 add %i5, 4, %i5 RTEMS_LINKER_SET_FOREACH( _Sysinit, item ) { 400077c0: 80 a7 40 1c cmp %i5, %i4 400077c4: 32 bf ff fd bne,a 400077b8 400077c8: c2 07 40 00 ld [ %i5 ], %g1 _System_state_Current = state; 400077cc: 03 10 00 4f sethi %hi(0x40013c00), %g1 400077d0: 84 10 20 02 mov 2, %g2 _System_state_Set( SYSTEM_STATE_UP ); _SMP_Request_start_multitasking(); _Thread_Start_multitasking(); 400077d4: 40 00 14 e7 call 4000cb70 <_Thread_Start_multitasking> 400077d8: c4 20 62 3c st %g2, [ %g1 + 0x23c ] 400077dc: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 4000e950 : rtems_status_code rtems_io_close( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4000e950: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4000e954: 03 10 00 42 sethi %hi(0x40010800), %g1 <== NOT EXECUTED 4000e958: c2 00 60 78 ld [ %g1 + 0x78 ], %g1 ! 40010878 <_IO_Number_of_drivers> <== NOT EXECUTED { 4000e95c: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED if ( major >= _IO_Number_of_drivers ) 4000e960: 80 a0 40 08 cmp %g1, %o0 <== NOT EXECUTED 4000e964: 08 80 00 11 bleu 4000e9a8 <== NOT EXECUTED 4000e968: b0 10 20 0a mov 0xa, %i0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].close_entry; 4000e96c: 83 2a 20 01 sll %o0, 1, %g1 <== NOT EXECUTED 4000e970: 82 00 40 08 add %g1, %o0, %g1 <== NOT EXECUTED 4000e974: 85 28 60 03 sll %g1, 3, %g2 <== NOT EXECUTED 4000e978: 03 10 00 4a sethi %hi(0x40012800), %g1 <== NOT EXECUTED 4000e97c: 82 10 62 c0 or %g1, 0x2c0, %g1 ! 40012ac0 <_IO_Driver_address_table> <== NOT EXECUTED 4000e980: 82 00 40 02 add %g1, %g2, %g1 <== NOT EXECUTED 4000e984: c2 00 60 08 ld [ %g1 + 8 ], %g1 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4000e988: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000e98c: 02 80 00 06 be 4000e9a4 <== NOT EXECUTED 4000e990: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 4000e994: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000e998: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4000e99c: 81 c7 e0 08 ret <== NOT EXECUTED 4000e9a0: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED 4000e9a4: b0 10 20 00 clr %i0 <== NOT EXECUTED } 4000e9a8: 81 c7 e0 08 ret <== NOT EXECUTED 4000e9ac: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000e9b0 : rtems_status_code rtems_io_control( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4000e9b0: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4000e9b4: 03 10 00 42 sethi %hi(0x40010800), %g1 <== NOT EXECUTED 4000e9b8: c2 00 60 78 ld [ %g1 + 0x78 ], %g1 ! 40010878 <_IO_Number_of_drivers> <== NOT EXECUTED { 4000e9bc: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED if ( major >= _IO_Number_of_drivers ) 4000e9c0: 80 a0 40 08 cmp %g1, %o0 <== NOT EXECUTED 4000e9c4: 08 80 00 11 bleu 4000ea08 <== NOT EXECUTED 4000e9c8: b0 10 20 0a mov 0xa, %i0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].control_entry; 4000e9cc: 83 2a 20 01 sll %o0, 1, %g1 <== NOT EXECUTED 4000e9d0: 82 00 40 08 add %g1, %o0, %g1 <== NOT EXECUTED 4000e9d4: 85 28 60 03 sll %g1, 3, %g2 <== NOT EXECUTED 4000e9d8: 03 10 00 4a sethi %hi(0x40012800), %g1 <== NOT EXECUTED 4000e9dc: 82 10 62 c0 or %g1, 0x2c0, %g1 ! 40012ac0 <_IO_Driver_address_table> <== NOT EXECUTED 4000e9e0: 82 00 40 02 add %g1, %g2, %g1 <== NOT EXECUTED 4000e9e4: c2 00 60 14 ld [ %g1 + 0x14 ], %g1 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4000e9e8: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000e9ec: 02 80 00 06 be 4000ea04 <== NOT EXECUTED 4000e9f0: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 4000e9f4: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000e9f8: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4000e9fc: 81 c7 e0 08 ret <== NOT EXECUTED 4000ea00: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED 4000ea04: b0 10 20 00 clr %i0 <== NOT EXECUTED } 4000ea08: 81 c7 e0 08 ret <== NOT EXECUTED 4000ea0c: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000ea10 : rtems_status_code rtems_io_initialize( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4000ea10: 9d e3 bf a0 save %sp, -96, %sp rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4000ea14: 03 10 00 42 sethi %hi(0x40010800), %g1 4000ea18: c2 00 60 78 ld [ %g1 + 0x78 ], %g1 ! 40010878 <_IO_Number_of_drivers> { 4000ea1c: 90 10 00 18 mov %i0, %o0 if ( major >= _IO_Number_of_drivers ) 4000ea20: 80 a0 40 08 cmp %g1, %o0 4000ea24: 08 80 00 10 bleu 4000ea64 <== NEVER TAKEN 4000ea28: b0 10 20 0a mov 0xa, %i0 return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].initialization_entry; 4000ea2c: 83 2a 20 01 sll %o0, 1, %g1 4000ea30: 07 10 00 4a sethi %hi(0x40012800), %g3 4000ea34: 82 00 40 08 add %g1, %o0, %g1 4000ea38: 86 10 e2 c0 or %g3, 0x2c0, %g3 4000ea3c: 83 28 60 03 sll %g1, 3, %g1 4000ea40: c2 00 c0 01 ld [ %g3 + %g1 ], %g1 return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4000ea44: 80 a0 60 00 cmp %g1, 0 4000ea48: 02 80 00 06 be 4000ea60 4000ea4c: 94 10 00 1a mov %i2, %o2 4000ea50: 9f c0 40 00 call %g1 4000ea54: 92 10 00 19 mov %i1, %o1 4000ea58: 81 c7 e0 08 ret 4000ea5c: 91 e8 00 08 restore %g0, %o0, %o0 4000ea60: b0 10 20 00 clr %i0 } 4000ea64: 81 c7 e0 08 ret 4000ea68: 81 e8 00 00 restore =============================================================================== 4000ea6c : rtems_status_code rtems_io_open( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4000ea6c: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4000ea70: 03 10 00 42 sethi %hi(0x40010800), %g1 <== NOT EXECUTED 4000ea74: c2 00 60 78 ld [ %g1 + 0x78 ], %g1 ! 40010878 <_IO_Number_of_drivers> <== NOT EXECUTED { 4000ea78: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED if ( major >= _IO_Number_of_drivers ) 4000ea7c: 80 a0 40 08 cmp %g1, %o0 <== NOT EXECUTED 4000ea80: 08 80 00 11 bleu 4000eac4 <== NOT EXECUTED 4000ea84: b0 10 20 0a mov 0xa, %i0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].open_entry; 4000ea88: 83 2a 20 01 sll %o0, 1, %g1 <== NOT EXECUTED 4000ea8c: 82 00 40 08 add %g1, %o0, %g1 <== NOT EXECUTED 4000ea90: 85 28 60 03 sll %g1, 3, %g2 <== NOT EXECUTED 4000ea94: 03 10 00 4a sethi %hi(0x40012800), %g1 <== NOT EXECUTED 4000ea98: 82 10 62 c0 or %g1, 0x2c0, %g1 ! 40012ac0 <_IO_Driver_address_table> <== NOT EXECUTED 4000ea9c: 82 00 40 02 add %g1, %g2, %g1 <== NOT EXECUTED 4000eaa0: c2 00 60 04 ld [ %g1 + 4 ], %g1 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4000eaa4: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000eaa8: 02 80 00 06 be 4000eac0 <== NOT EXECUTED 4000eaac: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 4000eab0: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000eab4: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4000eab8: 81 c7 e0 08 ret <== NOT EXECUTED 4000eabc: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED 4000eac0: b0 10 20 00 clr %i0 <== NOT EXECUTED } 4000eac4: 81 c7 e0 08 ret <== NOT EXECUTED 4000eac8: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000eacc : rtems_status_code rtems_io_read( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4000eacc: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4000ead0: 03 10 00 42 sethi %hi(0x40010800), %g1 <== NOT EXECUTED 4000ead4: c2 00 60 78 ld [ %g1 + 0x78 ], %g1 ! 40010878 <_IO_Number_of_drivers> <== NOT EXECUTED { 4000ead8: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED if ( major >= _IO_Number_of_drivers ) 4000eadc: 80 a0 40 08 cmp %g1, %o0 <== NOT EXECUTED 4000eae0: 08 80 00 11 bleu 4000eb24 <== NOT EXECUTED 4000eae4: b0 10 20 0a mov 0xa, %i0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].read_entry; 4000eae8: 83 2a 20 01 sll %o0, 1, %g1 <== NOT EXECUTED 4000eaec: 82 00 40 08 add %g1, %o0, %g1 <== NOT EXECUTED 4000eaf0: 85 28 60 03 sll %g1, 3, %g2 <== NOT EXECUTED 4000eaf4: 03 10 00 4a sethi %hi(0x40012800), %g1 <== NOT EXECUTED 4000eaf8: 82 10 62 c0 or %g1, 0x2c0, %g1 ! 40012ac0 <_IO_Driver_address_table> <== NOT EXECUTED 4000eafc: 82 00 40 02 add %g1, %g2, %g1 <== NOT EXECUTED 4000eb00: c2 00 60 0c ld [ %g1 + 0xc ], %g1 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4000eb04: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000eb08: 02 80 00 06 be 4000eb20 <== NOT EXECUTED 4000eb0c: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 4000eb10: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000eb14: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4000eb18: 81 c7 e0 08 ret <== NOT EXECUTED 4000eb1c: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED 4000eb20: b0 10 20 00 clr %i0 <== NOT EXECUTED } 4000eb24: 81 c7 e0 08 ret <== NOT EXECUTED 4000eb28: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000eb2c : rtems_status_code rtems_io_write( rtems_device_major_number major, rtems_device_minor_number minor, void *argument ) { 4000eb2c: 9d e3 bf a0 save %sp, -96, %sp <== NOT EXECUTED rtems_device_driver_entry callout; if ( major >= _IO_Number_of_drivers ) 4000eb30: 03 10 00 42 sethi %hi(0x40010800), %g1 <== NOT EXECUTED 4000eb34: c2 00 60 78 ld [ %g1 + 0x78 ], %g1 ! 40010878 <_IO_Number_of_drivers> <== NOT EXECUTED { 4000eb38: 90 10 00 18 mov %i0, %o0 <== NOT EXECUTED if ( major >= _IO_Number_of_drivers ) 4000eb3c: 80 a0 40 08 cmp %g1, %o0 <== NOT EXECUTED 4000eb40: 08 80 00 11 bleu 4000eb84 <== NOT EXECUTED 4000eb44: b0 10 20 0a mov 0xa, %i0 <== NOT EXECUTED return RTEMS_INVALID_NUMBER; callout = _IO_Driver_address_table[major].write_entry; 4000eb48: 83 2a 20 01 sll %o0, 1, %g1 <== NOT EXECUTED 4000eb4c: 82 00 40 08 add %g1, %o0, %g1 <== NOT EXECUTED 4000eb50: 85 28 60 03 sll %g1, 3, %g2 <== NOT EXECUTED 4000eb54: 03 10 00 4a sethi %hi(0x40012800), %g1 <== NOT EXECUTED 4000eb58: 82 10 62 c0 or %g1, 0x2c0, %g1 ! 40012ac0 <_IO_Driver_address_table> <== NOT EXECUTED 4000eb5c: 82 00 40 02 add %g1, %g2, %g1 <== NOT EXECUTED 4000eb60: c2 00 60 10 ld [ %g1 + 0x10 ], %g1 <== NOT EXECUTED return callout ? callout(major, minor, argument) : RTEMS_SUCCESSFUL; 4000eb64: 80 a0 60 00 cmp %g1, 0 <== NOT EXECUTED 4000eb68: 02 80 00 06 be 4000eb80 <== NOT EXECUTED 4000eb6c: 94 10 00 1a mov %i2, %o2 <== NOT EXECUTED 4000eb70: 9f c0 40 00 call %g1 <== NOT EXECUTED 4000eb74: 92 10 00 19 mov %i1, %o1 <== NOT EXECUTED 4000eb78: 81 c7 e0 08 ret <== NOT EXECUTED 4000eb7c: 91 e8 00 08 restore %g0, %o0, %o0 <== NOT EXECUTED 4000eb80: b0 10 20 00 clr %i0 <== NOT EXECUTED } 4000eb84: 81 c7 e0 08 ret <== NOT EXECUTED 4000eb88: 81 e8 00 00 restore <== NOT EXECUTED =============================================================================== 4000e93c : #include #include void rtems_shutdown_executive( uint32_t result ) { 4000e93c: 9d e3 bf a0 save %sp, -96, %sp _Terminate( RTEMS_FATAL_SOURCE_EXIT, result ); 4000e940: 90 10 20 05 mov 5, %o0 4000e944: 7f ff e5 e8 call 400080e4 <_Terminate> 4000e948: 92 10 00 18 mov %i0, %o1 4000e94c: 01 00 00 00 nop <== NOT EXECUTED =============================================================================== 40007bd8 : rtems_timecounter_simple *tc, uint32_t frequency_in_hz, uint32_t counter_ticks_per_clock_tick, timecounter_get_t *get_timecount ) { 40007bd8: 9d e3 bf a0 save %sp, -96, %sp uint32_t mask; uint64_t scaler; int i; for ( i = 0; i < 32; ++i ) { if ( power_of_two >= counter_ticks_per_clock_tick ) { 40007bdc: 80 a6 a0 01 cmp %i2, 1 40007be0: 08 80 00 28 bleu 40007c80 <== NEVER TAKEN 40007be4: b8 10 00 18 mov %i0, %i4 40007be8: 82 10 20 1f mov 0x1f, %g1 break; } power_of_two *= 2; 40007bec: 10 80 00 05 b 40007c00 40007bf0: 90 10 20 02 mov 2, %o0 for ( i = 0; i < 32; ++i ) { 40007bf4: 82 80 7f ff addcc %g1, -1, %g1 40007bf8: 02 80 00 1c be 40007c68 <== NEVER TAKEN 40007bfc: 90 10 00 02 mov %g2, %o0 if ( power_of_two >= counter_ticks_per_clock_tick ) { 40007c00: 80 a6 80 08 cmp %i2, %o0 40007c04: 18 bf ff fc bgu 40007bf4 40007c08: 85 2a 20 01 sll %o0, 1, %g2 40007c0c: 21 20 00 00 sethi %hi(0x80000000), %l0 40007c10: ba 00 bf ff add %g2, -1, %i5 40007c14: a0 2a 00 10 andn %o0, %l0, %l0 } mask = ( 2 * power_of_two ) - 1; scaler = ( (uint64_t) power_of_two << 32 ) / counter_ticks_per_clock_tick; 40007c18: 94 10 20 00 clr %o2 40007c1c: 96 10 00 1a mov %i2, %o3 40007c20: 40 00 23 53 call 4001096c <__udivdi3> 40007c24: 92 10 20 00 clr %o1 tc->scaler = scaler; tc->real_interval = counter_ticks_per_clock_tick; tc->binary_interval = ( mask + 1 ) / 2; tc->tc.tc_get_timecount = get_timecount; tc->tc.tc_counter_mask = mask; tc->tc.tc_frequency = (uint32_t) ( ( frequency_in_hz * scaler ) >> 32 ); 40007c28: 82 5e 40 08 smul %i1, %o0, %g1 40007c2c: 86 56 40 09 umul %i1, %o1, %g3 40007c30: 85 40 00 00 rd %y, %g2 tc->scaler = scaler; 40007c34: d0 27 20 30 st %o0, [ %i4 + 0x30 ] tc->tc.tc_frequency = (uint32_t) ( ( frequency_in_hz * scaler ) >> 32 ); 40007c38: 84 00 40 02 add %g1, %g2, %g2 tc->scaler = scaler; 40007c3c: d2 27 20 34 st %o1, [ %i4 + 0x34 ] tc->tc.tc_quality = RTEMS_TIMECOUNTER_QUALITY_CLOCK_DRIVER; 40007c40: 82 10 20 64 mov 0x64, %g1 tc->real_interval = counter_ticks_per_clock_tick; 40007c44: f4 27 20 38 st %i2, [ %i4 + 0x38 ] tc->binary_interval = ( mask + 1 ) / 2; 40007c48: e0 27 20 3c st %l0, [ %i4 + 0x3c ] tc->tc.tc_get_timecount = get_timecount; 40007c4c: f6 27 00 00 st %i3, [ %i4 ] tc->tc.tc_counter_mask = mask; 40007c50: fa 27 20 08 st %i5, [ %i4 + 8 ] tc->tc.tc_frequency = (uint32_t) ( ( frequency_in_hz * scaler ) >> 32 ); 40007c54: c4 27 20 14 st %g2, [ %i4 + 0x14 ] 40007c58: c0 27 20 10 clr [ %i4 + 0x10 ] tc->tc.tc_quality = RTEMS_TIMECOUNTER_QUALITY_CLOCK_DRIVER; 40007c5c: c2 27 20 1c st %g1, [ %i4 + 0x1c ] _Timecounter_Install( &tc->tc ); 40007c60: 40 00 06 d7 call 400097bc <_Timecounter_Install> 40007c64: 91 e8 00 1c restore %g0, %i4, %o0 40007c68: 85 28 a0 01 sll %g2, 1, %g2 <== NOT EXECUTED 40007c6c: 21 1f ff ff sethi %hi(0x7ffffc00), %l0 <== NOT EXECUTED 40007c70: ba 00 bf ff add %g2, -1, %i5 <== NOT EXECUTED 40007c74: a0 14 23 ff or %l0, 0x3ff, %l0 <== NOT EXECUTED 40007c78: 10 bf ff e8 b 40007c18 <== NOT EXECUTED 40007c7c: a0 0a 00 10 and %o0, %l0, %l0 <== NOT EXECUTED if ( power_of_two >= counter_ticks_per_clock_tick ) { 40007c80: ba 10 20 01 mov 1, %i5 <== NOT EXECUTED 40007c84: a0 10 20 01 mov 1, %l0 <== NOT EXECUTED 40007c88: 10 bf ff e4 b 40007c18 <== NOT EXECUTED 40007c8c: 90 10 20 01 mov 1, %o0 <== NOT EXECUTED