1# Blackfin testcase for playing with LSETUP
2# mach: bfin
3
4	.include "testutils.inc"
5
6	start
7
8	R0 = 0x123;
9	P0 = R0;
10	LSETUP (.L1, .L1) LC0 = P0;
11.L1:
12	R0 += -1;
13
14	R1 = 0;
15	CC = R1 == R0;
16	IF CC JUMP 1f;
17	fail
181:
19	p0=10;
20	loadsym i0,  _buf
21	imm32 r0, 0x12345678
22	LSETUP(.L2, .L3) lc0 = p0;
23.L2:
24	[i0++] = r0;
25.L3:
26	[i0++] = r0;
27
28	loadsym R1, _buf
29	R0 = 0x50;
30	R1 = R0 + R1;
31	R0 = I0;
32	CC = R0 == R1;
33	if CC JUMP 2f;
34	fail
352:
36
37	r5=10;
38	p1=r5;
39	r7=20;
40	lsetup (.L4, .L5) lc0=p1;
41.L4:
42	nop;
43	nop;
44	nop;
45	nop;
46	jump .L5;
47	nop;
48	nop;
49	nop;
50.L5:
51	r7 += -1;
52
53	R0 = 10 (Z);
54	CC = R7 == R0;
55	if CC jump 3f;
56	fail
573:
58	r1 = 1;
59	r2 = 2;
60	r0 = 0;
61	p1 = 10;
62	loadsym p0, _buf;
63	lsetup (.L6, .L7) lc0 = p1;
64.L6:
65	[p0++] = r1;
66.L7:
67	[p0++] = r2;
68
69	r3 = P0;
70	loadsym r1, _buf
71	r0 = 80;
72	r1 = r1 + r0;
73	CC = R1 == R3
74	if CC jump 4f;
75	fail
764:
77
78	R0 = 1;
79	R1 = 2;
80	R2 = 3;
81	R4 = 4;
82	P1 = R1;
83	LSETUP (.L8, .L8) LC0 = P1;
84	R5 = 5;
85	R6 = 6;
86	R7 = 7;
87.L8:
88	R1 += 1;
89
90	R7 = 4;
91	CC = R7 == R1;
92	if CC jump 5f;
93	fail
945:
95	P1 = R1;
96	LSETUP (.L9, .L9 ) LC1 = P1;
97.L9:
98	R1 += 1;
99	R7 = 8;
100	if CC jump 6f;
101	fail
1026:
103	pass
104
105.data
106_buf:
107	.rept 0x80
108	.long 0
109	.endr
110