xref: /plan9/sys/src/cmd/5a/l.s (revision 59cc4ca53493a3c6d2349fe2b7f7c40f7dce7294)
17dd7cddfSDavid du ColombierTEXT	main(SB), $0
27dd7cddfSDavid du Colombier
37dd7cddfSDavid du Colombier	ADD		R1,R4
47dd7cddfSDavid du Colombier	ADD		R1,R3,R4
57dd7cddfSDavid du Colombier	ADD		R1<<1,R3,R4	/* logical left */
67dd7cddfSDavid du Colombier	ADD		R1>>1,R3,R4	/* logical right */
77dd7cddfSDavid du Colombier	ADD		R1->1,R3,R4	/* arithmetic right */
87dd7cddfSDavid du Colombier 	ADD		R1@>1,R3,R4	/* rotate right */
97dd7cddfSDavid du Colombier
107dd7cddfSDavid du Colombier	ADD		R1<<R2,R3,R4
117dd7cddfSDavid du Colombier	ADD		$10,R1,R4
127dd7cddfSDavid du Colombier
137dd7cddfSDavid du Colombierloop:
147dd7cddfSDavid du Colombier	ADD.S.NE	R1,R4
157dd7cddfSDavid du Colombier	BNE		loop
167dd7cddfSDavid du Colombier
17*59cc4ca5SDavid du Colombier	MOVW		R3, CPSR
18*59cc4ca5SDavid du Colombier	MOVW		R3, SPSR
19*59cc4ca5SDavid du Colombier	MOVW		R3, F10
20*59cc4ca5SDavid du Colombier	MOVW		R3, (R2)
21*59cc4ca5SDavid du Colombier	MOVW		R3, 10(R2)
22*59cc4ca5SDavid du Colombier	MOVW		R3, name(SB)
23*59cc4ca5SDavid du Colombier	MOVW		R3, name(SB)(R2)
24*59cc4ca5SDavid du Colombier	MOVW		R3, name(SB)(R2)
25*59cc4ca5SDavid du Colombier	MOVW		R3, (R2)
26*59cc4ca5SDavid du Colombier	MOVW		R3, R1<<2(R2)
27*59cc4ca5SDavid du Colombier
287dd7cddfSDavid du Colombier	MRC.EQ		3,9,R3,C5,C6,2
297dd7cddfSDavid du Colombier	MRC		3,9,R3,C5,C6,2
307dd7cddfSDavid du Colombier
317dd7cddfSDavid du Colombier	MOVM.IA		[R0,SP,R4], (R2)
327dd7cddfSDavid du Colombier	MOVM.DB.W	(R0), [R6-R11]
337dd7cddfSDavid du Colombier	MOVM.DB.W	(R0), [R0-R11]
34*59cc4ca5SDavid du Colombier	MOVM.S		(R0), [R0-R11]	// .S is supervisor space
35*59cc4ca5SDavid du Colombier
36*59cc4ca5SDavid du Colombier	CMN	$4096,R0,
377dd7cddfSDavid du Colombier
387dd7cddfSDavid du Colombier	RET
39