URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [newlib-1.18.0/] [newlib/] [libc/] [sys/] [d10v/] [trap.S] - Rev 207
Compare with Previous | Blame | View Log
#include "sys/syscall.h"#define SYSCALL(name) \.global name ; \name: ; \ldi r4, SYS ## name ; \bra __trap0.text.stabs "trap.S",100,0,0,__trap0.stabs "int:t(0,1)=r(0,1);-65536;65535;",128,0,0,0.stabs "long int:t(0,2)=r(0,1);0020000000000;0017777777777;",128,0,0,0.stabs "_trap0:F(0,1)",36,0,1,__trap0.stabs "arg1:P(0,1)",64,0,1,0.stabs "arg2:P(0,1)",64,0,1,1.stabs "arg3:P(0,1)",64,0,1,2.stabs "arg4:P(0,1)",64,0,1,3.stabs "number:P(0,1)",64,0,1,4.global __trap0.type __trap0,@function__trap0:trap 15 /* trap 15 returns result in r0, error code in r4 */cmpeqi r4,0 /* is error code zero? */brf0t ret /* yes, skip setting errno */#if __INT__==32st r4,@(errno+2,r14) /* no, set errno */srai r4,15 /* sign extend high word */st r4,@(errno,r14)#elsest r4,@(errno,r14) /* no, set errno */#endifret:jmp r13 /* return to caller */.Ltrap0:.size __trap0,.Ltrap0-__trap0.stabs "",36,0,0,.Ltrap0-__trap0#define CONCAT(a,b) a ## b#define STRING(a) #a#define XSTRING(a) STRING(a)#define XSTRING2(a,b) XSTRING(CONCAT(a,b))#if __INT__==32#define _read _read16#define _lseek _lseek16#define _write _write16#define _close _close16#define _open _open16#define _creat _creat16#define _exit _exit16#define _stat _stat16#define _chmod _chmod16#define _chown _chown16#define _fork _fork16#define _wait _wait16#define _execve _execve16#define _execv _execv16#define _pipe _pipe16#define _kill _kill16#define _getpid _getpid16#endif/* Until the assembler allows semicolon as a statement separator, *//* we cannot use the SYSCALL macro. So expand it manually for now. *//* #SYSCALL(_read) *//* #SYSCALL(_lseek) *//* #SYSCALL(_write) *//* #SYSCALL(_close) *//* #SYSCALL(_open) *//* #SYSCALL(_creat) *//* #SYSCALL(_exit) *//* #SYSCALL(_stat) *//* #SYSCALL(_chmod) *//* #SYSCALL(_chown) *//* #SYSCALL(_fork) *//* #SYSCALL(_wait) *//* #SYSCALL(_execve) *//* #SYSCALL(_execv) *//* #SYSCALL(_pipe) *//* #SYSCALL(_getpid) *//* #SYSCALL(_kill) */.global _read.type _read,@function.stabs XSTRING2(_read,:F(0,1)),36,0,2,_read.stabs "fd:P(0,1)",64,0,1,0.stabs "ptr:P(0,1)",64,0,1,1.stabs "len:P(0,1)",64,0,1,2_read:ldi r4, SYS_readbra __trap0.Lread:.size _read,.-_read.stabs "",36,0,0,.Lread-_read.global _lseek.type _lseek,@function.stabs XSTRING2(_lseek,:F(0,1)),36,0,3,_lseek.stabs "fd:P(0,1)",64,0,1,0.stabs "offset:P(0,1)",64,0,1,2.stabs "whence:p(0,1)",160,0,1,0_lseek:ldi r4, SYS_lseekbra __trap0.Llseek:.size _lseek,.Llseek-_lseek.stabs "",36,0,0,.Llseek-_lseek.global _write.type _write,@function.stabs XSTRING2(_write,:F(0,1)),36,0,4,_write.stabs "fd:P(0,1)",64,0,1,0.stabs "ptr:P(0,1)",64,0,1,1.stabs "len:P(0,1)",64,0,1,2_write:ldi r4, SYS_writebra __trap0.Lwrite:.size _write,.Lwrite-_write.stabs "",36,0,0,.Lwrite-_write.global _close.type _close,@function.stabs XSTRING2(_close,:F(0,1)),36,0,5,_close.stabs "fd:P(0,1)",64,0,1,0_close:ldi r4, SYS_closebra __trap0.Lclose:.size _close,.Lclose-_close.stabs "",36,0,0,.Lclose-_close.global _open.type _open,@function.stabs XSTRING2(_open,:F(0,1)),36,0,6,_open.stabs "name:P(0,1)",64,0,1,0.stabs "flags:P(0,1)",64,0,1,1.stabs "mode:P(0,1)",64,0,1,2_open:ldi r4, SYS_openbra __trap0.Lopen:.size _open,.Lopen-_open.stabs "",36,0,0,.Lopen-_open.global _creat.type _creat,@function.stabs XSTRING2(_creat,:F(0,1)),36,0,7,_creat.stabs "name:P(0,1)",64,0,1,0.stabs "mode:P(0,1)",64,0,1,1_creat:ldi r4, SYS_creatbra __trap0.Lcreat:.size _creat,.Lcreat-_creat.stabs "",36,0,0,.Lcreat-_creat.global _exit.type _exit,@function.stabs XSTRING2(_exit,:F(0,1)),36,0,8,_exit.stabs "status:P(0,1)",64,0,1,0_exit:ldi r4, SYS_exitbra __trap0.Lexit:.size _exit,.Lexit-_exit.stabs "",36,0,0,.Lexit-_exit.global _stat.type _stat,@function.stabs XSTRING2(_stat,:F(0,1)),36,0,9,_stat.stabs "name:P(0,1)",64,0,1,0.stabs "packet:P(0,1)",64,0,1,1_stat:ldi r4, SYS_statbra __trap0.Lstat:.size _stat,.Lstat-_stat.stabs "",36,0,0,.Lstat-_stat.global _chmod.type _chmod,@function.stabs XSTRING2(_chmod,:F(0,1)),36,0,10,_chmod.stabs "name:P(0,1)",64,0,1,0.stabs "mode:P(0,1)",64,0,1,1_chmod:ldi r4, SYS_chmodbra __trap0.Lchmod:.size _chmod,.Lchmod-_chmod.stabs "",36,0,0,.Lchmod-_chmod.global _chown.type _chown,@function.stabs XSTRING2(_chown,:F(0,1)),36,0,11,_chown.stabs "name:P(0,1)",64,0,1,0.stabs "uid:P(0,1)",64,0,1,1.stabs "gid:P(0,1)",64,0,1,2_chown:ldi r4, SYS_chownbra __trap0.Lchown:.size _chown,.Lchown-_chown.stabs "",36,0,0,.Lchown-_chown.global _fork.type _fork,@function.stabs XSTRING2(_fork,:F(0,1)),36,0,12,_fork_fork:ldi r4, SYS_forkbra __trap0.Lfork:.size _fork,.Lfork-_fork.stabs "",36,0,0,.Lfork-_fork.global _wait.type _wait,@function.stabs "status:P(0,1)",64,0,1,0.stabs XSTRING2(_wait,:F(0,1)),36,0,13,_wait_wait:ldi r4, SYS_waitbra __trap0.Lwait:.size _wait,.Lwait-_wait.stabs "",36,0,0,.Lwait-_wait.global _execve.type _execve,@function.stabs "name:P(0,1)",64,0,1,0.stabs "argv:P(0,1)",64,0,1,1.stabs "envp:P(0,1)",64,0,1,2.stabs XSTRING2(_execve,:F(0,1)),36,0,14,_execve_execve:ldi r4, SYS_execvebra __trap0.Lexecve:.size _execve,.Lexecve-_execve.stabs "",36,0,0,.Lexecve-_execve.global _execv.type _execv,@function.stabs XSTRING2(_execv,:F(0,1)),36,0,15,_execv.stabs "name:P(0,1)",64,0,1,0.stabs "argv:P(0,1)",64,0,1,1_execv:ldi r4, SYS_execvbra __trap0.Lexecv:.size _execv,.Lexecv-_execv.stabs "",36,0,0,.Lexecv-_execv.global _pipe.type _pipe,@function.stabs XSTRING2(_pipe,:F(0,1)),36,0,16,_pipe.stabs "fds:P(0,1)",64,0,1,0_pipe:ldi r4, SYS_pipebra __trap0.Lpipe:.size _pipe,.Lpipe-_pipe.stabs "",36,0,0,.Lpipe-_pipe.global time.type time,@function.stabs XSTRING2(time,:F(0,1)),36,0,17,time.stabs "ptr:P(0,1)",64,0,1,0time:ldi r4, SYS_timebra __trap0.Ltime:.size time,.Ltime-time.stabs "",36,0,0,.Ltime-time.global _kill.type _kill,@function.stabs XSTRING2(_kill,:F(0,1)),36,0,18,_kill.stabs "pid:P(0,1)",64,0,1,0.stabs "sig:P(0,1)",64,0,1,1_kill:ldi r4, SYS_killbra __trap0.Lkill:.size _kill,.Lkill-_kill.stabs "",36,0,0,.Lkill-_kill.global _getpid.type _getpid,@function.stabs XSTRING2(_getpid,:F(0,1)),36,0,19,_getpid_getpid:ldi r4, SYS_getpidbra __trap0.Lgetpid:.size _getpid,.Lgetpid-_getpid.stabs "",36,0,0,.Lgetpid-_getpid
