// ACP 5.17 Dual ALU ops // AZ, AN, AC0, AC1, V and VS are affected // AV0, AV0S, AV1, AV1S are unaffected # mach: bfin #include "test.h" .include "testutils.inc" start init_r_regs 0; ASTAT = R0; A0 = A1 = 0; r0=0; r0.h=0x7fff; r2=0; r2.h=0x7000; r1=r0+r2,r3=r0-r2; r7=astat; _dbg r1; _dbg r3; _dbg astat; CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AN); a1=r2; a0=r0; r1=a0+a1, r3=a0-a1; r7=astat; _dbg a0; _dbg a1; _dbg r1; _dbg r3; _dbg astat; CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AN); a0=r2; a1=r0; r1=a1+a0, r3=a1-a0; r7=astat; _dbg a0; _dbg a1; _dbg r1; _dbg r3; _dbg astat; CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AN); r0.h=0xafff; r2.h=0xa000; a1=r2; a0=r0; r1=a0+a1, r3=a0-a1; r7=astat; _dbg a0; _dbg a1; _dbg r1; _dbg r3; _dbg astat; CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AC1); r1=a0+a1, r3=a0-a1 (s); r7=astat; _dbg a0; _dbg a1; _dbg r1; _dbg r3; _dbg astat; CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AC1|_AN); r0.h=0xafff; r2.h=0xa000; a0=r2; a1=r0; r1=a1+a0, r3=a1-a0; r7=astat; _dbg a0; _dbg a1; _dbg r1; _dbg r3; _dbg astat; CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AC1); r1=a1+a0, r3=a1-a0 (s); r7=astat; _dbg a0; _dbg a1; _dbg r1; _dbg r3; _dbg astat; CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AC1|_AN); r2.h=0x8001; r1=r0+r2,r3=r0-r2; _dbg r1; _dbg r3; _dbg astat; r7=astat; CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AC1); r2.h=0x8000; r1=r0+r2,r3=r0-r2; r7=astat; _dbg r1; _dbg r3; _dbg astat; CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AC1); pass;