1 1.1 christos # Verify ASTAT bits are set correctly during dsp mac insns 2 1.1 christos # mach: bfin 3 1.1 christos #include "test.h" 4 1.1 christos .include "testutils.inc" 5 1.1 christos 6 1.1 christos start 7 1.1 christos 8 1.1 christos dmm32 ASTAT, (0x4450cc90 | _VS | _V | _AV1S | _AV0S | _AC1 | _AC0 | _AQ | _V_COPY | _AC0_COPY | _AN); 9 1.1 christos dmm32 A0.w, 0x16ba2677; 10 1.1 christos dmm32 A0.x, 0x00000000; 11 1.1 christos imm32 R4, 0x80007fff; 12 1.1 christos A0 -= R4.H * R4.H (W32); 13 1.1 christos checkreg A0.w, 0x96ba2678; 14 1.1 christos checkreg A0.x, 0xffffffff; 15 1.1 christos checkreg ASTAT, (0x4450cc90 | _VS | _V | _AV1S | _AV0S | _AV0 | _AC1 | _AC0 | _AQ | _V_COPY | _AC0_COPY | _AN); 16 1.1 christos 17 1.1 christos dmm32 ASTAT, (0x3c30c800 | _VS | _AV0S | _AC1 | _CC); 18 1.1 christos dmm32 A0.w, 0xf170d0c7; 19 1.1 christos dmm32 A0.x, 0xffffffff; 20 1.1 christos imm32 R2, 0x80008000; 21 1.1 christos A0 -= R2.H * R2.L (W32); 22 1.1 christos checkreg A0.w, 0x80000000; 23 1.1 christos checkreg A0.x, 0xffffffff; 24 1.1 christos checkreg ASTAT, (0x3c30c800 | _VS | _AV0S | _AV0 | _AC1 | _CC); 25 1.1 christos 26 1.1 christos dmm32 ASTAT, (0x6c200880 | _VS | _AV1S | _AC1 | _AC0 | _CC | _AN); 27 1.1 christos dmm32 A0.x, 0x560a1c52; 28 1.1 christos dmm32 A0.x, 0xffffffbb; 29 1.1 christos imm32 R5, 0x8000ffff; 30 1.1 christos A0 = R5.H * R5.H (W32); 31 1.1 christos checkreg A0.w, 0x7fffffff; 32 1.1 christos checkreg A0.x, 0x00000000; 33 1.1 christos checkreg ASTAT, (0x6c200880 | _VS | _AV1S | _AV0S | _AV0 | _AC1 | _AC0 | _CC | _AN); 34 1.1 christos 35 1.1 christos dmm32 ASTAT, (0x58908a90 | _VS | _AC1 | _AC0 | _AQ); 36 1.1 christos dmm32 A0.w, 0x00c5a4e0; 37 1.1 christos dmm32 A0.x, 0x00000000; 38 1.1 christos imm32 R0, 0xffffb33a; 39 1.1 christos imm32 R2, 0xffffb33a; 40 1.1 christos imm32 R3, 0xb33a4cc6; 41 1.1 christos R2 = (A0 -= R0.L * R3.H) (FU); 42 1.1 christos checkreg R2, 0x00000000; 43 1.1 christos checkreg A0.w, 0x00000000; 44 1.1 christos checkreg A0.x, 0x00000000; 45 1.1 christos checkreg ASTAT, (0x58908a90 | _VS | _V | _AV0S | _AV0 | _AC1 | _AC0 | _AQ | _V_COPY); 46 1.1 christos 47 1.1 christos dmm32 ASTAT, (0x2cc00c90 | _VS | _AC1 | _AC0 | _AQ | _AC0_COPY); 48 1.1 christos dmm32 A0.w, 0x00a38000; 49 1.1 christos dmm32 A0.x, 0x00000000; 50 1.1 christos imm32 R0, 0x2aa2ffff; 51 1.1 christos imm32 R1, 0xff5c711e; 52 1.1 christos imm32 R4, 0x2913dc90; 53 1.1 christos R0 = (A0 -= R4.L * R1.L) (IU); 54 1.1 christos checkreg R0, 0x00000000; 55 1.1 christos checkreg A0.w, 0x00000000; 56 1.1 christos checkreg A0.x, 0x00000000; 57 1.1 christos checkreg ASTAT, (0x2cc00c90 | _VS | _V | _AV0S | _AV0 | _AC1 | _AC0 | _AQ | _V_COPY | _AC0_COPY); 58 1.1 christos 59 1.1 christos dmm32 ASTAT, (0x3880c280 | _VS | _AC1 | _AZ); 60 1.1 christos dmm32 A0.w, 0x00000000; 61 1.1 christos dmm32 A0.x, 0x00000000; 62 1.1 christos imm32 R4, 0x139ad315; 63 1.1 christos imm32 R6, 0x7fff0000; 64 1.1 christos R4.L = (A0 -= R6.H * R6.H) (FU); 65 1.1 christos checkreg R4, 0x139a0000; 66 1.1 christos checkreg ASTAT, (0x3880c280 | _VS | _V | _AV0S | _AV0 | _AC1 | _V_COPY | _AZ); 67 1.1 christos 68 1.1 christos dmm32 ASTAT, (0x48408290 | _VS | _AV1S | _AV0S | _AQ | _CC | _AC0_COPY); 69 1.1 christos dmm32 A0.w, 0x6b426a69; 70 1.1 christos dmm32 A0.x, 0xffffffba; 71 1.1 christos imm32 R0, 0x24038000; 72 1.1 christos imm32 R2, 0xf62c7780; 73 1.1 christos imm32 R3, 0x5a64f8e8; 74 1.1 christos R2.L = (A0 -= R3.L * R0.L) (IH); 75 1.1 christos checkreg R2, 0xf62c8000; 76 1.1 christos checkreg A0.w, 0x80000000; 77 1.1 christos checkreg A0.x, 0xffffffff; 78 1.1 christos checkreg ASTAT, (0x48408290 | _VS | _V | _AV1S | _AV0S | _AV0 | _AQ | _CC | _V_COPY | _AC0_COPY); 79 1.1 christos 80 1.1 christos dmm32 ASTAT, (0x7c00c210 | _VS | _AC1 | _AN); 81 1.1 christos dmm32 A1.w, 0x730173e9; 82 1.1 christos dmm32 A1.x, 0xffffffae; 83 1.1 christos imm32 R4, 0x8000ffff; 84 1.1 christos imm32 R5, 0x738559e8; 85 1.1 christos R5.H = (A1 -= R4.L * R5.L) (M, IH); 86 1.1 christos checkreg R5, 0x800059e8; 87 1.1 christos checkreg A1.w, 0x80000000; 88 1.1 christos checkreg A1.x, 0xffffffff; 89 1.1 christos checkreg ASTAT, (0x7c00c210 | _VS | _V | _AV1S | _AV1 | _AC1 | _V_COPY | _AN); 90 1.1 christos 91 1.1 christos dmm32 ASTAT, (0x4830c400 | _VS | _V | _AV1S | _AV0S | _AC0 | _CC | _V_COPY | _AZ); 92 1.1 christos dmm32 A0.w, 0x033a05f0; 93 1.1 christos dmm32 A0.x, 0x00000000; 94 1.1 christos imm32 R3, 0x5992dd5a; 95 1.1 christos imm32 R4, 0x098a889e; 96 1.1 christos imm32 R6, 0x8000de08; 97 1.1 christos R6.L = (A0 -= R4.L * R3.H) (TFU); 98 1.1 christos checkreg R6, 0x80000000; 99 1.1 christos checkreg A0.w, 0x00000000; 100 1.1 christos checkreg A0.x, 0x00000000; 101 1.1 christos checkreg ASTAT, (0x4830c400 | _VS | _V | _AV1S | _AV0S | _AV0 | _AC0 | _CC | _V_COPY | _AZ); 102 1.1 christos 103 1.1 christos pass 104