⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitops.s

📁 优龙2410linux2.6.8内核源代码
💻 S
字号:
/* $Id: bitops.S,v 1.3 2001/11/18 00:12:56 davem Exp $ * bitops.S: Sparc64 atomic bit operations. * * Copyright (C) 2000 David S. Miller (davem@redhat.com) */#include <asm/asi.h>	.text	.align	64	.globl	___test_and_set_bit___test_and_set_bit:	/* %o0=nr, %o1=addr */	srlx	%o0, 6, %g1	mov	1, %g5	sllx	%g1, 3, %g3	and	%o0, 63, %g2	sllx	%g5, %g2, %g5	add	%o1, %g3, %o1	ldx	[%o1], %g71:	andcc	%g7, %g5, %o0	bne,pn	%xcc, 2f	 xor	%g7, %g5, %g1	casx	[%o1], %g7, %g1	cmp	%g7, %g1	bne,a,pn %xcc, 1b	 ldx	[%o1], %g72:	retl	 membar	#StoreLoad | #StoreStore	.globl	___test_and_clear_bit___test_and_clear_bit:	/* %o0=nr, %o1=addr */	srlx	%o0, 6, %g1	mov	1, %g5	sllx	%g1, 3, %g3	and	%o0, 63, %g2	sllx	%g5, %g2, %g5	add	%o1, %g3, %o1	ldx	[%o1], %g71:	andcc	%g7, %g5, %o0	be,pn	%xcc, 2f	 xor	%g7, %g5, %g1	casx	[%o1], %g7, %g1	cmp	%g7, %g1	bne,a,pn %xcc, 1b	 ldx	[%o1], %g72:	retl	 membar	#StoreLoad | #StoreStore	.globl	___test_and_change_bit___test_and_change_bit:	/* %o0=nr, %o1=addr */	srlx	%o0, 6, %g1	mov	1, %g5	sllx	%g1, 3, %g3	and	%o0, 63, %g2	sllx	%g5, %g2, %g5	add	%o1, %g3, %o1	ldx	[%o1], %g71:	and	%g7, %g5, %o0	xor	%g7, %g5, %g1	casx	[%o1], %g7, %g1	cmp	%g7, %g1	bne,a,pn %xcc, 1b	 ldx	[%o1], %g72:	retl	 membar	#StoreLoad | #StoreStore	nop	.globl	___test_and_set_le_bit___test_and_set_le_bit:	/* %o0=nr, %o1=addr */	srlx	%o0, 5, %g1	mov	1, %g5	sllx	%g1, 2, %g3	and	%o0, 31, %g2	sllx	%g5, %g2, %g5	add	%o1, %g3, %o1	lduwa	[%o1] ASI_PL, %g71:	andcc	%g7, %g5, %o0	bne,pn	%icc, 2f	 xor	%g7, %g5, %g1	casa	[%o1] ASI_PL, %g7, %g1	cmp	%g7, %g1	bne,a,pn %icc, 1b	 lduwa	[%o1] ASI_PL, %g72:	retl	 membar	#StoreLoad | #StoreStore	.globl	___test_and_clear_le_bit___test_and_clear_le_bit:	/* %o0=nr, %o1=addr */	srlx	%o0, 5, %g1	mov	1, %g5	sllx	%g1, 2, %g3	and	%o0, 31, %g2	sllx	%g5, %g2, %g5	add	%o1, %g3, %o1	lduwa	[%o1] ASI_PL, %g71:	andcc	%g7, %g5, %o0	be,pn	%icc, 2f	 xor	%g7, %g5, %g1	casa	[%o1] ASI_PL, %g7, %g1	cmp	%g7, %g1	bne,a,pn %icc, 1b	 lduwa	[%o1] ASI_PL, %g72:	retl	 membar	#StoreLoad | #StoreStore

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -