URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [newlib-1.17.0/] [libgloss/] [lm32/] [scall.S] - Rev 158
Compare with Previous | Blame | View Log
/** Lattice Mico32 system calls.* Contributed by Jon Beniston <jon@beniston.com>** Redistribution and use in source and binary forms, with or without* modification, are permitted provided that the following conditions* are met:* 1. Redistributions of source code must retain the above copyright* notice, this list of conditions and the following disclaimer.* 2. Redistributions in binary form must reproduce the above copyright* notice, this list of conditions and the following disclaimer in the* documentation and/or other materials provided with the distribution.** THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF* SUCH DAMAGE.*/#include <syscall.h>/** System call convention (as implemented in simulator:* - System call number in register r8* - Return value in r1 and r2 (only if 64-bit value)* - errno in r3*/.extern errno.global _write_write:mvi r8, SYS_writescallmvhi r4, hi(errno)ori r4, r4, lo(errno)sw (r4+0), r3ret.global _read_read:mvi r8, SYS_readscallmvhi r4, hi(errno)ori r4, r4, lo(errno)sw (r4+0), r3ret.global _open_open:mvi r8, SYS_openscallmvhi r4, hi(errno)ori r4, r4, lo(errno)sw (r4+0), r3ret.global _close_close:mvi r8, SYS_closescallmvhi r4, hi(errno)ori r4, r4, lo(errno)sw (r4+0), r3ret.global _lseek_lseek:mvi r8, SYS_lseekscallmvhi r4, hi(errno)ori r4, r4, lo(errno)sw (r4+0), r3ret.global _fstat_fstat:mvi r8, SYS_fstatscallmvhi r4, hi(errno)ori r4, r4, lo(errno)sw (r4+0), r3ret.global _stat_stat:mvi r8, SYS_statscallmvhi r4, hi(errno)ori r4, r4, lo(errno)sw (r4+0), r3ret.global _link_link:mvi r8, SYS_linkscallmvhi r4, hi(errno)ori r4, r4, lo(errno)sw (r4+0), r3ret.global _unlink_unlink:mvi r8, SYS_unlinkscallmvhi r4, hi(errno)ori r4, r4, lo(errno)sw (r4+0), r3ret.global _exit_exit:/* This call doesn't return */mvi r8, SYS_exitscall
