Changeset de5d6d0 in rtems


Ignore:
Timestamp:
Mar 5, 2014, 11:07:42 AM (6 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, master
Children:
234ecedd
Parents:
53ad908
git-author:
Sebastian Huber <sebastian.huber@…> (03/05/14 11:07:42)
git-committer:
Sebastian Huber <sebastian.huber@…> (03/14/14 07:46:50)
Message:

sparc: Add support for interrupt profiling

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/sparc/shared/irq_asm.S

    r53ad908 rde5d6d0  
    400400        bnz      dont_switch_stacks      ! No, then do not switch stacks
    401401
    402         nop
     402#if defined( RTEMS_PROFILING )
     403         sethi   %hi(SYM(_SPARC_Counter)), %o5
     404        ld       [%o5 + %lo(SYM(_SPARC_Counter))], %l4
     405        ld       [%l4], %o5
     406#else
     407         nop
     408#endif
     409
    403410        ld       [%l5 + PER_CPU_INTERRUPT_STACK_HIGH], %sp
    404411
     
    454461        mov      %l3, %o0               ! o0 = 1st arg = vector number
    455462        call     %g4, 0
    456         nop                             ! delay slot
     463#if defined( RTEMS_PROFILING )
     464         mov     %o5, %l3               ! save interrupt entry instant
     465        cmp      %l7, 0
     466        bne      profiling_not_outer_most_exit
     467         nop
     468        call     SYM(sparc_disable_interrupts), 0
     469         nop
     470        ld       [%l4], %o2             ! o2 = 3rd arg = interrupt exit instant
     471        mov      %l3, %o1               ! o1 = 2nd arg = interrupt entry instant
     472        call     SYM(_Profiling_Outer_most_interrupt_entry_and_exit), 0
     473         mov     %l5, %o0               ! o0 = 1st arg = per-CPU control
     474profiling_not_outer_most_exit:
     475#else
     476         nop                            ! delay slot
     477#endif
    457478
    458479        /*
Note: See TracChangeset for help on using the changeset viewer.