svn commit: r248727 - in user/dchagin/lemul/sys: amd64/linux32 i386/linux

Dmitry Chagin dchagin at FreeBSD.org
Tue Mar 26 16:38:04 UTC 2013


Author: dchagin
Date: Tue Mar 26 16:38:03 2013
New Revision: 248727
URL: http://svnweb.freebsd.org/changeset/base/248727

Log:
  Calculate the %rip value rather than hard coding numbers.

Modified:
  user/dchagin/lemul/sys/amd64/linux32/linux32_locore.s
  user/dchagin/lemul/sys/i386/linux/linux_locore.s

Modified: user/dchagin/lemul/sys/amd64/linux32/linux32_locore.s
==============================================================================
--- user/dchagin/lemul/sys/amd64/linux32/linux32_locore.s	Tue Mar 26 14:36:11 2013	(r248726)
+++ user/dchagin/lemul/sys/amd64/linux32/linux32_locore.s	Tue Mar 26 16:38:03 2013	(r248727)
@@ -17,7 +17,7 @@ NON_GPROF_ENTRY(linux32_sigcode)
 	call .getip0
 .getip0:
 	popl	%eax
-	add	$11, %eax
+	add	$.startsigcode-.getip0, %eax	/* ret address */
 	push	%eax
 	jmp	*LINUX_SIGF_HANDLER(%ebx)
 .startsigcode:
@@ -34,7 +34,7 @@ NON_GPROF_ENTRY(linux32_rt_sigcode)
 	call	.getip1
 .getip1:
 	popl	%eax
-	add	$11, %eax
+	add	$.startrtsigcode-.getip1, %eax	/* ret address */
 	push	%eax
 	jmp	*LINUX_RT_SIGF_HANDLER(%edi)
 .startrtsigcode:

Modified: user/dchagin/lemul/sys/i386/linux/linux_locore.s
==============================================================================
--- user/dchagin/lemul/sys/i386/linux/linux_locore.s	Tue Mar 26 14:36:11 2013	(r248726)
+++ user/dchagin/lemul/sys/i386/linux/linux_locore.s	Tue Mar 26 16:38:03 2013	(r248727)
@@ -16,7 +16,7 @@ NON_GPROF_ENTRY(linux_sigcode)
 	call .getip0
 .getip0:
 	popl	%eax
-	add	$11, %eax
+	add	$.startsigcode-.getip0, %eax	/* ret address */
 	push	%eax
 	jmp	*LINUX_SIGF_HANDLER(%ebx)
 .startsigcode:
@@ -33,7 +33,7 @@ NON_GPROF_ENTRY(linux_rt_sigcode)
 	call	.getip1
 .getip1:
 	popl	%eax
-	add	$11, %eax
+	add	$.startrtsigcode-.getip1, %eax	/* ret address */
 	push	%eax
 	jmp	*LINUX_RT_SIGF_HANDLER(%edi)
 .startrtsigcode:


More information about the svn-src-user mailing list