1	.equ	$fprel, 2
2
3	.ent	foo
4foo:
5	# Test various forms of relocation syntax.
6
7	lui	$4,(%hi gvar)
8	addiu	$4,$4,(%lo (gvar))
9	lw	$4,%lo gvar($5)
10
11	# Check that registers aren't confused with $ identifiers.
12
13	lw	$4,($fprel)($fp)
14
15	# Check various forms of paired relocations.
16
17	lui	$4,%call_hi(gfunc)
18	addu	$4,$4,$gp
19	lw	$25,%call_lo(gfunc)($4)
20
21	lui	$4,%got_hi(gvar)
22	addu	$4,$4,$gp
23	lw	$5,%got_lo(gvar)($4)
24
25	lw	$4,%got(lvar)($28)
26	sb	$5,%lo(lvar)($4)
27
28	lui	$4,%call_hi(gfunc)
29	addiu	$4,$4,%call_lo(gfunc)
30
31	lui	$4,%got_hi(gvar)
32	addiu	$4,$4,%got_lo(gvar)
33
34	lw	$4,%got(lvar)($28)
35	addiu	$4,$4,%lo(lvar)
36
37	# Check individual relocations.
38
39	lw	$25,%call16(gfunc)($28)
40	addiu	$4,$28,%call16(gfunc)
41
42	lw	$4,%got_disp(gvar)($28)
43	addiu	$4,$28,%got_disp(gvar)
44
45	lw	$4,%gp_rel(gvar)($28)
46	sw	$4,%gp_rel(gvar)($28)
47	addiu	$4,$28,%gp_rel(gvar)
48
49	.space	64
50	.end	foo
51
52	.data
53lvar:	.word	1,2
54