URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Go to most recent revision |
Only display areas with differences |
Details |
Blame |
View Log
Rev 207 |
Rev 345 |
; 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
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.