* add p cc
[mascara-docs.git] / i386 / linux / linux-2.3.21 / arch / sparc64 / kernel / sys32.S
blobfd1ff6a0b62c41dc8c5a92a9bb82fec81b8f2f5f
1 /* $Id: sys32.S,v 1.8 1998/10/28 08:10:37 jj Exp $
2  * sys32.S: I-cache tricks for 32-bit compatability layer simple
3  *          conversions.
4  *
5  * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
6  * Copyright (C) 1998 Jakub Jelinek   (jj@ultra.linux.cz)
7  */
9 /* NOTE: call as jump breaks return stack, we have to avoid that */
11         .text
13         .align          32
14         .globl          sys32_mmap
15 sys32_mmap:
16         srl             %o4, 0, %o4
17         sethi           %hi(sys_mmap), %g1
18         jmpl            %g1 + %lo(sys_mmap), %g0
19          srl            %o5, 0, %o5
21         .align          32
22         .globl          sys32_lseek
23         .globl          sys32_chmod, sys32_chown, sys32_lchown, sys32_mknod
24 sys32_lseek:
25         sra             %o1, 0, %o1
26         sethi           %hi(sys_lseek), %g1
27         jmpl            %g1 + %lo(sys_lseek), %g0
28          nop
29 sys32_chmod:
30         sethi           %hi(0xffff), %g2
31         sethi           %hi(sys_chmod), %g1
32         orcc            %g2, %lo(0xffff), %g2
33         jmpl            %g1 + %lo(sys_chmod), %g0
34          and            %o1, %g2, %o1
35 sys32_chown:
36         sethi           %hi(0xffff), %g2
37         sethi           %hi(sys_chown), %g1
38         orcc            %g2, %lo(0xffff), %g2
39         and             %o1, %g2, %o1
40         jmpl            %g1 + %lo(sys_chown), %g0
41          and            %o2, %g2, %o2
42 sys32_lchown:
43         sethi           %hi(0xffff), %g2
44         sethi           %hi(sys_lchown), %g1
45         orcc            %g2, %lo(0xffff), %g2
46         and             %o1, %g2, %o1
47         jmpl            %g1 + %lo(sys_lchown), %g0
48          and            %o2, %g2, %o2
49 sys32_mknod:
50         sethi           %hi(0xffff), %g2
51         sethi           %hi(sys_mknod), %g1
52         orcc            %g2, %lo(0xffff), %g2
53         jmpl            %g1 + %lo(sys_mknod), %g0
54          and            %o2, %g2, %o2
56         .align          32
57         .globl          sys32_sendto, sys32_recvfrom, sys32_getsockopt
58 sys32_sendto:
59         sethi           %hi(sys_sendto), %g1
60         jmpl            %g1 + %lo(sys_sendto), %g0
61          srl            %o4, 0, %o4
62 sys32_recvfrom:
63         srl             %o4, 0, %o4
64         sethi           %hi(sys_recvfrom), %g1
65         jmpl            %g1 + %lo(sys_recvfrom), %g0
66          srl            %o5, 0, %o5
67 sys32_getsockopt:
68         sethi           %hi(sys_getsockopt), %g1
69         jmpl            %g1 + %lo(sys_getsockopt), %g0
70          srl            %o4, 0, %o4
72         .globl          sys32_bdflush
73 sys32_bdflush:
74         sethi           %hi(sys_bdflush), %g1
75         jmpl            %g1 + %lo(sys_bdflush), %g0
76          sra            %o1, 0, %o1