1
2	.sdata
3shared:	.word	11
4
5	.data
6unshared:
7	.word	1
8	.word	2
9	.word	3
10	.word	4
11
12	.text
13func:
14	.set noreorder
15	li	$4, 0x12345678	# 0000 lui	a0,0x1234
16				# 0004 ori	a0,a0,0x5678
17	la	$4, shared	# 0008 addiu	a0,gp,shared
18	la	$4, unshared	# 000c lui	a0,hi(unshared)
19				# 0010 addiu	a0,a0,lo(unshared)
20	la	$4, end		# 0014 lui	a0,hi(end)
21				# 0018 addiu	a0,a0,lo(end)
22	j	end		# 001c j	end
23	jal	end		# 0020 jal	end
24	lw	$4, shared	# 0024 lw	a0,shared(gp)
25	lw	$4, unshared	# 0028 lui	a0,hi(unshared)
26				# 002c lw	a0,lo(unshared)(a0)
27	lw	$4, end		# 0030 lui	a0,hi(end)
28				# 0034 lw	a0,lo(end)(a0)
29	ld	$4, shared	# 0038 ld	a0,shared(gp)
30	ld	$4, unshared	# 003c lui	a0,hi(unshared)
31				# 0040 ld	a0,lo(unshared)(a0)
32	ld	$4, end		# 0044 lui	a0,hi(end)
33				# 0048 ld	a0,lo(end)(a0)
34	sw	$4, shared	# 004c sw	a0,shared(gp)
35	sw	$4, unshared	# 0050 lui	at,hi(unshared)
36				# 0054 sw	a0,lo(unshared)(at)
37	sd	$4, shared	# 0058 sd	a0,shared(gp)
38	sd	$4, unshared	# 005c lui	at,hi(unshared)
39				# 0060 sd	a0,lo(unshared)(at)
40	ulh	$4, unshared	# 0064 lui	at,hi(unshared)
41				# 0068 addiu	at,at,lo(unshared)
42				# 006c lb	a0,0(at)
43				# 0070 lbu	at,1(at)
44				# 0074 sll	a0,a0,8
45				# 0078 or	a0,a0,at
46	ush	$4, unshared	# 007c lui	at,hi(unshared)
47				# 0080 addiu	at,at,lo(unshared)
48				# 0084 sb	a0,1(at)
49				# 0088 srl	a0,a0,8
50				# 008c sb	a0,0(at)
51				# 0090 lbu	at,1(at)
52				# 0094 sll	a0,a0,8
53				# 0098 or	a0,a0,at
54	ulw	$4, unshared	# 009c lui	at,hi(unshared)
55				# 00a0 addiu	at,at,lo(unshared)
56				# 00a4 lwl	a0,0(at)
57				# 00a8 lwr	a0,3(at)
58	usw	$4, unshared	# 00ac lui	at,hi(unshared)
59				# 00b0 addiu	at,at,lo(unshared)
60				# 00b4 swl	a0,0(at)
61				# 00b8 swr	a0,3(at)
62	li.d	$4, 1.0		# 00bc li	a0,0xffc0
63				# 00c0 dsll32	a0,a0,14 # giving 0x3ff00000...
64	li.d	$4, 1.9		# 00c4 lui	at,hi(F1.9)
65				# 00c8 ld	a0,lo(F1.9)(at)
66	li.d	$f0, 1.0	# 00cc li	at,0xffc0
67				# 00d0 dsll32	at,at,14
68				# 00d4 dmtc1	at,$f0
69	li.d	$f0, 1.9	# 00d8 ldc1	$f0,L1.9(gp)
70	seq	$4, $5, -100	# 00dc daddiu	a0,a1,100
71				# 00e0 sltiu	a0,a0,1
72	sne	$4, $5, -100	# 00e4 daddiu	a0,a1,100
73				# 00e8 sltu	a0,zero,a0
74	move	$4, $5		# 00ec move	a0,a1
75
76	dla	$4, shared	# 00f0 addiu	a0,gp,shared
77	dla	$4, unshared	# 00f4 lui	a0,hi(unshared)
78				# 00f8 addiu	a0,a0,lo(unshared)
79	uld	$4, unshared	# 00fc lui	at,hi(unshared)
80				# 0100 addiu	at,at,lo(unshared)
81				# 0104 ldl	a0,0(at)
82				# 0108 ldr	a0,7(at)
83	usd	$4, unshared	# 010c lui	at,hi(unshared)
84				# 0110 addiu	at,at,lo(unshared)
85				# 0114 sdl	a0,0(at)
86				# 0118 sdr	a0,7(at)
87
88	bgt	$4, 0x7fffffff, end	# 011c li	at,0x8000
89					# 0120 dsll	at,at,0x10
90					# 0124 slt	at,a0,at
91					# 0128 beqz	at,end
92	bgtu	$4, 0xffffffff, end	# 012c li	at,0x8000
93					# 0130 dsll	at,at,17
94					# 0134 sltu	at,a0,at
95					# 0138 beqz	at,end
96	ble	$4, 0x7fffffff, end	# 013c li	at,0x8000
97					# 0140 dsll	at,at,0x10
98					# 0144 slt	at,a0,at
99					# 0148 bnez	at,end
100	bleu	$4, 0xffffffff, end	# 014c li	at,0x8000
101					# 0150 dsll	at,at,17
102					# 0154 sltu	at,a0,at
103					# 0158 bnez	at,end
104
105	add.d	$f1, $f2, $f3	# 015c add.d	$f1,$f2,$f3
106end:
107
108# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
109	.space	8
110