xref: /plan9/sys/src/libthread/xinc386.s (revision 59cc4ca53493a3c6d2349fe2b7f7c40f7dce7294)
1/*#define XADDL(s,d) BYTE $0x0F; BYTE $0xC1; BYTE $((0<<6)|(s<<3)|(d))*/
2
3/*TEXT	xadd(SB),$0	/* long xadd(long *, long); */
4
5/*	MOVL	l+0(FP),BX
6/*	MOVL	i+4(FP),AX
7/*	LOCK
8/*	XADDL(0,3)
9/*	RET
10*/
11
12TEXT	_xinc(SB),$0	/* void _xinc(long *); */
13
14	MOVL	l+0(FP),AX
15	LOCK
16	INCL	0(AX)
17	RET
18
19TEXT	_xdec(SB),$0	/* long _xdec(long *); */
20
21	MOVL	l+0(FP),AX
22	LOCK
23	DECL	0(AX)
24	JZ	iszero
25	MOVL	$1, AX
26	RET
27iszero:
28	MOVL	$0, AX
29	RET
30