aboutsummaryrefslogtreecommitdiff
path: root/sim/testsuite/bfin/c_loopsetup_topbotcntr.s
blob: dc19b7dc1356051304ee53cceac658e163315bca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
//Original:/proj/frio/dv/testcases/core/c_loopsetup_topbotcntr/c_loopsetup_topbotcntr.dsp
// Spec Reference: loopsetup top bot counter
# mach: bfin

.include "testutils.inc"
	start

	INIT_R_REGS 0;


	ASTAT = r0;

	R1 = 0x10;
	R2 = 0x20;
	R3 = 0x30;
	R4 = 0x40 (X);
	R5 = 0x08;

	loadsym R6, start1;
	loadsym R7, end1;

	LT0 = R6;
	LB0 = R7;
	LC0 = R5;
//start immmediately
start1:  R0 += 1;
	R1 += -2;
end1:    R2 += 3;
	R3 += 4;

	CHECKREG r0, 0x00000008;
	CHECKREG r1, 0x00000000;
	CHECKREG r2, 0x00000038;
	CHECKREG r3, 0x00000034;
	CHECKREG r4, 0x00000040;
	CHECKREG r5, 0x00000008;
//CHECKREG r6, 0x00000090;
//CHECKREG r7, 0x00000094;

	R0 = 0x05;
	R1 = 0x10;
	R2 = 0x10;
	R3 = 0x10;
	R4 = 0x20;
	R5 = 0x20;
	R6 = 0x30;
	R7 = 0x30;

	loadsym R1, start2;
	R0 = R1;
	loadsym R1, end2;
	LT1 = R0;
	LB1 = R1;
	LC1 = R2;

start2:  R4 += 1;
	R5 += 2;
end2:    R6 += -3;
	R7 += 4;
	CHECKREG r3, 0x00000010;
	CHECKREG r4, 0x00000030;
	CHECKREG r5, 0x00000040;
	CHECKREG r6, 0x00000000;
	CHECKREG r7, 0x00000034;

	R0 = 0x05;
	R1 = 0x10;
	R2 = 0x20;
	R3 = 0x30;
	R4 = 0x40 (X);
	R5 = 0x50 (X);
	R6 = 0x60 (X);
	R7 = 0x70 (X);

	loadsym R1, start3
	r0 = r1;
	loadsym r1, end3;
	LT0 = R0;
	LB0 = R1;
	LC0 = R2;
	loadsym r3, start4;
	loadsym r4, end4;
	LT1 = R3;
	LB1 = R4;
	LC1 = R5;

	R0 = 0x10;
	R1 = 0x15;
	R2 = 0x20;
	R3 = 0x26;
	R4 = 0x30;
	R5 = 0x40 (X);

start3:  R0 += 1;
	R1 += -2;
start4:  R2 += 3;
	R3 += 4;
end4:    R6 += 5;
end3:    R7 += -6;

	CHECKREG r0, 0x00000030;
	CHECKREG r1, 0xFFFFFFD5;
	CHECKREG r2, 0x0000016D;
	CHECKREG r3, 0x000001E2;
	CHECKREG r4, 0x00000030;
	CHECKREG r5, 0x00000040;
	CHECKREG r6, 0x0000028B;
	CHECKREG r7, 0xFFFFFFB0;

	pass