svn commit: trunk/uClibc/libc/sysdeps/linux/mips
andersen at uclibc.org
andersen at uclibc.org
Mon Jul 3 19:10:47 UTC 2006
Author: andersen
Date: 2006-07-03 12:10:42 -0700 (Mon, 03 Jul 2006)
New Revision: 15591
Log:
Atsushi Nemoto writes:
current pipe.S seems broken for error case. For example, "la t0,
__syscall_error" should be "la t9, __syscall_error"? Jumping to
__syscall_error without reverting sp is correct?
I updated this patch against recent snapshot and tested: it looks OK.
* Get rid of saving/restoring a0. No need to adjust sp.
* Fix code in error path.
Modified:
trunk/uClibc/libc/sysdeps/linux/mips/pipe.S
Changeset:
Modified: trunk/uClibc/libc/sysdeps/linux/mips/pipe.S
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/mips/pipe.S 2006-07-03 18:58:14 UTC (rev 15590)
+++ trunk/uClibc/libc/sysdeps/linux/mips/pipe.S 2006-07-03 19:10:42 UTC (rev 15591)
@@ -10,33 +10,19 @@
.globl pipe
.ent pipe, 0
pipe:
- .frame sp, 24, sp
-#ifdef __PIC__
- .set noreorder
- .cpload $25
- .set reorder
- addiu sp,sp,-24
- .cprestore 16
-#else
- addiu sp,sp,-24
-#endif
- sw a0,16(sp)
li v0,__NR_pipe
syscall
beqz a3, 1f
#ifdef __PIC__
- la t0, __syscall_error
+ la t9, __syscall_error
jr t9
#else
j __syscall_error
#endif
1:
- lw a0, 16(sp)
sw v0, 0(a0)
sw v1, 4(a0)
li v0, 0
-2:
- addiu sp,sp,24
j ra
.end pipe
.size pipe,.-pipe
More information about the uClibc-cvs
mailing list