scall32-o32.S (722cfd90420b660ad13f933efb135daf1d0e5400) scall32-o32.S (192ef366198ce16c0379100565cdc5b7bd68511f)
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1995, 96, 97, 98, 99, 2000, 01, 02 by Ralf Baechle
6 * Copyright (C) 1995-99, 2000- 02, 06 Ralf Baechle <ralf@linux-mips.org>
7 * Copyright (C) 2001 MIPS Technologies, Inc.
8 * Copyright (C) 2004 Thiemo Seufer
9 */
10#include <linux/errno.h>
11#include <asm/asm.h>
12#include <asm/asmmacro.h>
7 * Copyright (C) 2001 MIPS Technologies, Inc.
8 * Copyright (C) 2004 Thiemo Seufer
9 */
10#include <linux/errno.h>
11#include <asm/asm.h>
12#include <asm/asmmacro.h>
13#include <asm/irqflags.h>
13#include <asm/mipsregs.h>
14#include <asm/regdef.h>
15#include <asm/stackframe.h>
16#include <asm/isadep.h>
17#include <asm/sysmips.h>
18#include <asm/thread_info.h>
19#include <asm/unistd.h>
20#include <asm/war.h>
21#include <asm/asm-offsets.h>
22
23/* Highest syscall used of any syscall flavour */
24#define MAX_SYSCALL_NO __NR_O32_Linux + __NR_O32_Linux_syscalls
25
26 .align 5
27NESTED(handle_sys, PT_SIZE, sp)
28 .set noat
29 SAVE_SOME
14#include <asm/mipsregs.h>
15#include <asm/regdef.h>
16#include <asm/stackframe.h>
17#include <asm/isadep.h>
18#include <asm/sysmips.h>
19#include <asm/thread_info.h>
20#include <asm/unistd.h>
21#include <asm/war.h>
22#include <asm/asm-offsets.h>
23
24/* Highest syscall used of any syscall flavour */
25#define MAX_SYSCALL_NO __NR_O32_Linux + __NR_O32_Linux_syscalls
26
27 .align 5
28NESTED(handle_sys, PT_SIZE, sp)
29 .set noat
30 SAVE_SOME
31#ifdef CONFIG_TRACE_IRQFLAGS
32 TRACE_IRQS_ON
33#ifdef CONFIG_64BIT
34 LONG_L $8, PT_R8(sp)
35 LONG_L $9, PT_R9(sp)
36#endif
37 LONG_L $7, PT_R7(sp)
38 LONG_L $6, PT_R6(sp)
39 LONG_L $5, PT_R5(sp)
40 LONG_L $4, PT_R4(sp)
41 LONG_L $2, PT_R2(sp)
42#endif
30 STI
31 .set at
32
33 lw t1, PT_EPC(sp) # skip syscall on return
34
35#if defined(CONFIG_BINFMT_IRIX)
36 sltiu t0, v0, MAX_SYSCALL_NO + 1 # check syscall number
37#else

--- 629 unchanged lines hidden ---
43 STI
44 .set at
45
46 lw t1, PT_EPC(sp) # skip syscall on return
47
48#if defined(CONFIG_BINFMT_IRIX)
49 sltiu t0, v0, MAX_SYSCALL_NO + 1 # check syscall number
50#else

--- 629 unchanged lines hidden ---