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
|
--- a/libc/sysdeps/linux/mips/sysdep.h
+++ b/libc/sysdeps/linux/mips/sysdep.h
@@ -96,7 +96,8 @@
backwards into the previous fn. */
#ifdef __PIC__
-#define PSEUDO(name, syscall_name, args) \
+# if _MIPS_SIM == _ABIO32
+# define PSEUDO(name, syscall_name, args) \
.align 2; \
99: move a0, v0; \
la t9,__syscall_error; \
@@ -109,6 +110,23 @@
.set reorder; \
bne a3, zero, 99b; \
L(syse1):
+# else
+# define PSEUDO(name, syscall_name, args) \
+ .align 2; \
+ 99: \
+ .set noat; \
+ .cpsetup t9, $1, name; \
+ .set at; \
+ move a0, v0; \
+ dla t9,__syscall_error; \
+ .cpreturn; \
+ jr t9; \
+ ENTRY(name) \
+ li v0, SYS_ify(syscall_name); \
+ syscall; \
+ bne a3, zero, 99b; \
+L(syse1):
+# endif
#else
#define PSEUDO(name, syscall_name, args) \
.set noreorder; \
|