svn commit: r203475 - head/lib/libc/mips/sys

Neel Natu neel at FreeBSD.org
Thu Feb 4 05:50:00 UTC 2010


Author: neel
Date: Thu Feb  4 05:49:59 2010
New Revision: 203475
URL: http://svn.freebsd.org/changeset/base/203475

Log:
  Reinstate the ptrace patch to restore the 'gp' register after calling
  a function. I made a mistake in assuming that the .cprestore directive
  will cause the assembler to automatically restore 'gp' after the 'jalr'.
  
  The .cprestore directive does its magic only after 'jal' and 'bal'
  instructions - not the 'jalr'.
  
  Pointed out by: c.jayachandran at gmail.com

Modified:
  head/lib/libc/mips/sys/ptrace.S

Modified: head/lib/libc/mips/sys/ptrace.S
==============================================================================
--- head/lib/libc/mips/sys/ptrace.S	Thu Feb  4 05:25:59 2010	(r203474)
+++ head/lib/libc/mips/sys/ptrace.S	Thu Feb  4 05:49:59 2010	(r203475)
@@ -56,6 +56,9 @@ LEAF(ptrace)
 #endif
 	la	t9, _C_LABEL(__error)	# locate address of errno
 	jalr	t9
+#ifdef __ABICALLS__
+	lw	gp, 16(sp)
+#endif
 	sw	zero, 0(v0)
 	lw	ra, 32(sp)
 	addu	sp, sp, 40


More information about the svn-src-all mailing list