OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [newlib/] [libgloss/] [m32r/] [trap0.S] - Diff between revs 56 and 57

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 56 Rev 57
; Trap 0 handler (syscall interface).
; Trap 0 handler (syscall interface).
;
;
; The trap handler returns the result in r0 and the error code (errno value)
; The trap handler returns the result in r0 and the error code (errno value)
; in r2.  r1 is reserved in case an 8 byte quantity ever needs to be
; in r2.  r1 is reserved in case an 8 byte quantity ever needs to be
; returned in registers.
; returned in registers.
        .text
        .text
        .global __trap0
        .global __trap0
__trap0:
__trap0:
        trap    #0              ; trap 0 returns result in r0, error code in r2
        trap    #0              ; trap 0 returns result in r0, error code in r2
        cmpui   r2,#1           ; is error code zero?
        cmpui   r2,#1           ; is error code zero?
        bc      .Lret           ; yes, skip setting errno
        bc      .Lret           ; yes, skip setting errno
        ld      r4,@(sp)        ; no, set errno
        ld      r4,@(sp)        ; no, set errno
        st      r2,@r4
        st      r2,@r4
.Lret:
.Lret:
        jmp     lr              ; return to caller
        jmp     lr              ; return to caller
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.