This looks OK as best I can tell.
On 5/23/2014 8:52 AM, Daniel Hellstrom wrote:
> ---
>  c/src/lib/libcpu/sparc/syscall/syscall.S |   27 +++++++++++----------------
>  1 files changed, 11 insertions(+), 16 deletions(-)
>
> diff --git a/c/src/lib/libcpu/sparc/syscall/syscall.S 
> b/c/src/lib/libcpu/sparc/syscall/syscall.S
> index aa69f45..2d53ebe 100644
> --- a/c/src/lib/libcpu/sparc/syscall/syscall.S
> +++ b/c/src/lib/libcpu/sparc/syscall/syscall.S
> @@ -37,42 +37,37 @@ SYM(syscall):
>  
>       subcc   %g1, 2, %g0             ! syscall 2, disable interrupts
>       bne     3f
> +      subcc   %g1, 3, %g0            ! syscall 3, enable interrupts
>       or      %l0, 0x0f00, %l4        ! set PIL=15
> -     mov     %l4, %psr
> -     or      %l0, SPARC_PSR_ET_MASK, %i0     ! return old psr with ET=1
> -     ba,a    9f
> +     ba      9f
> +      or     %l0, SPARC_PSR_ET_MASK, %i0     ! return old psr with ET=1
>  3:
> -     subcc   %g1, 3, %g0             ! syscall 3, enable interrupts
>       bne     1f
> -     and     %i0, SPARC_PSR_PIL_MASK, %l4
> +      and    %i0, SPARC_PSR_PIL_MASK, %l4
>       andn    %l0, SPARC_PSR_PIL_MASK, %l5
>       or      %l5, %l4, %l4
> -     mov     %l4, %psr
> -     ba,a    9f
> -
> -1:
> -     ta      0                       ! halt
>  9:                                   ! leave
> +     mov     %l4, %psr               ! Update PSR according to Syscall 2 or 3
>       mov     0, %g1                  ! clear %g1
> -        jmpl    %l2, %g0
> -        rett    %l2 + 4
> +     jmpl    %l2, %g0
> +      rett    %l2 + 4
> +1:
> +     ta      0                       ! syscall 1 (not 2 or 3), halt
>  
>          PUBLIC(sparc_disable_interrupts)
>  
>  SYM(sparc_disable_interrupts):
>  
>       mov     SYS_irqdis, %g1
> -     ta      0
>       retl
> -     nop
> +      ta     0
>  
>          PUBLIC(sparc_enable_interrupts)
>  
>  SYM(sparc_enable_interrupts):
>  
>       mov     SYS_irqen, %g1
> -     ta      0
>       retl
> -     nop
> +      ta     0
>  
>  /* end of file */

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherr...@oarcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985

_______________________________________________
rtems-devel mailing list
rtems-devel@rtems.org
http://www.rtems.org/mailman/listinfo/rtems-devel

Reply via email to