svn commit: r287644 - in head/sys: cddl/dev/dtrace/amd64 x86/include

Mark Johnston markj at FreeBSD.org
Fri Sep 11 03:31:24 UTC 2015


Author: markj
Date: Fri Sep 11 03:31:22 2015
New Revision: 287644
URL: https://svnweb.freebsd.org/changeset/base/287644

Log:
  Remove the arg0 field from struct amd64_frame. Its existence was a bug,
  since on amd64 the first argument to a function is generally not on the
  stack.
  
  Revert an old DTrace bug fix to some code that assumed that
  sizeof(struct amd64_frame) == 16.
  
  Reviewed by:	jhb, kib
  Sponsored by:	EMC / Isilon Storage Division
  Differential Revision:	https://reviews.freebsd.org/D3255

Modified:
  head/sys/cddl/dev/dtrace/amd64/dtrace_isa.c
  head/sys/x86/include/stack.h

Modified: head/sys/cddl/dev/dtrace/amd64/dtrace_isa.c
==============================================================================
--- head/sys/cddl/dev/dtrace/amd64/dtrace_isa.c	Fri Sep 11 03:24:07 2015	(r287643)
+++ head/sys/cddl/dev/dtrace/amd64/dtrace_isa.c	Fri Sep 11 03:31:22 2015	(r287644)
@@ -440,7 +440,7 @@ dtrace_getarg(int arg, int aframes)
 	}
 
 	arg -= (inreg + 1);
-	stack = (uintptr_t *)fp + 2;
+	stack = (uintptr_t *)&fp[1];
 
 load:
 	DTRACE_CPUFLAG_SET(CPU_DTRACE_NOFAULT);

Modified: head/sys/x86/include/stack.h
==============================================================================
--- head/sys/x86/include/stack.h	Fri Sep 11 03:24:07 2015	(r287643)
+++ head/sys/x86/include/stack.h	Fri Sep 11 03:31:22 2015	(r287644)
@@ -45,7 +45,6 @@ struct i386_frame {
 struct amd64_frame {
 	struct amd64_frame	*f_frame;
 	u_long			f_retaddr;
-	u_long			f_arg0;
 };
 
 struct i386_frame {


More information about the svn-src-head mailing list