1# Source code used to test %hi/%lo operators with constants worked out
2# as a difference of local symbols, both previously defined and forward
3# references.
4
5	.text
6foo:
7	li	$4, %hi(2f - 0f)
8	sll	$4, 16
9	addiu	$4, %lo(2f - 0f)
10	li	$5, %hi(0f - 3f)
11	sll	$5, 16
12	addiu	$5, %lo(0f - 3f)
130:
14	li	$4, %hi(2f - 0b)
15	sll	$4, 16
16	addiu	$4, %lo(2f - 0b)
17	li	$5, %hi(0b - 3f)
18	sll	$5, 16
19	addiu	$5, %lo(0b - 3f)
201:
21	.insn
22	.fill	0x7ffc - (1b - 0b)
232:
24	.insn
25	.fill	0x8000 - (2b - 0b)
263:
27	li	$4, %hi(2b - 0b)
28	sll	$4, 16
29	addiu	$4, %lo(2b - 0b)
30	li	$5, %hi(0b - 3b)
31	sll	$5, 16
32	addiu	$5, %lo(0b - 3b)
33
34	li	$4, %hi(2f - 0f)
35	sll	$4, 16
36	addiu	$4, %lo(2f - 0f)
37	li	$5, %hi(0f - 3f)
38	sll	$5, 16
39	addiu	$5, %lo(0f - 3f)
400:
41	li	$4, %hi(2f - 0b)
42	sll	$4, 16
43	addiu	$4, %lo(2f - 0b)
44	li	$5, %hi(0b - 3f)
45	sll	$5, 16
46	addiu	$5, %lo(0b - 3f)
471:
48	.insn
49	.fill	0x8000 - (1b - 0b)
502:
51	.insn
52	.fill	0x8004 - (2b - 0b)
533:
54	li	$4, %hi(2b - 0b)
55	sll	$4, 16
56	addiu	$4, %lo(2b - 0b)
57	li	$5, %hi(0b - 3b)
58	sll	$5, 16
59	addiu	$5, %lo(0b - 3b)
60
61	li	$4, %hi(2f - 0f)
62	sll	$4, 16
63	addiu	$4, %lo(2f - 0f)
64	li	$5, %hi(0f - 3f)
65	sll	$5, 16
66	addiu	$5, %lo(0f - 3f)
670:
68	li	$4, %hi(2f - 0b)
69	sll	$4, 16
70	addiu	$4, %lo(2f - 0b)
71	li	$5, %hi(0b - 3f)
72	sll	$5, 16
73	addiu	$5, %lo(0b - 3f)
741:
75	.insn
76	.fill	0x11ffdc - (1b - 0b)
772:
78	.insn
79	.fill	0
803:
81	li	$4, %hi(2b - 0b)
82	sll	$4, 16
83	addiu	$4, %lo(2b - 0b)
84	li	$5, %hi(0b - 3b)
85	sll	$5, 16
86	addiu	$5, %lo(0b - 3b)
87
88# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
89	.align	4, 0
90	.space	16
91