Changeset 434e7f7 in rtems


Ignore:
Timestamp:
May 23, 2014, 1:52:15 PM (5 years ago)
Author:
Daniel Hellstrom <daniel@…>
Branches:
4.11, master
Children:
6a740c2
Parents:
b3049a1
git-author:
Daniel Hellstrom <daniel@…> (05/23/14 13:52:15)
git-committer:
Joel Sherrill <joel.sherrill@…> (05/23/14 14:14:08)
Message:

SPARC: syscall code clean-up and minor optimizations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libcpu/sparc/syscall/syscall.S

    rb3049a1 r434e7f7  
    3838        subcc   %g1, 2, %g0             ! syscall 2, disable interrupts
    3939        bne     3f
     40         subcc   %g1, 3, %g0            ! syscall 3, enable interrupts
    4041        or      %l0, 0x0f00, %l4        ! set PIL=15
    41         mov     %l4, %psr
    42         or      %l0, SPARC_PSR_ET_MASK, %i0     ! return old psr with ET=1
    43         ba,a    9f
     42        ba      9f
     43         or     %l0, SPARC_PSR_ET_MASK, %i0     ! return old psr with ET=1
    44443:
    45         subcc   %g1, 3, %g0             ! syscall 3, enable interrupts
    4645        bne     1f
    47         and     %i0, SPARC_PSR_PIL_MASK, %l4
     46         and    %i0, SPARC_PSR_PIL_MASK, %l4
    4847        andn    %l0, SPARC_PSR_PIL_MASK, %l5
    4948        or      %l5, %l4, %l4
    50         mov     %l4, %psr
    51         ba,a    9f
    52 
     499:                                      ! leave
     50        mov     %l4, %psr               ! Update PSR according to Syscall 2 or 3
     51        mov     0, %g1                  ! clear %g1
     52        jmpl    %l2, %g0
     53         rett    %l2 + 4
    53541:
    54         ta      0                       ! halt
    55 9:                                      ! leave
    56         mov     0, %g1                  ! clear %g1
    57         jmpl    %l2, %g0
    58         rett    %l2 + 4
     55        ta      0                       ! syscall 1 (not 2 or 3), halt
    5956
    6057        PUBLIC(sparc_disable_interrupts)
     
    6360
    6461        mov     SYS_irqdis, %g1
    65         ta      0
    6662        retl
    67         nop
     63         ta     0
    6864
    6965        PUBLIC(sparc_enable_interrupts)
     
    7268
    7369        mov     SYS_irqen, %g1
    74         ta      0
    7570        retl
    76         nop
     71         ta     0
    7772
    7873/* end of file */
Note: See TracChangeset for help on using the changeset viewer.