]> sourceware.org Git - glibc.git/blame - sysdeps/unix/sysv/linux/mips/mips64/syscall.S
Amend log entry with omitted file.
[glibc.git] / sysdeps / unix / sysv / linux / mips / mips64 / syscall.S
CommitLineData
2c923c36 1/* Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
9a197dcc
RM
2 This file is part of the GNU C Library.
3
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with the GNU C Library; if not, write to the Free
16 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17 02111-1307 USA. */
18
9a197dcc 19#include <sysdep.h>
9a197dcc 20
a334319f
UD
21#include <sys/asm.h>
22
2c923c36
AJ
23/* Usage:
24 long syscall (syscall_number, arg1, arg2, arg3, arg4, arg5, arg6, arg7)
a334319f 25
2c923c36 26 We need to do some arg shifting, syscall_number will be in v0. */
a334319f
UD
27
28
29 .text
2c923c36
AJ
30NESTED (syscall, SZREG, ra)
31 .mask 0x00010000, -SZREG
32 .fmask 0x00000000, 0
33 PTR_ADDIU sp, -SZREG
34 REG_S s0, (sp)
35
36 move s0, a0
a334319f
UD
37 move a0, a1 /* shift arg1 - arg7. */
38 move a1, a2
39 move a2, a3
40 move a3, a4
41 move a4, a5
42 move a5, a6
43 move a6, a7
0ecb606c 44
2c923c36 45 move v0, s0 /* Syscall number -> v0 */
a334319f 46 syscall /* Do the system call. */
2c923c36
AJ
47
48 REG_L s0, (sp)
49 PTR_ADDIU sp, SZREG
a334319f 50 bne a3, zero, L(error)
0ecb606c 51
a334319f 52 ret
0ecb606c 53
a334319f 54L(error):
2c923c36
AJ
55 SETUP_GP64 (a0, syscall)
56 PTR_LA t9, __syscall_error
57 RESTORE_GP64
a334319f 58 jr t9
0ecb606c 59
2c923c36 60END (syscall)
This page took 0.335115 seconds and 5 git commands to generate.