summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m32r/m32rsim/console/trap0.S
blob: 04efa13baba9afe22a70e59233487a572c634dd5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
; Trap 0 handler (syscall interface).
;
; 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
; returned in registers.

	.text
	.global	__trap0
__trap0:
	trap	#0		; trap 0 returns result in r0, error code in r2
	cmpui	r2,#1		; is error code zero?
	bc	.Lret		; yes, skip setting errno
	ld	r4,@(sp)	; no, set errno
	st	r2,@r4
.Lret:
	jmp	lr		; return to caller