1 //Original:/proj/frio/dv/testcases/core/c_interr_loopsetup_stld/c_interr_loopsetup_stld.dsp
2 // Spec Reference: interrupt loopsetup_ldst
6 .include "testutils.inc"
9 A0 = 0; // reset accumulators
28 LSETUP ( start1 , end1 ) LC0 = P1;
31 A1 += R0.H * R1.H, A0 += R0.L * R1.L || R0 = [ I0 ++ ] || R1 = [ I1 ++ ]; // dsp32mac dual
32 // a1 += h*h, a0 += l*l (r0,r1) ; r0 = [i0++]; r1 = [i1++]; // dsp32mac
33 R2 = ( R2 + R5 ) << 1; // alu2op
44 CHECKREG(r0, 0x00000024);
45 CHECKREG(r1, 0x00000000);
46 CHECKREG(r2, 0x0670098D);
47 CHECKREG(r3, 0x000015EC);
48 CHECKREG(r4, 0x00700016);
49 CHECKREG(r5, 0x0B240A39);
50 CHECKREG(r6, 0xFFF2FFFC);
51 CHECKREG(r7, 0x05800220);
55 LSETUP ( start2 , end2 ) LC0 = P2;
57 //a1 += h*h, a0 += l*l (r0,r1), r0 = [i0--], r1 = [i1--];
58 A1 += R0.H * R1.H, A0 += R0.L * R1.L; R0 = [ I0 -- ]; R1 = [ I1 -- ];
71 CHECKREG(r0, 0x00000000);
72 CHECKREG(r1, 0x0000FFE0);
73 CHECKREG(r2, 0xFFFFFFE0);
74 CHECKREG(r3, 0x000000EC);
75 CHECKREG(r4, 0x070001D8);
76 CHECKREG(r5, 0x0B240A25);
77 CHECKREG(r6, 0x00000000);
78 CHECKREG(r7, 0x05800220);
92 LSETUP ( start3 , end3 ) LC0 = P1;
102 LSETUP ( start4 , end4 ) LC0 = P2;
106 // a1 += h*h, a0 += l*l (r0,r1), r0 = [i2--], r1 = [i3--];
107 A1 += R0.H * R1.H, A0 += R0.L * R1.L; R0 = [ I2 -- ]; R1 = [ I3 -- ];
108 R4 = R4 + R0; // comp3op
117 CHECKREG(r0, 0x00000044);
118 CHECKREG(r1, 0x04600524);
119 CHECKREG(r2, 0x03500615);
120 CHECKREG(r3, 0x04600527);
121 CHECKREG(r4, 0x00000000);
122 CHECKREG(r5, 0x04600568);
123 CHECKREG(r6, 0x007C3498);
124 CHECKREG(r7, 0x00812098);
127 pass; // End the test