mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			896 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			896 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- 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;					\
 |