| // 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; |