1// ACP 5.6 Flags for dreg=(dreg+dreg)<<1,2 2# mach: bfin 3 4#include "test.h" 5.include "testutils.inc" 6 start 7 8 9 r1=0; 10 ASTAT = R1; 11 r2=0; 12 r2.h=0x4000; 13 r2=(r2+r1)<<2; 14 dbga (r2.l,0x0); 15 dbga (r2.h,0x0); 16 _dbg ASTAT; 17 r7=ASTAT; 18 CHECKREG R7, (_VS|_V|_V_COPY|_AZ) 19 20 r2=0; 21 r2.h=0x4000; 22 r2=(r2+r1)<<1; 23 dbga (r2.l,0x0); 24 dbga (r2.h,0x8000); 25 _dbg ASTAT; 26 r7=ASTAT; 27 CHECKREG R7, (_VS|_V|_V_COPY|_AN) 28 29 r1=0; 30 r1.h=0xd300; 31 r2=0; 32 r2.h=0xb700; 33 r2=(r2+r1)<<1; 34 dbga (r2.l,0x0); 35 dbga (r2.h,0x1400); 36 _dbg ASTAT; 37 r7=ASTAT; 38 CHECKREG R7, (_VS|_V|_V_COPY) 39 40 r0 = 1; 41 r0 <<= 31; // r0 should be 0x80000000 42 r7 = 0; 43 ASTAT = r7; 44 _dbg r0; 45 r1 = r0; 46 _dbg r1; 47 r1 = (r1 + r0) << 1; // add overflows to zero, no shift overflow 48 _dbg r1; 49 _dbg ASTAT; 50 r7 = ASTAT; 51 CHECKREG R7, (_VS|_V|_V_COPY|_AZ); 52 53 pass 54