Module Name:    src
Committed By:   thorpej
Date:           Wed Aug 25 13:28:51 UTC 2021

Modified Files:
        src/sys/arch/alpha/alpha: lock_stubs.s
        src/sys/arch/sparc64/sparc64: lock_stubs.s

Log Message:
G/C _lock_cas(); it is no longer needed (kern_mutex.c uses atomic_cas_ulong()
with appropriate memory barriers).


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/alpha/alpha/lock_stubs.s
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/sparc64/sparc64/lock_stubs.s

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/alpha/alpha/lock_stubs.s
diff -u src/sys/arch/alpha/alpha/lock_stubs.s:1.9 src/sys/arch/alpha/alpha/lock_stubs.s:1.10
--- src/sys/arch/alpha/alpha/lock_stubs.s:1.9	Wed Jul 14 02:18:10 2021
+++ src/sys/arch/alpha/alpha/lock_stubs.s	Wed Aug 25 13:28:51 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: lock_stubs.s,v 1.9 2021/07/14 02:18:10 thorpej Exp $	*/
+/*	$NetBSD: lock_stubs.s,v 1.10 2021/08/25 13:28:51 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2007, 2021 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
 
 #include <machine/asm.h>
 
-__KERNEL_RCSID(0, "$NetBSD: lock_stubs.s,v 1.9 2021/07/14 02:18:10 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lock_stubs.s,v 1.10 2021/08/25 13:28:51 thorpej Exp $");
 
 #include "assym.h"
 
@@ -48,27 +48,6 @@ __KERNEL_RCSID(0, "$NetBSD: lock_stubs.s
 #define	MB(label)	/* nothing */
 #endif
 
-/*
- * int	_lock_cas(uintptr_t *ptr, uintptr_t old, uintptr_t new)
- */
-LEAF(_lock_cas, 3)
-1:
-	mov	a2, v0
-	ldq_l	t1, 0(a0)
-	cmpeq	t1, a1, t1
-	beq	t1, 2f
-	stq_c	v0, 0(a0)
-	beq	v0, 3f
-	MB(.L__lock_cas_mb_1)
-	RET
-2:
-	mov	zero, v0
-	MB(.L__lock_cas_mb_2)
-	RET
-3:
-	br	1b
-	END(_lock_cas)
-
 #if !defined(LOCKDEBUG)
 
 /*
@@ -396,8 +375,6 @@ LEAF(rw_exit, 1)
 	.section ".rodata"
 	.globl	lock_stub_patch_table
 lock_stub_patch_table:
-	.quad	.L__lock_cas_mb_1
-	.quad	.L__lock_cas_mb_2
 #if !defined(LOCKDEBUG)
 	.quad	.L_mutex_enter_mb_1
 	.quad	.L_mutex_exit_mb_1

Index: src/sys/arch/sparc64/sparc64/lock_stubs.s
diff -u src/sys/arch/sparc64/sparc64/lock_stubs.s:1.9 src/sys/arch/sparc64/sparc64/lock_stubs.s:1.10
--- src/sys/arch/sparc64/sparc64/lock_stubs.s:1.9	Sun Apr 28 23:42:23 2013
+++ src/sys/arch/sparc64/sparc64/lock_stubs.s	Wed Aug 25 13:28:51 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: lock_stubs.s,v 1.9 2013/04/28 23:42:23 nakayama Exp $	*/
+/*	$NetBSD: lock_stubs.s,v 1.10 2021/08/25 13:28:51 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2002, 2006 The NetBSD Foundation, Inc.
@@ -48,18 +48,6 @@
 #define	MB_MEM	/* nothing */
 #endif
 
-/*
- * int _lock_cas(uintptr_t *ptr, uintptr_t old, uintptr_t new);
- */
-.align	32
-ENTRY(_lock_cas)
-	CASPTR	[%o0], %o1, %o2			! compare-and-swap
-	MB_MEM
-	xor	%o1, %o2, %o2			! expected == actual?
-	clr	%o0
-	retl
-	 movrz	%o2, 1, %o0
-
 #if !defined(LOCKDEBUG)
 
 /*

Reply via email to