1// ACP 5.17 Dual ALU ops 2// AZ, AN, AC0, AC1, V and VS are affected 3// AV0, AV0S, AV1, AV1S are unaffected 4# mach: bfin 5 6#include "test.h" 7.include "testutils.inc" 8 start 9 10 init_r_regs 0; 11 ASTAT = R0; 12 A0 = A1 = 0; 13 14 r0=0; 15 r0.h=0x7fff; 16 r2=0; 17 r2.h=0x7000; 18 r1=r0+r2,r3=r0-r2; 19 r7=astat; 20 _dbg r1; 21 _dbg r3; 22 _dbg astat; 23 CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AN); 24 25 a1=r2; 26 a0=r0; 27 r1=a0+a1, r3=a0-a1; 28 r7=astat; 29 _dbg a0; 30 _dbg a1; 31 _dbg r1; 32 _dbg r3; 33 _dbg astat; 34 CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AN); 35 36 a0=r2; 37 a1=r0; 38 r1=a1+a0, r3=a1-a0; 39 r7=astat; 40 _dbg a0; 41 _dbg a1; 42 _dbg r1; 43 _dbg r3; 44 _dbg astat; 45 CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AN); 46 47 r0.h=0xafff; 48 r2.h=0xa000; 49 a1=r2; 50 a0=r0; 51 r1=a0+a1, r3=a0-a1; 52 r7=astat; 53 _dbg a0; 54 _dbg a1; 55 _dbg r1; 56 _dbg r3; 57 _dbg astat; 58 CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AC1); 59 60 r1=a0+a1, r3=a0-a1 (s); 61 r7=astat; 62 _dbg a0; 63 _dbg a1; 64 _dbg r1; 65 _dbg r3; 66 _dbg astat; 67 CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AC1|_AN); 68 69 r0.h=0xafff; 70 r2.h=0xa000; 71 a0=r2; 72 a1=r0; 73 r1=a1+a0, r3=a1-a0; 74 r7=astat; 75 _dbg a0; 76 _dbg a1; 77 _dbg r1; 78 _dbg r3; 79 _dbg astat; 80 CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AC1); 81 82 r1=a1+a0, r3=a1-a0 (s); 83 r7=astat; 84 _dbg a0; 85 _dbg a1; 86 _dbg r1; 87 _dbg r3; 88 _dbg astat; 89 CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AC1|_AN); 90 91 r2.h=0x8001; 92 r1=r0+r2,r3=r0-r2; 93 _dbg r1; 94 _dbg r3; 95 _dbg astat; 96 r7=astat; 97 CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AC1); 98 99 r2.h=0x8000; 100 r1=r0+r2,r3=r0-r2; 101 r7=astat; 102 _dbg r1; 103 _dbg r3; 104 _dbg astat; 105 CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AC1); 106 107 pass; 108