1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
Index: linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
===================================================================
RCS file: /cvs/glibc/libc/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h,v
retrieving revision 1.2
diff -u -r1.2 sysdep-cancel.h
--- linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 28 Jul 2003 18:45:37 -0000 1.2
+++ linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 1 Jun 2004 17:19:08 -0000
@@ -27,9 +27,6 @@
#ifdef __PIC__
# undef PSEUDO
# define PSEUDO(name, syscall_name, args) \
- .align 2; \
- 99: la t9,__syscall_error; \
- jr t9; \
ENTRY (name) \
.set noreorder; \
.cpload t9; \
@@ -44,25 +41,25 @@
ret; \
L(pseudo_cancel): \
SAVESTK_##args; \
- sw ra, 28(sp); \
- sw gp, 32(sp); \
+ sw gp, 28(sp); \
+ sw ra, 32(sp); \
PUSHARGS_##args; /* save syscall args */ \
CENABLE; \
- lw gp, 32(sp); \
- sw v0, 44(sp); /* save mask */ \
+ lw gp, 28(sp); \
+ sw v0, 36(sp); /* save mask */ \
POPARGS_##args; /* restore syscall args */ \
.set noreorder; \
li v0, SYS_ify (syscall_name); \
syscall; \
.set reorder; \
- sw v0, 36(sp); /* save syscall result */ \
- sw a3, 40(sp); /* save syscall error flag */ \
- lw a0, 44(sp); /* pass mask as arg1 */ \
+ sw v0, 40(sp); /* save syscall result */ \
+ sw a3, 44(sp); /* save syscall error flag */ \
+ lw a0, 36(sp); /* pass mask as arg1 */ \
CDISABLE; \
- lw gp, 32(sp); \
- lw v0, 36(sp); /* restore syscall result */ \
- lw a3, 40(sp); /* restore syscall error flag */ \
- lw ra, 28(sp); /* restore return address */ \
+ lw gp, 28(sp); \
+ lw v0, 40(sp); /* restore syscall result */ \
+ lw a3, 44(sp); /* restore syscall error flag */ \
+ lw ra, 32(sp); /* restore return address */ \
RESTORESTK; \
bne a3, zero, SYSCALL_ERROR_LABEL; \
L(pseudo_end):
|