1# mach: bfin 2#include "test.h" 3.include "testutils.inc" 4 5 start 6 7 dmm32 ASTAT, (0x60608a90 | _VS | _V | _AV1S | _AV0S | _AQ | _V_COPY | _AC0_COPY); 8 dmm32 A1.w, 0xf41fbf3f; 9 dmm32 A1.x, 0x00000000; 10 imm32 R5, 0xd8d95310; 11 imm32 R6, 0xd0457fff; 12 R5.H = (A1 -= R6.L * R6.H) (M, FU); 13 checkreg R5, 0x7fff5310; 14 checkreg A1.w, 0x8bfe0f84; 15 checkreg A1.x, 0x00000000; 16 checkreg ASTAT, (0x60608a90 | _VS | _V | _AV1S | _AV0S | _AQ | _V_COPY | _AC0_COPY); 17 18 dmm32 ASTAT, (0x54b0ca90 | _VS | _AV1S | _AC1 | _AC0 | _CC | _AC0_COPY | _AN); 19 dmm32 A1.w, 0xf88288c8; 20 dmm32 A1.x, 0xffffffff; 21 imm32 R0, 0xfffe6736; 22 imm32 R2, 0x8000f882; 23 imm32 R3, 0xffff8391; 24 R0.H = (A1 += R3.L * R2.L) (M, FU); 25 checkreg R0, 0x80006736; 26 checkreg A1.w, 0x7fb7d06a; 27 checkreg A1.x, 0xffffffff; 28 checkreg ASTAT, (0x54b0ca90 | _VS | _V | _AV1S | _AC1 | _AC0 | _CC | _V_COPY | _AC0_COPY | _AN); 29 30 dmm32 ASTAT, (0x1c500480 | _VS | _AV1S | _AV0S | _AC0 | _CC | _AC0_COPY | _AN); 31 dmm32 A1.w, 0x9083dd08; 32 dmm32 A1.x, 0x00000000; 33 imm32 R0, 0x00000000; 34 imm32 R4, 0x00002492; 35 R4.H = (A1 += R4.L * R0.H) (M, FU); 36 checkreg R4, 0x7fff2492; 37 checkreg ASTAT, (0x1c500480 | _VS | _V | _AV1S | _AV0S | _AC0 | _CC | _V_COPY | _AC0_COPY | _AN); 38 39 dmm32 ASTAT, (0x7c00c810 | _AV1S | _AC1 | _AC0); 40 dmm32 A1.w, 0x69e86d3f; 41 dmm32 A1.x, 0xffffffc2; 42 imm32 R1, 0x64f42c5b; 43 imm32 R3, 0x4128529d; 44 R3 = (A1 -= R3.L * R1.L) (M, FU); 45 checkreg R3, 0x80000000; 46 checkreg A1.w, 0x5b981370; 47 checkreg A1.x, 0xffffffc2; 48 checkreg ASTAT, (0x7c00c810 | _VS | _V | _AV1S | _AC1 | _AC0 | _V_COPY); 49 50 dmm32 ASTAT, (0x5cc0c480 | _VS | _AQ | _CC); 51 dmm32 A1.w, 0x34bbe964; 52 dmm32 A1.x, 0x00000036; 53 imm32 R1, 0x7fffffff; 54 imm32 R5, 0x7fff427e; 55 A1 -= R5.L * R1.L (M, FU); 56 checkreg A1.w, 0xf23e2be2; 57 checkreg A1.x, 0x00000035; 58 checkreg ASTAT, (0x5cc0c480 | _VS | _AQ | _CC); 59 60# here the result is zero, and the _V bit is set 61 dmm32 ASTAT, 0x0; 62 dmm32 A0.w, 0x00008492; 63 dmm32 A0.x, 0x00000000; 64 imm32 R2, 0x7fff0002; 65 imm32 R3, 0xfa6e8492; 66 imm32 R6, 0xffff0002; 67 R6 = (A0 -= R3.L * R2.L) (FU); 68 checkreg R6, 0x00000000; 69 checkreg A0.w, 0x00000000; 70 checkreg A0.x, 0x00000000; 71 checkreg ASTAT, ( _VS | _V | _AV0S | _AV0 | _V_COPY); 72 73# here the result is zero, and the _V bit is not set 74 dmm32 ASTAT, (_V | _V_COPY); 75 dmm32 A0.w, 0x1fffc000; 76 dmm32 A0.x, 0x00000000; 77 imm32 R0, 0x80004000; 78 imm32 R4, 0x1fffffff; 79 imm32 R6, 0x80000000; 80 R4.L = (A0 -= R0.L * R6.H) (FU); 81 checkreg R4, 0x1fff0000; 82 checkreg A0.w, 0x00000000; 83 checkreg A0.x, 0x00000000; 84 checkreg ASTAT, (_AV0S | _AV0); 85 86 dmm32 ASTAT, (0x0c108610 | _VS | _AV0S | _AC1 | _AC0 | _AQ | _AC0_COPY | _AN); 87 dmm32 A0.w, 0x0000eaf0; 88 dmm32 A0.x, 0x00000000; 89 imm32 R1, 0x00010000; 90 imm32 R6, 0xfbf10001; 91 R1.L = (A0 -= R6.H * R1.H) (FU); 92 checkreg R1, 0x00010000; 93 checkreg A0.w, 0x00000000; 94 checkreg A0.x, 0x00000000; 95 checkreg ASTAT, (0x0c108610 | _VS | _AV0S | _AV0 | _AC1 | _AC0 | _AQ | _AC0_COPY | _AN); 96 97 pass 98