small patch for arm sysdep

Philip Blundell Philip.Blundell@pobox.com
Thu Mar 27 00:26:00 GMT 2003


The existing definition for PSEUDO_RET_NOERRNO isn't quite correct. 
"movcc" is a predicated instruction; it only returns if the carry flag
is clear.  What's needed here is an unconditional return.

p.

2003-03-27  Philip Blundell  <philb@gnu.org>

	* sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO_RET_NOERRNO): Use
	unconditional mov.  Remove nop.

Index: sysdeps/unix/sysv/linux/arm/sysdep.h
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/arm/sysdep.h,v
retrieving revision 1.23
diff -u -r1.23 sysdep.h
--- sysdeps/unix/sysv/linux/arm/sysdep.h	24 Mar 2003 19:00:28 -0000	1.23
+++ sysdeps/unix/sysv/linux/arm/sysdep.h	27 Mar 2003 00:17:34 -0000
@@ -71,8 +71,8 @@
     DO_CALL (syscall_name, args);
 
 #define PSEUDO_RET_NOERRNO						      \
-    RETINSTR(movcc, pc, lr);						      \
-    nop
+    RETINSTR(mov, pc, lr);
+
 #undef ret_NOERRNO
 #define ret_NOERRNO PSEUDO_RET_NOERRNO
 





More information about the Libc-hacker mailing list