155682Smarkm
2233294Sstas	.sdata
3233294Sstasshared:	.word	11
4233294Sstas
555682Smarkm	.data
6233294Sstasunshared:
7233294Sstas	.word	1
8233294Sstas	.word	2
955682Smarkm	.word	3
10233294Sstas	.word	4
11233294Sstas
1255682Smarkm	.text
13233294Sstasfunc:
14233294Sstas	.set noreorder
15233294Sstas	li	$4, 0x12345678	# 0000 lui	a0,0x1234
1655682Smarkm				# 0004 ori	a0,a0,0x5678
17233294Sstas	la	$4, shared	# 0008 addiu	a0,gp,shared
18233294Sstas	la	$4, unshared	# 000c lui	a0,hi(unshared)
19233294Sstas				# 0010 addiu	a0,a0,lo(unshared)
2055682Smarkm	la	$4, end		# 0014 lui	a0,hi(end)
21233294Sstas				# 0018 addiu	a0,a0,lo(end)
22233294Sstas	j	end		# 001c j	end
23233294Sstas	jal	end		# 0020 jal	end
24233294Sstas	lw	$4, shared	# 0024 lw	a0,shared(gp)
25233294Sstas	lw	$4, unshared	# 0028 lui	a0,hi(unshared)
26233294Sstas				# 002c lw	a0,lo(unshared)(a0)
27233294Sstas	lw	$4, end		# 0030 lui	a0,hi(end)
28233294Sstas				# 0034 lw	a0,lo(end)(a0)
29233294Sstas	ld	$4, shared	# 0038 lw	a0,shared(gp)
30233294Sstas				# 003c lw	a1,shared+4(gp)
31233294Sstas	ld	$4, unshared	# 0040 lui	at,hi(unshared)
3255682Smarkm				# 0044 lw	a0,lo(unshared)(at)
3355682Smarkm				# 0048 lw	a1,lo(unshared)+4(at)
3455682Smarkm	ld	$4, end		# 004c lui	at,hi(end)
3555682Smarkm				# 0050 lw	a0,lo(end)(at)
36233294Sstas				# 0054 lw	a1,lo(end)+4(at)
3755682Smarkm	sw	$4, shared	# 0058 sw	a0,shared(gp)
3855682Smarkm	sw	$4, unshared	# 005c lui	at,hi(unshared)
39120945Snectar				# 0060 sw	a0,lo(unshared)(at)
4055682Smarkm	sd	$4, shared	# 0064 sw	a0,shared(gp)
41120945Snectar				# 0068 sw	a1,shared+4(gp)
4255682Smarkm	sd	$4, unshared	# 006c lui	at,hi(unshared)
4355682Smarkm				# 0070 sw	a0,lo(unshared)(at)
4455682Smarkm				# 0074 sw	a1,lo(unshared)+4(at)
4572445Sassar	ulh	$4, unshared	# 0078 lui	at,hi(unshared)
4655682Smarkm				# 007c addiu	at,at,lo(unshared)
4755682Smarkm				# 0080 lb	a0,0(at)
4855682Smarkm				# 0084 lbu	at,1(at)
4955682Smarkm				# 0088 sll	a0,a0,8
5055682Smarkm				# 008c or	a0,a0,at
5155682Smarkm	ush	$4, unshared	# 0090 lui	at,hi(unshared)
5255682Smarkm				# 0094 addiu	at,at,lo(unshared)
5355682Smarkm				# 0098 sb	a0,1(at)
54120945Snectar				# 009c srl	a0,a0,8
55178825Sdfr				# 00a0 sb	a0,0(at)
56178825Sdfr				# 00a4 lbu	at,1(at)
57120945Snectar				# 00a8 sll	a0,a0,8
58120945Snectar				# 00ac or	a0,a0,at
5955682Smarkm	ulw	$4, unshared	# 00b0 lui	at,hi(unshared)
6055682Smarkm				# 00b4 addiu	at,at,lo(unshared)
61120945Snectar				# 00b8 lwl	a0,0(at)
62120945Snectar				# 00bc lwr	a0,3(at)
6355682Smarkm	usw	$4, unshared	# 00c0 lui	at,hi(unshared)
6455682Smarkm				# 00c4 addiu	at,at,lo(unshared)
65120945Snectar				# 00c8 swl	a0,0(at)
66178825Sdfr				# 00cc swr	a0,3(at)
67178825Sdfr	li.d	$4, 1.0		# 00d0 lui	a0,0x3ff0
68178825Sdfr				# 00d4 move	a1,zero
69120945Snectar	li.d	$4, 1.9		# 00d8 lui	at,hi(F1.9)
7055682Smarkm				# 00dc lw	a0,lo(F1.9)(at)
7155682Smarkm				# 00e0 lw	a1,lo(F1.9)+4(at)
7255682Smarkm	li.d	$f0, 1.0	# 00e4 lui	at,0x3ff0
7355682Smarkm				# 00e8 mtc1	at,$f1
7455682Smarkm				# 00ec mtc1	zero,$f0
7555682Smarkm	li.d	$f0, 1.9	# 00f0 ldc1	$f0,L1.9(gp)
7655682Smarkm	seq	$4, $5, -100	# 00f4 addiu	a0,a1,100
77120945Snectar				# 00f8 sltiu	a0,a0,1
78120945Snectar	sne	$4, $5, -100	# 00fc addiu	a0,a1,100
79120945Snectar				# 0100 sltu	a0,zero,a0
80120945Snectar	move	$4, $5		# 0104 move	a0,a1
81120945Snectar
8255682Smarkm# Not available in 32-bit mode
83120945Snectar#	dla	$4, shared
8455682Smarkm#	dla	$4, unshared
85120945Snectar#	uld	$4, unshared
8655682Smarkm#	usd	$4, unshared
8755682Smarkm
8855682Smarkm# Should produce warnings given -mgp32
89120945Snectar#	bgt	$4, 0x7fffffff, end
90120945Snectar#	bgtu	$4, 0xffffffff, end
9155682Smarkm#	ble	$4, 0x7fffffff, end
9255682Smarkm#	bleu	$4, 0xffffffff, end
93120945Snectar
9455682Smarkm# Should produce warnings given -mfp32
9555682Smarkm#	add.d	$f1, $f2, $f3
96120945Snectar
9755682Smarkmend:
98120945Snectar
99120945Snectar# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
100120945Snectar      .space  8
101120945Snectar