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