Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Jan 2016 18:19:18 +0000 (UTC)
From:      Dmitry Chagin <dchagin@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r293604 - stable/10/sys/amd64/linux
Message-ID:  <201601091819.u09IJInU075421@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dchagin
Date: Sat Jan  9 18:19:18 2016
New Revision: 293604
URL: https://svnweb.freebsd.org/changeset/base/293604

Log:
  MFC r284159:
  
  Futex is an aligned 32-bit integer. Use the proper instruction and
  operand when dereferencing futex pointer.

Modified:
  stable/10/sys/amd64/linux/linux_support.s
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/amd64/linux/linux_support.s
==============================================================================
--- stable/10/sys/amd64/linux/linux_support.s	Sat Jan  9 18:17:58 2016	(r293603)
+++ stable/10/sys/amd64/linux/linux_support.s	Sat Jan  9 18:19:18 2016	(r293604)
@@ -45,9 +45,9 @@ ENTRY(futex_xchgl)
 	movq	$VM_MAXUSER_ADDRESS-4,%rax
 	cmpq	%rax,%rsi
 	ja	futex_fault
-	xchgq	%rdi,(%rsi)
-	movq	%rdi,(%rdx)
-	xorq	%rax,%rax
+	xchgl	%edi,(%rsi)
+	movl	%edi,(%rdx)
+	xorl	%eax,%eax
 	movq	%rax,PCB_ONFAULT(%r8)
 	ret
 
@@ -60,9 +60,9 @@ ENTRY(futex_addl)
 #ifdef SMP
 	lock
 #endif
-	xaddq	%rdi,(%rsi)
-	movq	%rdi,(%rdx)
-	xorq	%rax,%rax
+	xaddl	%edi,(%rsi)
+	movl	%edi,(%rdx)
+	xorl	%eax,%eax
 	movq	%rax,PCB_ONFAULT(%r8)
 	ret
 
@@ -72,16 +72,16 @@ ENTRY(futex_orl)
 	movq	$VM_MAXUSER_ADDRESS-4,%rax
 	cmpq	%rax,%rsi
 	ja	futex_fault
-	movq	(%rsi),%rax
-1:	movq	%rax,%rcx
-	orq	%rdi,%rcx
+	movl	(%rsi),%eax
+1:	movl	%eax,%ecx
+	orl	%edi,%ecx
 #ifdef SMP
 	lock
 #endif
-	cmpxchgq %rcx,(%rsi)
+	cmpxchgl %ecx,(%rsi)
 	jnz	1b
-	movq	%rax,(%rdx)
-	xorq	%rax,%rax
+	movl	%eax,(%rdx)
+	xorl	%eax,%eax
 	movq	%rax,PCB_ONFAULT(%r8)
 	ret
 
@@ -91,16 +91,16 @@ ENTRY(futex_andl)
 	movq	$VM_MAXUSER_ADDRESS-4,%rax
 	cmpq	%rax,%rsi
 	ja	futex_fault
-	movq	(%rsi),%rax
-1:	movq	%rax,%rcx
-	andq	%rdi,%rcx
+	movl	(%rsi),%eax
+1:	movl	%eax,%ecx
+	andl	%edi,%ecx
 #ifdef SMP
 	lock
 #endif
-	cmpxchgq %rcx,(%rsi)
+	cmpxchgl %ecx,(%rsi)
 	jnz	1b
-	movq	%rax,(%rdx)
-	xorq	%rax,%rax
+	movl	%eax,(%rdx)
+	xorl	%eax,%eax
 	movq	%rax,PCB_ONFAULT(%r8)
 	ret
 
@@ -110,15 +110,15 @@ ENTRY(futex_xorl)
 	movq	$VM_MAXUSER_ADDRESS-4,%rax
 	cmpq	%rax,%rsi
 	ja	futex_fault
-	movq	(%rsi),%rax
-1:	movq	%rax,%rcx
-	xorq	%rdi,%rcx
+	movl	(%rsi),%eax
+1:	movl	%eax,%ecx
+	xorl	%edi,%ecx
 #ifdef SMP
 	lock
 #endif
-	cmpxchgq %rcx,(%rsi)
+	cmpxchgl %ecx,(%rsi)
 	jnz	1b
-	movq	%rax,(%rdx)
-	xorq	%rax,%rax
+	movl	%eax,(%rdx)
+	xorl	%eax,%eax
 	movq	%rax,PCB_ONFAULT(%r8)
 	ret



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601091819.u09IJInU075421>